stable forge 1.3.1+1.21.11
Some checks failed
Development Builds / build (push) Has been cancelled

This commit is contained in:
2026-01-07 19:56:40 -06:00
parent 11f3d68031
commit e8df722ae7
208 changed files with 964 additions and 1151 deletions

View File

@@ -1,6 +1,6 @@
# Sets default memory used for Gradle commands. Can be overridden by user or command line properties. # Sets default memory used for Gradle commands. Can be overridden by user or command line properties.
# This is required to provide enough memory for the Minecraft decompilation process. # This is required to provide enough memory for the Minecraft decompilation process.
org.gradle.jvmargs=-Xmx5G org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false org.gradle.daemon=false
# In the case that Gradle needs to fork to recompile, this will set the memory for that process. # In the case that Gradle needs to fork to recompile, this will set the memory for that process.
@@ -55,11 +55,11 @@ mod_name=Nugget Mod
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
mod_license=MIT mod_license=MIT
# The mod version. See https://semver.org/ # The mod version. See https://semver.org/
mod_version=1.2.2 mod_version=1.3.1
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
# This should match the base package used for the mod sources. # This should match the base package used for the mod sources.
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html # See https://maven.apache.org/guides/mini/guide-naming-conventions.html
mod_group_id=dev.sillyangel.nugget mod_group_id=dev.sillyangel.nuggetmod
# The authors of the mod. This is a simple text string that is used for display purposes in the mod list. # The authors of the mod. This is a simple text string that is used for display purposes in the mod list.
mod_authors=sillyangel mod_authors=sillyangel
# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list. # The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list.

View File

@@ -307,8 +307,8 @@
[05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Creating FMLModContainer instance for net.minecraftforge.common.ForgeMod [05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Creating FMLModContainer instance for net.minecraftforge.common.ForgeMod
[05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Loaded modclass net.minecraftforge.forge/net.minecraftforge.common.ForgeMod with TransformingClassLoader[TRANSFORMER]@155829656 [05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Loaded modclass net.minecraftforge.forge/net.minecraftforge.common.ForgeMod with TransformingClassLoader[TRANSFORMER]@155829656
[05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider/LOADING]: Loading FMLModContainer from classloader TransformingClassLoader[TRANSFORMER]@155829656 - got SecureModuleClassLoader[LAYER PLUGIN]@92941132 [05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider/LOADING]: Loading FMLModContainer from classloader TransformingClassLoader[TRANSFORMER]@155829656 - got SecureModuleClassLoader[LAYER PLUGIN]@92941132
[05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Creating FMLModContainer instance for dev.sillyangel.nugget.NuggetMod [05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Creating FMLModContainer instance for dev.sillyangel.nuggetmod.NuggetMod
[05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Loaded modclass nuggetmod/dev.sillyangel.nugget.NuggetMod with TransformingClassLoader[TRANSFORMER]@155829656 [05Jan2025 22:08:43.805] [main/DEBUG] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Loaded modclass nuggetmod/dev.sillyangel.nuggetmod.NuggetMod with TransformingClassLoader[TRANSFORMER]@155829656
[05Jan2025 22:08:43.886] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Forge Version package package net.minecraftforge.versions.forge, Forge, version 0.0 from TransformingClassLoader[TRANSFORMER]@155829656 [05Jan2025 22:08:43.886] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Forge Version package package net.minecraftforge.versions.forge, Forge, version 0.0 from TransformingClassLoader[TRANSFORMER]@155829656
[05Jan2025 22:08:43.886] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge version 53.0.25 [05Jan2025 22:08:43.886] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge version 53.0.25
[05Jan2025 22:08:43.886] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge spec 0.0 [05Jan2025 22:08:43.886] [modloading-worker-0/DEBUG] [net.minecraftforge.versions.forge.ForgeVersion/CORE]: Found Forge spec 0.0
@@ -320,10 +320,10 @@
[05Jan2025 22:08:43.886] [modloading-worker-0/INFO] [net.minecraftforge.common.MinecraftForge/FORGE]: MinecraftForge v53.0.25 Initialized [05Jan2025 22:08:43.886] [modloading-worker-0/INFO] [net.minecraftforge.common.MinecraftForge/FORGE]: MinecraftForge v53.0.25 Initialized
[05Jan2025 22:08:43.965] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.config.ConfigTracker/CONFIG]: Config file nuggetmod-common.toml for nuggetmod tracking [05Jan2025 22:08:43.965] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.config.ConfigTracker/CONFIG]: Config file nuggetmod-common.toml for nuggetmod tracking
[05Jan2025 22:08:43.998] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Attempting to inject @EventBusSubscriber classes into the eventbus for nuggetmod [05Jan2025 22:08:43.998] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Attempting to inject @EventBusSubscriber classes into the eventbus for nuggetmod
[05Jan2025 22:08:43.998] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing dev.sillyangel.nugget.Config to MOD [05Jan2025 22:08:43.998] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing dev.sillyangel.nuggetmod.Config to MOD
[05Jan2025 22:08:44.013] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Opening jdk.naming.dns/com.sun.jndi.dns to java.naming [05Jan2025 22:08:44.013] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Opening jdk.naming.dns/com.sun.jndi.dns to java.naming
[05Jan2025 22:08:44.029] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing datagen.dev.sillyangel.nugget.DataGenerators to MOD [05Jan2025 22:08:44.029] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing datagen.dev.sillyangel.nuggetmod.DataGenerators to MOD
[05Jan2025 22:08:44.029] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing dev.sillyangel.nugget.NuggetMod$ClientModEvents to MOD [05Jan2025 22:08:44.029] [modloading-worker-0/DEBUG] [net.minecraftforge.fml.javafmlmod.AutomaticEventSubscriber/LOADING]: Auto-subscribing dev.sillyangel.nuggetmod.NuggetMod$ClientModEvents to MOD
[05Jan2025 22:08:44.061] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: -Dio.netty.noUnsafe: false [05Jan2025 22:08:44.061] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: -Dio.netty.noUnsafe: false
[05Jan2025 22:08:44.061] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: Java version: 21 [05Jan2025 22:08:44.061] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: Java version: 21
[05Jan2025 22:08:44.061] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: sun.misc.Unsafe.theUnsafe: available [05Jan2025 22:08:44.061] [modloading-worker-0/DEBUG] [io.netty.util.internal.PlatformDependent0/]: sun.misc.Unsafe.theUnsafe: available

View File

@@ -1,3 +0,0 @@
{
"parent": "nuggetmod:block/nugget_block"
}

View File

@@ -1,68 +0,0 @@
{
"parent": "minecraft:item/generated",
"overrides": [
{
"model": "nuggetmod:item/nugget_boots_quartz_trim",
"predicate": {
"minecraft:trim_type": 0.1
}
},
{
"model": "nuggetmod:item/nugget_boots_iron_trim",
"predicate": {
"minecraft:trim_type": 0.2
}
},
{
"model": "nuggetmod:item/nugget_boots_netherite_trim",
"predicate": {
"minecraft:trim_type": 0.3
}
},
{
"model": "nuggetmod:item/nugget_boots_redstone_trim",
"predicate": {
"minecraft:trim_type": 0.4
}
},
{
"model": "nuggetmod:item/nugget_boots_copper_trim",
"predicate": {
"minecraft:trim_type": 0.5
}
},
{
"model": "nuggetmod:item/nugget_boots_gold_trim",
"predicate": {
"minecraft:trim_type": 0.6
}
},
{
"model": "nuggetmod:item/nugget_boots_emerald_trim",
"predicate": {
"minecraft:trim_type": 0.7
}
},
{
"model": "nuggetmod:item/nugget_boots_diamond_trim",
"predicate": {
"minecraft:trim_type": 0.8
}
},
{
"model": "nuggetmod:item/nugget_boots_lapis_trim",
"predicate": {
"minecraft:trim_type": 0.9
}
},
{
"model": "nuggetmod:item/nugget_boots_amethyst_trim",
"predicate": {
"minecraft:trim_type": 1.0
}
}
],
"textures": {
"layer0": "nuggetmod:item/nugget_boots"
}
}

View File

@@ -1,68 +0,0 @@
{
"parent": "minecraft:item/generated",
"overrides": [
{
"model": "nuggetmod:item/nugget_chestplate_quartz_trim",
"predicate": {
"minecraft:trim_type": 0.1
}
},
{
"model": "nuggetmod:item/nugget_chestplate_iron_trim",
"predicate": {
"minecraft:trim_type": 0.2
}
},
{
"model": "nuggetmod:item/nugget_chestplate_netherite_trim",
"predicate": {
"minecraft:trim_type": 0.3
}
},
{
"model": "nuggetmod:item/nugget_chestplate_redstone_trim",
"predicate": {
"minecraft:trim_type": 0.4
}
},
{
"model": "nuggetmod:item/nugget_chestplate_copper_trim",
"predicate": {
"minecraft:trim_type": 0.5
}
},
{
"model": "nuggetmod:item/nugget_chestplate_gold_trim",
"predicate": {
"minecraft:trim_type": 0.6
}
},
{
"model": "nuggetmod:item/nugget_chestplate_emerald_trim",
"predicate": {
"minecraft:trim_type": 0.7
}
},
{
"model": "nuggetmod:item/nugget_chestplate_diamond_trim",
"predicate": {
"minecraft:trim_type": 0.8
}
},
{
"model": "nuggetmod:item/nugget_chestplate_lapis_trim",
"predicate": {
"minecraft:trim_type": 0.9
}
},
{
"model": "nuggetmod:item/nugget_chestplate_amethyst_trim",
"predicate": {
"minecraft:trim_type": 1.0
}
}
],
"textures": {
"layer0": "nuggetmod:item/nugget_chestplate"
}
}

View File

@@ -1,3 +0,0 @@
{
"parent": "nuggetmod:block/nugget_deepslate_ore"
}

View File

@@ -1,68 +0,0 @@
{
"parent": "minecraft:item/generated",
"overrides": [
{
"model": "nuggetmod:item/nugget_helmet_quartz_trim",
"predicate": {
"minecraft:trim_type": 0.1
}
},
{
"model": "nuggetmod:item/nugget_helmet_iron_trim",
"predicate": {
"minecraft:trim_type": 0.2
}
},
{
"model": "nuggetmod:item/nugget_helmet_netherite_trim",
"predicate": {
"minecraft:trim_type": 0.3
}
},
{
"model": "nuggetmod:item/nugget_helmet_redstone_trim",
"predicate": {
"minecraft:trim_type": 0.4
}
},
{
"model": "nuggetmod:item/nugget_helmet_copper_trim",
"predicate": {
"minecraft:trim_type": 0.5
}
},
{
"model": "nuggetmod:item/nugget_helmet_gold_trim",
"predicate": {
"minecraft:trim_type": 0.6
}
},
{
"model": "nuggetmod:item/nugget_helmet_emerald_trim",
"predicate": {
"minecraft:trim_type": 0.7
}
},
{
"model": "nuggetmod:item/nugget_helmet_diamond_trim",
"predicate": {
"minecraft:trim_type": 0.8
}
},
{
"model": "nuggetmod:item/nugget_helmet_lapis_trim",
"predicate": {
"minecraft:trim_type": 0.9
}
},
{
"model": "nuggetmod:item/nugget_helmet_amethyst_trim",
"predicate": {
"minecraft:trim_type": 1.0
}
}
],
"textures": {
"layer0": "nuggetmod:item/nugget_helmet"
}
}

View File

@@ -1,68 +0,0 @@
{
"parent": "minecraft:item/generated",
"overrides": [
{
"model": "nuggetmod:item/nugget_leggings_quartz_trim",
"predicate": {
"minecraft:trim_type": 0.1
}
},
{
"model": "nuggetmod:item/nugget_leggings_iron_trim",
"predicate": {
"minecraft:trim_type": 0.2
}
},
{
"model": "nuggetmod:item/nugget_leggings_netherite_trim",
"predicate": {
"minecraft:trim_type": 0.3
}
},
{
"model": "nuggetmod:item/nugget_leggings_redstone_trim",
"predicate": {
"minecraft:trim_type": 0.4
}
},
{
"model": "nuggetmod:item/nugget_leggings_copper_trim",
"predicate": {
"minecraft:trim_type": 0.5
}
},
{
"model": "nuggetmod:item/nugget_leggings_gold_trim",
"predicate": {
"minecraft:trim_type": 0.6
}
},
{
"model": "nuggetmod:item/nugget_leggings_emerald_trim",
"predicate": {
"minecraft:trim_type": 0.7
}
},
{
"model": "nuggetmod:item/nugget_leggings_diamond_trim",
"predicate": {
"minecraft:trim_type": 0.8
}
},
{
"model": "nuggetmod:item/nugget_leggings_lapis_trim",
"predicate": {
"minecraft:trim_type": 0.9
}
},
{
"model": "nuggetmod:item/nugget_leggings_amethyst_trim",
"predicate": {
"minecraft:trim_type": 1.0
}
}
],
"textures": {
"layer0": "nuggetmod:item/nugget_leggings"
}
}

View File

@@ -1,3 +0,0 @@
{
"parent": "nuggetmod:block/nugget_ore"
}

View File

@@ -1,3 +0,0 @@
{
"parent": "nuggetmod:block/raw_nugget_block"
}

View File

@@ -1,8 +0,0 @@
{
"values": [
"nuggetmod:nugget_block",
"nuggetmod:raw_nugget_block",
"nuggetmod:nugget_ore",
"nuggetmod:nugget_deepslate_ore"
]
}

View File

@@ -1,6 +0,0 @@
{
"values": [
"nuggetmod:nugget_deepslate_ore",
"nuggetmod:raw_nugget_block"
]
}

View File

@@ -1,5 +0,0 @@
{
"values": [
"nuggetmod:nugget_armor_trim_smithing_template"
]
}

View File

@@ -1,8 +0,0 @@
{
"values": [
"nuggetmod:nugget_helmet",
"nuggetmod:nugget_chestplate",
"nuggetmod:nugget_leggings",
"nuggetmod:nugget_boots"
]
}

View File

@@ -1,6 +0,0 @@
{
"type": "forge:add_features",
"biomes": "#minecraft:is_overworld",
"features": "nuggetmod:nugget_ore_placed",
"step": "underground_ores"
}

View File

@@ -1,6 +0,0 @@
{
"values": [
"nuggetmod:raw_nugget_block",
"#minecraft:needs_diamond_tool"
]
}

View File

@@ -1,9 +0,0 @@
{
"values": [
"nuggetmod:nugget",
"nuggetmod:raw_nugget",
"minecraft:coal",
"minecraft:stick",
"minecraft:compass"
]
}

View File

@@ -1,41 +0,0 @@
package dev.sillyangel.nugget.datagen;
import dev.sillyangel.nugget.NuggetMod;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.PackOutput;
import net.minecraft.data.loot.LootTableProvider;
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
import net.minecraftforge.common.data.BlockTagsProvider;
import net.minecraftforge.common.data.ExistingFileHelper;
import net.minecraftforge.data.event.GatherDataEvent;
import net.minecraftforge.eventbus.api.listener.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CompletableFuture;
@Mod.EventBusSubscriber(modid = NuggetMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class DataGenerators {
@SubscribeEvent
public static void gatherData(GatherDataEvent event) {
DataGenerator generator = event.getGenerator();
PackOutput packOutput = generator.getPackOutput();
ExistingFileHelper existingFileHelper = event.getExistingFileHelper();
CompletableFuture<HolderLookup.Provider> lookupProvider = event.getLookupProvider();
generator.addProvider(event.includeServer(), new LootTableProvider(packOutput, Collections.emptySet(),
List.of(new LootTableProvider.SubProviderEntry(ModBlockLootTableProvider::new, LootContextParamSets.BLOCK)), lookupProvider));
generator.addProvider(event.includeServer(), new ModRecipeProvider.Runner(packOutput, lookupProvider));
BlockTagsProvider blockTagsProvider = new ModBlockTagProvider(packOutput, lookupProvider, existingFileHelper);
generator.addProvider(event.includeServer(), blockTagsProvider);
generator.addProvider(event.includeServer(), new ModItemTagProvider(packOutput, lookupProvider, blockTagsProvider.contentsGetter(), existingFileHelper));
generator.addProvider(event.includeClient(), new ModItemModelProvider(packOutput, existingFileHelper));
generator.addProvider(event.includeClient(), new ModBlockStateProvider(packOutput, existingFileHelper));
generator.addProvider(event.includeServer(), new ModDatapackEntries(packOutput, lookupProvider));
}
}

View File

@@ -1,53 +0,0 @@
package dev.sillyangel.nugget.datagen;
import dev.sillyangel.nugget.block.ModBlocks;
import dev.sillyangel.nugget.item.ModItems;
import net.minecraft.core.HolderLookup;
import net.minecraft.core.registries.Registries;
import net.minecraft.data.loot.BlockLootSubProvider;
import net.minecraft.world.flag.FeatureFlags;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.enchantment.Enchantment;
import net.minecraft.world.item.enchantment.Enchantments;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.storage.loot.LootTable;
import net.minecraft.world.level.storage.loot.entries.LootItem;
import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount;
import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction;
import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator;
import net.minecraftforge.registries.RegistryObject;
import java.util.Set;
public class ModBlockLootTableProvider extends BlockLootSubProvider {
protected ModBlockLootTableProvider(HolderLookup.Provider pRegistries) {
super(Set.of(), FeatureFlags.REGISTRY.allFlags(), pRegistries);
}
@Override
protected void generate() {
dropSelf(ModBlocks.NUGGET_BLOCK.get());
dropSelf(ModBlocks.RAW_NUGGET_BLOCK.get());
this.add(ModBlocks.NUGGET_ORE.get(),
block -> createOreDrop(ModBlocks.NUGGET_ORE.get(), ModItems.RAW_NUGGET.get()));
this.add(ModBlocks.NUGGET_DEEPSLATE_ORE.get(),
block -> createMultipleOreDrops(ModBlocks.NUGGET_DEEPSLATE_ORE.get(), ModItems.RAW_NUGGET.get(), 2, 6));
}
protected LootTable.Builder createMultipleOreDrops(Block pBlock, Item item, float minDrops, float maxDrops) {
HolderLookup.RegistryLookup<Enchantment> registrylookup = this.registries.lookupOrThrow(Registries.ENCHANTMENT);
return this.createSilkTouchDispatchTable(
pBlock, this.applyExplosionDecay(
pBlock, LootItem.lootTableItem(item)
.apply(SetItemCountFunction.setCount(UniformGenerator.between(minDrops, maxDrops)))
.apply(ApplyBonusCount.addOreBonusCount(registrylookup.getOrThrow(Enchantments.FORTUNE)))
)
);
}
@Override
protected Iterable<Block> getKnownBlocks() {
return ModBlocks.BLOCKS.getEntries().stream().map(RegistryObject::get)::iterator;
}
}

View File

@@ -1,29 +0,0 @@
package dev.sillyangel.nugget.datagen;
import dev.sillyangel.nugget.NuggetMod;
import dev.sillyangel.nugget.block.ModBlocks;
import net.minecraft.data.PackOutput;
import net.minecraft.world.level.block.Block;
import net.minecraftforge.client.model.generators.BlockStateProvider;
import net.minecraftforge.common.data.ExistingFileHelper;
import net.minecraftforge.registries.RegistryObject;
public class ModBlockStateProvider extends BlockStateProvider {
public ModBlockStateProvider(PackOutput output, ExistingFileHelper exFileHelper) {
super(output, NuggetMod.MOD_ID, exFileHelper);
}
@Override
protected void registerStatesAndModels() {
blockWithItem(ModBlocks.NUGGET_BLOCK);
blockWithItem(ModBlocks.RAW_NUGGET_BLOCK);
blockWithItem(ModBlocks.NUGGET_ORE);
blockWithItem(ModBlocks.NUGGET_DEEPSLATE_ORE);
}
private void blockWithItem(RegistryObject<Block> blockRegistryObject) {
simpleBlockWithItem(blockRegistryObject.get(), cubeAll(blockRegistryObject.get()));
}
}

View File

@@ -1,41 +0,0 @@
package dev.sillyangel.nugget.datagen;
import dev.sillyangel.nugget.NuggetMod;
import dev.sillyangel.nugget.block.ModBlocks;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
import net.minecraft.tags.BlockTags;
import net.minecraftforge.common.data.BlockTagsProvider;
import net.minecraftforge.common.data.ExistingFileHelper;
import org.jetbrains.annotations.Nullable;
import dev.sillyangel.nugget.util.ModTags;
import java.util.concurrent.CompletableFuture;
public class ModBlockTagProvider extends BlockTagsProvider {
public ModBlockTagProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> lookupProvider, @Nullable ExistingFileHelper existingFileHelper) {
super(output, lookupProvider, NuggetMod.MOD_ID, existingFileHelper);
}
@Override
protected void addTags(HolderLookup.Provider pProvider) {
tag(BlockTags.MINEABLE_WITH_PICKAXE)
.add(ModBlocks.NUGGET_BLOCK.get())
.add(ModBlocks.RAW_NUGGET_BLOCK.get())
.add(ModBlocks.NUGGET_ORE.get())
.add(ModBlocks.NUGGET_DEEPSLATE_ORE.get());
tag(BlockTags.NEEDS_STONE_TOOL)
.add(ModBlocks.NUGGET_DEEPSLATE_ORE.get())
.add(ModBlocks.NUGGET_BLOCK.get())
.add(ModBlocks.RAW_NUGGET_BLOCK.get());
tag(ModTags.Blocks.NEEDS_NUGGET_TOOL)
.add(ModBlocks.RAW_NUGGET_BLOCK.get())
.addTag(BlockTags.NEEDS_DIAMOND_TOOL);
tag(ModTags.Blocks.INCORRECT_FOR_NUGGET_TOOL)
.addTag(BlockTags.INCORRECT_FOR_DIAMOND_TOOL)
.remove(ModTags.Blocks.NEEDS_NUGGET_TOOL);
}
}

View File

@@ -1,31 +0,0 @@
package dev.sillyangel.nugget.datagen;
import dev.sillyangel.nugget.NuggetMod;
import dev.sillyangel.nugget.trim.ModTrimMaterials;
import dev.sillyangel.nugget.trim.ModTrimPatterns;
import dev.sillyangel.nugget.worldgen.ModBiomeModifiers;
import dev.sillyangel.nugget.worldgen.ModConfiguredFeatures;
import dev.sillyangel.nugget.worldgen.ModPlacedFeatures;
import net.minecraft.core.HolderLookup;
import net.minecraft.core.RegistrySetBuilder;
import net.minecraft.core.registries.Registries;
import net.minecraft.data.PackOutput;
import net.minecraftforge.common.data.DatapackBuiltinEntriesProvider;
import net.minecraftforge.registries.ForgeRegistries;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
public class ModDatapackEntries extends DatapackBuiltinEntriesProvider {
public static final RegistrySetBuilder BUILDER = new RegistrySetBuilder()
.add(Registries.TRIM_MATERIAL, ModTrimMaterials::bootstrap)
.add(Registries.TRIM_PATTERN, ModTrimPatterns::bootstrap)
.add(Registries.CONFIGURED_FEATURE, ModConfiguredFeatures::bootstrap)
.add(Registries.PLACED_FEATURE, ModPlacedFeatures::bootstrap)
.add(ForgeRegistries.Keys.BIOME_MODIFIERS, ModBiomeModifiers::bootstrap);
public ModDatapackEntries(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) {
super(output, registries, BUILDER, Set.of(NuggetMod.MOD_ID));
}
}

View File

@@ -1,134 +0,0 @@
package dev.sillyangel.nugget.datagen;
import dev.sillyangel.nugget.NuggetMod;
import dev.sillyangel.nugget.item.ModItems;
import net.minecraft.data.PackOutput;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.Identifier;
import net.minecraft.server.packs.PackType;
import net.minecraft.world.item.ArmorItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.equipment.trim.TrimMaterial;
import net.minecraft.world.item.equipment.trim.TrimMaterials;
import net.minecraft.world.level.block.Block;
import net.minecraftforge.client.model.generators.ItemModelBuilder;
import net.minecraftforge.client.model.generators.ItemModelProvider;
import net.minecraftforge.client.model.generators.ModelFile;
import net.minecraftforge.common.data.ExistingFileHelper;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
import java.util.LinkedHashMap;
public class ModItemModelProvider extends ItemModelProvider {
private static LinkedHashMap<ResourceKey<TrimMaterial>, Float> trimMaterials = new LinkedHashMap<>();
static {
trimMaterials.put(TrimMaterials.QUARTZ, 0.1F);
trimMaterials.put(TrimMaterials.IRON, 0.2F);
trimMaterials.put(TrimMaterials.NETHERITE, 0.3F);
trimMaterials.put(TrimMaterials.REDSTONE, 0.4F);
trimMaterials.put(TrimMaterials.COPPER, 0.5F);
trimMaterials.put(TrimMaterials.GOLD, 0.6F);
trimMaterials.put(TrimMaterials.EMERALD, 0.7F);
trimMaterials.put(TrimMaterials.DIAMOND, 0.8F);
trimMaterials.put(TrimMaterials.LAPIS, 0.9F);
trimMaterials.put(TrimMaterials.AMETHYST, 1.0F);
}
public ModItemModelProvider(PackOutput output, ExistingFileHelper existingFileHelper) {
super(output, NuggetMod.MOD_ID, existingFileHelper);
}
@Override
protected void registerModels() {
basicItem(ModItems.NUGGET_HORSE_ARMOR.get());
basicItem(ModItems.NUGGET_SMITHING_TEMPLATE.get());
basicItem(ModItems.NUGGET.get());
basicItem(ModItems.RAW_NUGGET.get());
basicItem(ModItems.NUGGET_MUSIC_DISC.get());
handheldItem(ModItems.NUGGET_SWORD);
handheldItem(ModItems.NUGGET_PICKAXE);
handheldItem(ModItems.NUGGET_SHOVEL);
handheldItem(ModItems.NUGGET_AXE);
handheldItem(ModItems.NUGGET_HOE);
trimmedArmorItem(ModItems.NUGGET_HELMET);
trimmedArmorItem(ModItems.NUGGET_CHESTPLATE);
trimmedArmorItem(ModItems.NUGGET_LEGGINGS);
trimmedArmorItem(ModItems.NUGGET_BOOTS);
}
private void trimmedArmorItem(RegistryObject<Item> itemRegistryObject) {
final String MOD_ID = NuggetMod.MOD_ID; // Change this to your mod id
if (itemRegistryObject.get() instanceof ArmorItem armorItem) {
trimMaterials.forEach((trimMaterial, value) -> {
float trimValue = value;
String armorType = "";
if(armorItem.toString().contains("helmet")) {
armorType = "helmet";
} else if(armorItem.toString().contains("chestplate")) {
armorType = "chestplate";
} else if(armorItem.toString().contains("leggings")) {
armorType = "leggings";
} else if(armorItem.toString().contains("boots")) {
armorType = "boots";
}
String armorItemPath = armorItem.toString();
String trimPath = "trims/items/" + armorType + "_trim_" + trimMaterial.location().getPath();
String currentTrimName = armorItemPath + "_" + trimMaterial.location().getPath() + "_trim";
Identifier armorItemResLoc = Identifier.parse(armorItemPath);
Identifier trimResLoc = Identifier.parse(trimPath); // minecraft namespace
Identifier trimNameResLoc = Identifier.parse(currentTrimName);
// This is used for making the ExistingFileHelper acknowledge that this texture exist, so this will
// avoid an IllegalArgumentException
existingFileHelper.trackGenerated(trimResLoc, PackType.CLIENT_RESOURCES, ".png", "textures");
// Trimmed armorItem files
getBuilder(currentTrimName)
.parent(new ModelFile.UncheckedModelFile("item/generated"))
.texture("layer0", armorItemResLoc.getNamespace() + ":item/" + armorItemResLoc.getPath())
.texture("layer1", trimResLoc);
// Non-trimmed armorItem file (normal variant)
this.withExistingParent(itemRegistryObject.getId().getPath(),
mcLoc("item/generated"))
.override()
.model(new ModelFile.UncheckedModelFile(trimNameResLoc.getNamespace() + ":item/" + trimNameResLoc.getPath()))
.predicate(mcLoc("trim_type"), trimValue).end()
.texture("layer0",
Identifier.fromNamespaceAndPath(MOD_ID,
"item/" + itemRegistryObject.getId().getPath()));
});
}
}
private ItemModelBuilder handheldItem(RegistryObject<Item> item) {
return withExistingParent(item.getId().getPath(),
Identifier.parse("item/handheld")).texture("layer0",
Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID,"item/" + item.getId().getPath()));
}
public void buttonItem(RegistryObject<? extends Block> block, RegistryObject<Block> baseBlock) {
this.withExistingParent(ForgeRegistries.BLOCKS.getKey(block.get()).getPath(), mcLoc("block/button_inventory"))
.texture("texture", Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID,
"block/" + ForgeRegistries.BLOCKS.getKey(baseBlock.get()).getPath()));
}
public void fenceItem(RegistryObject<? extends Block> block, RegistryObject<Block> baseBlock) {
this.withExistingParent(ForgeRegistries.BLOCKS.getKey(block.get()).getPath(), mcLoc("block/fence_inventory"))
.texture("texture", Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID,
"block/" + ForgeRegistries.BLOCKS.getKey(baseBlock.get()).getPath()));
}
public void wallItem(RegistryObject<? extends Block> block, RegistryObject<Block> baseBlock) {
this.withExistingParent(ForgeRegistries.BLOCKS.getKey(block.get()).getPath(), mcLoc("block/wall_inventory"))
.texture("wall", Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID,
"block/" + ForgeRegistries.BLOCKS.getKey(baseBlock.get()).getPath()));
}
private ItemModelBuilder simpleBlockItem(RegistryObject<? extends Block> item) {
return withExistingParent(item.getId().getPath(),
Identifier.parse("item/generated")).texture("layer0",
Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID,"item/" + item.getId().getPath()));
}
}

View File

@@ -1,43 +0,0 @@
package dev.sillyangel.nugget.datagen;
import dev.sillyangel.nugget.NuggetMod;
import dev.sillyangel.nugget.item.ModItems;
import dev.sillyangel.nugget.util.ModTags;
import net.minecraft.core.HolderLookup;
import net.minecraft.tags.ItemTags;
import net.minecraft.data.PackOutput;
import net.minecraft.data.tags.ItemTagProvider;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.block.Block;
import net.minecraftforge.common.data.ExistingFileHelper;
import org.jetbrains.annotations.Nullable;
import java.util.concurrent.CompletableFuture;
public class ModItemTagProvider extends ItemTagsProvider {
public ModItemTagProvider(PackOutput pOutput, CompletableFuture<HolderLookup.Provider> pLookupProvider, CompletableFuture<TagLookup<Block>> pBlockTags, @Nullable ExistingFileHelper existingFileHelper) {
super(pOutput, pLookupProvider, pBlockTags, NuggetMod.MOD_ID, existingFileHelper);
}
@Override
protected void addTags(HolderLookup.Provider pProvider) {
tag(ModTags.Items.TRANSFORMABLE_ITEMS)
.add(ModItems.NUGGET.get())
.add(ModItems.RAW_NUGGET.get())
.add(Items.COAL)
.add(Items.STICK)
.add(Items.COMPASS);
tag(ItemTags.TRIMMABLE_ARMOR)
.add(ModItems.NUGGET_HELMET.get())
.add(ModItems.NUGGET_CHESTPLATE.get())
.add(ModItems.NUGGET_LEGGINGS.get())
.add(ModItems.NUGGET_BOOTS.get());
tag(ItemTags.TRIM_MATERIALS)
.add(ModItems.NUGGET.get());
// tag(ItemTags.TRIM_TEMPLATES)
// .add(ModItems.NUGGET_SMITHING_TEMPLATE.get());
tag(ModTags.Items.NUGGET_REPAIRS)
.add(ModItems.NUGGET.get());
}
}

View File

@@ -1,173 +0,0 @@
package dev.sillyangel.nugget.datagen;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.item.Items;
import dev.sillyangel.nugget.NuggetMod;
import dev.sillyangel.nugget.block.ModBlocks;
import dev.sillyangel.nugget.item.ModItems;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
import net.minecraft.data.recipes.*;
import net.minecraft.resources.Identifier;
import net.minecraft.world.item.crafting.*;
import net.minecraft.world.level.ItemLike;
import net.minecraftforge.common.crafting.conditions.IConditionBuilder;
import java.util.List;
import java.util.concurrent.CompletableFuture;
public class ModRecipeProvider extends RecipeProvider implements IConditionBuilder {
public ModRecipeProvider(HolderLookup.Provider lookup, RecipeOutput recipeOutput) {
super(lookup, recipeOutput);
}
public static class Runner extends RecipeProvider.Runner {
public Runner(PackOutput output, CompletableFuture<HolderLookup.Provider> providerCompletableFuture) {
super(output, providerCompletableFuture);
}
@Override
protected RecipeProvider createRecipeProvider(HolderLookup.Provider provider, RecipeOutput recipeOutput) {
return new ModRecipeProvider(provider, recipeOutput);
}
@Override
public String getName() {
return "Recipes";
}
}
@Override
protected void buildRecipes() {
List<ItemLike> NUGGET_SMELTABLES = List.of(ModItems.RAW_NUGGET.get(),
ModBlocks.NUGGET_ORE.get(), ModBlocks.NUGGET_DEEPSLATE_ORE.get());
shaped(RecipeCategory.MISC, ModBlocks.NUGGET_BLOCK.get())
.pattern("AAA")
.pattern("AAA")
.pattern("AAA")
.define('A', ModItems.NUGGET.get())
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
shapeless(RecipeCategory.MISC, ModItems.NUGGET.get(), 9)
.requires(ModBlocks.NUGGET_BLOCK.get())
.unlockedBy(getHasName(ModBlocks.NUGGET_BLOCK.get()), has(ModBlocks.NUGGET_BLOCK.get())).save(this.output);
// RAW NUGGET
shaped(RecipeCategory.MISC, ModBlocks.RAW_NUGGET_BLOCK.get())
.pattern("AAA")
.pattern("AAA")
.pattern("AAA")
.define('A', ModItems.RAW_NUGGET.get())
.unlockedBy(getHasName(ModItems.RAW_NUGGET.get()), has(ModItems.RAW_NUGGET.get())).save(this.output);
shapeless(RecipeCategory.MISC, ModItems.RAW_NUGGET.get(), 9)
.requires(ModBlocks.RAW_NUGGET_BLOCK.get())
.unlockedBy(getHasName(ModBlocks.RAW_NUGGET_BLOCK.get()), has(ModBlocks.RAW_NUGGET_BLOCK.get())).save(this.output);
// TOOLS
//SWORD
shaped(RecipeCategory.COMBAT, ModItems.NUGGET_SWORD.get())
.pattern(" A ")
.pattern(" A ")
.pattern(" B ")
.define('A', ModItems.NUGGET.get())
.define('B', Items.STICK)
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
//PICAXE
shaped(RecipeCategory.TOOLS, ModItems.NUGGET_PICKAXE.get())
.pattern("AAA")
.pattern(" B ")
.pattern(" B ")
.define('A', ModItems.NUGGET.get())
.define('B', Items.STICK)
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
//AXE
shaped(RecipeCategory.TOOLS, ModItems.NUGGET_AXE.get())
.pattern(" AA")
.pattern(" BA")
.pattern(" B ")
.define('A', ModItems.NUGGET.get())
.define('B', Items.STICK)
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
//SHOVEL
shaped(RecipeCategory.TOOLS, ModItems.NUGGET_SHOVEL.get())
.pattern(" A ")
.pattern(" B ")
.pattern(" B ")
.define('A', ModItems.NUGGET.get())
.define('B', Items.STICK)
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
//HOE
shaped(RecipeCategory.TOOLS, ModItems.NUGGET_HOE.get())
.pattern(" AA")
.pattern(" B ")
.pattern(" B ")
.define('A', ModItems.NUGGET.get())
.define('B', Items.STICK)
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
// END OF TOOLS
// start of armor
// head!?!
shaped(RecipeCategory.COMBAT, ModItems.NUGGET_HELMET.get())
.pattern("AAA")
.pattern("A A")
.pattern(" ")
.define('A', ModItems.NUGGET.get())
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
//shirt
shaped(RecipeCategory.COMBAT, ModItems.NUGGET_CHESTPLATE.get())
.pattern("A A")
.pattern("AAA")
.pattern("AAA")
.define('A', ModItems.NUGGET.get())
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
//pants?
shaped(RecipeCategory.COMBAT, ModItems.NUGGET_LEGGINGS.get())
.pattern("AAA")
.pattern("A A")
.pattern("A A")
.define('A', ModItems.NUGGET.get())
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
//socks
shaped(RecipeCategory.COMBAT, ModItems.NUGGET_BOOTS.get())
.pattern(" ")
.pattern("A A")
.pattern("A A")
.define('A', ModItems.NUGGET.get())
.unlockedBy(getHasName(ModItems.NUGGET.get()), has(ModItems.NUGGET.get())).save(this.output);
trimSmithing(ModItems.NUGGET_SMITHING_TEMPLATE.get(), ResourceKey.create(Registries.RECIPE,
Identifier.parse(getItemName(ModItems.NUGGET_SMITHING_TEMPLATE.get()) + "_smithing_trim")));
oreSmelting(this.output, NUGGET_SMELTABLES, RecipeCategory.MISC, ModItems.NUGGET.get(), 0.25f, 200, "nugget");
oreBlasting(this.output, NUGGET_SMELTABLES, RecipeCategory.MISC, ModItems.NUGGET.get(), 0.25f, 100, "nugget");
}
protected void oreSmelting(RecipeOutput recipeOutput, List<ItemLike> pIngredients, RecipeCategory pCategory, ItemLike pResult,
float pExperience, int pCookingTIme, String pGroup) {
oreCooking(recipeOutput, RecipeSerializer.SMELTING_RECIPE, SmeltingRecipe::new, pIngredients, pCategory, pResult,
pExperience, pCookingTIme, pGroup, "_from_smelting");
}
protected void oreBlasting(RecipeOutput recipeOutput, List<ItemLike> pIngredients, RecipeCategory pCategory, ItemLike pResult,
float pExperience, int pCookingTime, String pGroup) {
oreCooking(recipeOutput, RecipeSerializer.BLASTING_RECIPE, BlastingRecipe::new, pIngredients, pCategory, pResult,
pExperience, pCookingTime, pGroup, "_from_blasting");
}
protected <T extends AbstractCookingRecipe> void oreCooking(RecipeOutput recipeOutput, RecipeSerializer<T> pCookingSerializer, AbstractCookingRecipe.Factory<T> factory,
List<ItemLike> pIngredients, RecipeCategory pCategory, ItemLike pResult, float pExperience, int pCookingTime, String pGroup, String pRecipeName) {
for(ItemLike itemlike : pIngredients) {
SimpleCookingRecipeBuilder.generic(Ingredient.of(itemlike), pCategory, pResult, pExperience, pCookingTime, pCookingSerializer, factory).group(pGroup).unlockedBy(getHasName(itemlike), has(itemlike))
.save(recipeOutput, NuggetMod.MOD_ID + ":" + getItemName(pResult) + pRecipeName + "_" + getItemName(itemlike));
}
}
}

View File

@@ -1,31 +0,0 @@
package dev.sillyangel.nugget.trim;
import dev.sillyangel.nugget.NuggetMod;
import dev.sillyangel.nugget.item.ModItems;
import net.minecraft.util.Util;
import net.minecraft.core.registries.Registries;
import net.minecraft.data.worldgen.BootstrapContext;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.Style;
import net.minecraft.network.chat.TextColor;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.Identifier;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.equipment.trim.TrimMaterial;
import java.util.Map;
public class ModTrimMaterials {
public static final ResourceKey<TrimMaterial> NUGGET =
ResourceKey.create(Registries.TRIM_MATERIAL, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget"));
public static void bootstrap(BootstrapContext<TrimMaterial> context) {
register(context, NUGGET, ModItems.NUGGET.get(), Style.EMPTY.withColor(TextColor.parseColor("#f9b042").getOrThrow()), 0.1F);
}
private static void register(BootstrapContext<TrimMaterial> context, ResourceKey<TrimMaterial> trimKey, Item item,
Style style, float itemModelIndex) {
TrimMaterial trimmaterial = TrimMaterial.create(trimKey.location().getPath(), item, itemModelIndex,
Component.translatable(Util.makeDescriptionId("trim_material", trimKey.location())).withStyle(style), Map.of());
context.register(trimKey, trimmaterial);
}
}

View File

@@ -1,4 +1,4 @@
package dev.sillyangel.nugget; package dev.sillyangel.nuggetmod;
import net.minecraft.resources.Identifier; import net.minecraft.resources.Identifier;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
@@ -8,12 +8,8 @@ import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.config.ModConfigEvent; import net.minecraftforge.fml.event.config.ModConfigEvent;
import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.ForgeRegistries;
import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
// An example config class. This is not required, but it's a good idea to have one to keep your config organized.
// Demonstrates how to use Forge's config APIs
@Mod.EventBusSubscriber(modid = NuggetMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) @Mod.EventBusSubscriber(modid = NuggetMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class Config public class Config
{ {
@@ -21,7 +17,6 @@ public class Config
static final ForgeConfigSpec SPEC = BUILDER.build(); static final ForgeConfigSpec SPEC = BUILDER.build();
public static boolean logDirtBlock;
public static Set<Item> items; public static Set<Item> items;
private static boolean validateItemName(final Object obj) private static boolean validateItemName(final Object obj)

View File

@@ -1,6 +1,7 @@
package dev.sillyangel.nugget; package dev.sillyangel.nuggetmod;
import com.mojang.logging.LogUtils; import com.mojang.logging.LogUtils;
import dev.sillyangel.nuggetmod.villager.ModVillagers;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.listener.SubscribeEvent; import net.minecraftforge.eventbus.api.listener.SubscribeEvent;
import net.minecraftforge.event.BuildCreativeModeTabContentsEvent; import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
@@ -10,10 +11,10 @@ import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import org.slf4j.Logger; import org.slf4j.Logger;
import dev.sillyangel.nugget.item.ModCreativeModeTabs; import dev.sillyangel.nuggetmod.item.ModCreativeModeTabs;
import dev.sillyangel.nugget.item.ModItems; import dev.sillyangel.nuggetmod.item.ModItems;
import dev.sillyangel.nugget.block.ModBlocks; import dev.sillyangel.nuggetmod.block.ModBlocks;
import dev.sillyangel.nugget.sound.ModSounds; import dev.sillyangel.nuggetmod.sound.ModSounds;
// Very important Comment // Very important Comment
// The value here should match an entry in the META-INF/mods.toml file // The value here should match an entry in the META-INF/mods.toml file
@@ -38,7 +39,8 @@ public class NuggetMod {
ModCreativeModeTabs.register(modBusGroup); ModCreativeModeTabs.register(modBusGroup);
// Register the Deferred Register to the mod event bus so sounds get registered // Register the Deferred Register to the mod event bus so sounds get registered
ModSounds.register(modBusGroup); ModSounds.register(modBusGroup);
//
ModVillagers.register(modBusGroup);
// Register the item to a creative tab // Register the item to a creative tab
BuildCreativeModeTabContentsEvent.BUS.addListener(this::addCreative); BuildCreativeModeTabContentsEvent.BUS.addListener(this::addCreative);

View File

@@ -1,10 +1,10 @@
package dev.sillyangel.nugget.block; package dev.sillyangel.nuggetmod.block;
import net.minecraft.core.registries.Registries; import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.Identifier; import net.minecraft.resources.Identifier;
import dev.sillyangel.nugget.NuggetMod; import dev.sillyangel.nuggetmod.NuggetMod;
import dev.sillyangel.nugget.item.ModItems; import dev.sillyangel.nuggetmod.item.ModItems;
import net.minecraft.util.valueproviders.UniformInt; import net.minecraft.util.valueproviders.UniformInt;
import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;

View File

@@ -0,0 +1,109 @@
package dev.sillyangel.nuggetmod.event;
import dev.sillyangel.nuggetmod.NuggetMod;
import dev.sillyangel.nuggetmod.item.ModItems;
import dev.sillyangel.nuggetmod.villager.ModVillagers;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import net.minecraft.world.entity.npc.villager.VillagerProfession;
import net.minecraft.world.entity.npc.villager.VillagerTrades;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.trading.ItemCost;
import net.minecraft.world.item.trading.MerchantOffer;
import net.minecraftforge.event.village.VillagerTradesEvent;
import net.minecraftforge.event.village.WandererTradesEvent;
import net.minecraftforge.eventbus.api.listener.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import java.util.List;
@Mod.EventBusSubscriber(modid = NuggetMod.MOD_ID)
public class ModEvents {
@SubscribeEvent
public static void addCustomTrades(VillagerTradesEvent event) {
// Add trades to vanilla FARMER profession
if(event.getType() == VillagerProfession.FARMER) {
Int2ObjectMap<List<VillagerTrades.ItemListing>> trades = event.getTrades();
trades.get(1).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
new ItemCost(Items.EMERALD, 3),
new ItemStack(ModItems.NUGGET.get(), 8), 7, 2, 0.04f));
}
// Add trades to custom NUGGETER profession
if(event.getType().equals(ModVillagers.NUGGETER_KEY)) {
Int2ObjectMap<List<VillagerTrades.ItemListing>> trades = event.getTrades();
// Level 1 trades
trades.get(1).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
new ItemCost(Items.EMERALD, 5),
new ItemStack(ModItems.NUGGET.get(), 20), 4, 7, 0.04f));
trades.get(1).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
new ItemCost(Items.DIAMOND, 2),
new ItemStack(ModItems.RAW_NUGGET.get(), 12), 6, 5, 0.05f));
// Level 2 trades
trades.get(2).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
new ItemCost(Items.GOLD_INGOT, 8),
new ItemStack(ModItems.NUGGET_SWORD.get(), 1), 3, 10, 0.05f));
trades.get(2).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
new ItemCost(Items.EMERALD, 10),
new ItemStack(ModItems.NUGGET_PICKAXE.get(), 1), 3, 10, 0.05f));
// Level 3 trades
trades.get(3).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
new ItemCost(Items.EMERALD, 15),
new ItemStack(ModItems.NUGGET_HELMET.get(), 1), 2, 15, 0.05f));
trades.get(3).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
new ItemCost(Items.EMERALD, 20),
new ItemStack(ModItems.NUGGET_CHESTPLATE.get(), 1), 2, 15, 0.05f));
// Level 4 trades
trades.get(4).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
new ItemCost(Items.DIAMOND, 5),
new ItemStack(ModItems.NUGGET_LEGGINGS.get(), 1), 2, 20, 0.05f));
trades.get(4).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
new ItemCost(Items.EMERALD, 12),
new ItemStack(ModItems.NUGGET_BOOTS.get(), 1), 2, 20, 0.05f));
// Level 5 trades (Master)
trades.get(5).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
new ItemCost(Items.EMERALD, 30),
new ItemStack(ModItems.NUGGET_HORSE_ARMOR.get(), 1), 1, 30, 0.1f));
trades.get(5).add((pTrader, pRandom, pLevel) -> new MerchantOffer(
new ItemCost(Items.DIAMOND, 10),
new ItemStack(ModItems.NUGGET_SMITHING_TEMPLATE.get(), 1), 1, 30, 0.1f));
}
}
@SubscribeEvent
public static void addWanderingTrades(WandererTradesEvent event) {
List<WandererTradesEvent.Pool> pools = event.getPools();
if (pools.size() >= 1) {
// Add generic wandering trader trades (first pool)
List<VillagerTrades.ItemListing> genericTrades = pools.get(0).getEntries();
genericTrades.add((pTrader, pRandom, pLevel) -> new MerchantOffer(
new ItemCost(Items.EMERALD, 12),
new ItemStack(ModItems.NUGGET.get(), 3), 2, 8, 0.2f));
}
if (pools.size() >= 2) {
// Add rare wandering trader trades (second pool)
List<VillagerTrades.ItemListing> rareTrades = pools.get(1).getEntries();
rareTrades.add((pTrader, pRandom, pLevel) -> new MerchantOffer(
new ItemCost(Items.DIAMOND, 8),
new ItemStack(ModItems.NUGGET_MUSIC_DISC.get(), 1), 1, 12, 0.2f));
rareTrades.add((pTrader, pRandom, pLevel) -> new MerchantOffer(
new ItemCost(Items.EMERALD, 25),
new ItemStack(ModItems.NUGGET_SMITHING_TEMPLATE.get(), 1), 1, 12, 0.2f));
}
}
}

View File

@@ -1,7 +1,7 @@
package dev.sillyangel.nugget.item; package dev.sillyangel.nuggetmod.item;
import dev.sillyangel.nugget.NuggetMod; import dev.sillyangel.nuggetmod.NuggetMod;
import dev.sillyangel.nugget.util.ModTags; import dev.sillyangel.nuggetmod.util.ModTags;
import net.minecraft.util.Util; import net.minecraft.util.Util;
import net.minecraft.resources.Identifier; import net.minecraft.resources.Identifier;
import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceKey;

View File

@@ -1,4 +1,4 @@
package dev.sillyangel.nugget.item; package dev.sillyangel.nuggetmod.item;
import net.minecraft.core.registries.Registries; import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
@@ -7,8 +7,8 @@ import net.minecraft.world.item.ItemStack;
import net.minecraftforge.eventbus.api.bus.BusGroup; import net.minecraftforge.eventbus.api.bus.BusGroup;
import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.RegistryObject; import net.minecraftforge.registries.RegistryObject;
import dev.sillyangel.nugget.NuggetMod; import dev.sillyangel.nuggetmod.NuggetMod;
import dev.sillyangel.nugget.block.ModBlocks; import dev.sillyangel.nuggetmod.block.ModBlocks;
public class ModCreativeModeTabs { public class ModCreativeModeTabs {
public static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TABS = public static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TABS =
@@ -26,6 +26,7 @@ public class ModCreativeModeTabs {
output.accept(ModItems.NUGGET_SHOVEL.get()); output.accept(ModItems.NUGGET_SHOVEL.get());
output.accept(ModItems.NUGGET_AXE.get()); output.accept(ModItems.NUGGET_AXE.get());
output.accept(ModItems.NUGGET_HOE.get()); output.accept(ModItems.NUGGET_HOE.get());
output.accept(ModBlocks.NUGGET_BLOCK.get());
output.accept(ModItems.NUGGET_HELMET.get()); output.accept(ModItems.NUGGET_HELMET.get());
output.accept(ModItems.NUGGET_CHESTPLATE.get()); output.accept(ModItems.NUGGET_CHESTPLATE.get());

View File

@@ -1,4 +1,4 @@
package dev.sillyangel.nugget.item; package dev.sillyangel.nuggetmod.item;
import net.minecraft.world.food.FoodProperties; import net.minecraft.world.food.FoodProperties;

View File

@@ -1,9 +1,9 @@
package dev.sillyangel.nugget.item; package dev.sillyangel.nuggetmod.item;
import net.minecraft.core.registries.Registries; import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceKey;
import net.minecraft.world.item.equipment.ArmorType; import net.minecraft.world.item.equipment.ArmorType;
import dev.sillyangel.nugget.NuggetMod; import dev.sillyangel.nuggetmod.NuggetMod;
import net.minecraftforge.eventbus.api.bus.BusGroup; import net.minecraftforge.eventbus.api.bus.BusGroup;
import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.ForgeRegistries;
@@ -14,7 +14,7 @@ import net.minecraft.world.item.ShovelItem;
import net.minecraft.world.item.AxeItem; import net.minecraft.world.item.AxeItem;
import net.minecraft.world.item.HoeItem; import net.minecraft.world.item.HoeItem;
import net.minecraft.world.item.SmithingTemplateItem; import net.minecraft.world.item.SmithingTemplateItem;
import dev.sillyangel.nugget.sound.ModSounds; import dev.sillyangel.nuggetmod.sound.ModSounds;
public class ModItems { public class ModItems {
@@ -50,6 +50,11 @@ public class ModItems {
() -> new HoeItem(ModToolTiers.NUGGET, 0, -3.0f, new Item.Properties() () -> new HoeItem(ModToolTiers.NUGGET, 0, -3.0f, new Item.Properties()
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_hoe"))))); .setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_hoe")))));
public static final RegistryObject<Item> NUGGET_SPEAR = ITEMS.register("nugget_sword",
() -> new Item(new Item.Properties()
.setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_sword")))
.sword(ModToolTiers.NUGGET, 3.0F, -1F)));
// armor things // armor things
public static final RegistryObject<Item> NUGGET_HELMET = ITEMS.register("nugget_helmet", public static final RegistryObject<Item> NUGGET_HELMET = ITEMS.register("nugget_helmet",

View File

@@ -1,7 +1,7 @@
package dev.sillyangel.nugget.item; package dev.sillyangel.nuggetmod.item;
import net.minecraft.world.item.ToolMaterial; import net.minecraft.world.item.ToolMaterial;
import dev.sillyangel.nugget.util.ModTags; import dev.sillyangel.nuggetmod.util.ModTags;
public class ModToolTiers { public class ModToolTiers {
public static final ToolMaterial NUGGET = new ToolMaterial(ModTags.Blocks.INCORRECT_FOR_NUGGET_TOOL, public static final ToolMaterial NUGGET = new ToolMaterial(ModTags.Blocks.INCORRECT_FOR_NUGGET_TOOL,

View File

@@ -1,9 +1,9 @@
package dev.sillyangel.nugget.sound; package dev.sillyangel.nuggetmod.sound;
import net.minecraft.core.registries.Registries; import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceKey;
import net.minecraft.world.item.JukeboxSong; import net.minecraft.world.item.JukeboxSong;
import dev.sillyangel.nugget.NuggetMod; import dev.sillyangel.nuggetmod.NuggetMod;
import net.minecraft.resources.Identifier; import net.minecraft.resources.Identifier;
import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvent;
import net.minecraftforge.eventbus.api.bus.BusGroup; import net.minecraftforge.eventbus.api.bus.BusGroup;

View File

@@ -0,0 +1,36 @@
package dev.sillyangel.nuggetmod.trim;
import dev.sillyangel.nuggetmod.NuggetMod;
import dev.sillyangel.nuggetmod.item.ModArmorMaterials;
import net.minecraft.util.Util;
import net.minecraft.core.registries.Registries;
import net.minecraft.data.worldgen.BootstrapContext;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.Style;
import net.minecraft.network.chat.TextColor;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.Identifier;
import net.minecraft.world.item.equipment.trim.MaterialAssetGroup;
import net.minecraft.world.item.equipment.trim.TrimMaterial;
import java.util.Map;
public class ModTrimMaterials {
private static final Identifier NUGGET_LOCATION = Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget");
public static final ResourceKey<TrimMaterial> NUGGET =
ResourceKey.create(Registries.TRIM_MATERIAL, NUGGET_LOCATION);
public static void bootstrap(BootstrapContext<TrimMaterial> context) {
register(context, NUGGET, NUGGET_LOCATION, Style.EMPTY.withColor(TextColor.parseColor("#f9b042").getOrThrow()));
}
private static void register(BootstrapContext<TrimMaterial> context, ResourceKey<TrimMaterial> trimKey,
Identifier assetId, Style style) {
MaterialAssetGroup.AssetInfo assetInfo = new MaterialAssetGroup.AssetInfo(assetId.getPath());
TrimMaterial trimmaterial = new TrimMaterial(
new MaterialAssetGroup(assetInfo, Map.of(ModArmorMaterials.NUGGET_EQUIPMENT_ASSET, assetInfo)),
Component.translatable(Util.makeDescriptionId("trim_material", assetId)).withStyle(style));
context.register(trimKey, trimmaterial);
}
}

View File

@@ -1,8 +1,8 @@
package dev.sillyangel.nugget.trim; package dev.sillyangel.nuggetmod.trim;
import net.minecraft.world.item.equipment.trim.TrimPattern; import net.minecraft.world.item.equipment.trim.TrimPattern;
import dev.sillyangel.nugget.NuggetMod; import dev.sillyangel.nuggetmod.NuggetMod;
import dev.sillyangel.nugget.item.ModItems; import dev.sillyangel.nuggetmod.item.ModItems;
import net.minecraft.util.Util; import net.minecraft.util.Util;
import net.minecraft.core.registries.Registries; import net.minecraft.core.registries.Registries;
import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.data.worldgen.BootstrapContext;
@@ -10,19 +10,19 @@ import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.Identifier; import net.minecraft.resources.Identifier;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraftforge.registries.ForgeRegistries;
public class ModTrimPatterns { public class ModTrimPatterns {
public static final ResourceKey<TrimPattern> NUGGET = ResourceKey.create(Registries.TRIM_PATTERN, private static final Identifier NUGGET_LOCATION = Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget");
Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget"));
public static final ResourceKey<TrimPattern> NUGGET = ResourceKey.create(Registries.TRIM_PATTERN, NUGGET_LOCATION);
public static void bootstrap(BootstrapContext<TrimPattern> context) { public static void bootstrap(BootstrapContext<TrimPattern> context) {
register(context, ModItems.NUGGET_SMITHING_TEMPLATE.get(), NUGGET); register(context, ModItems.NUGGET_SMITHING_TEMPLATE.get(), NUGGET, NUGGET_LOCATION);
} }
private static void register(BootstrapContext<TrimPattern> context, Item item, ResourceKey<TrimPattern> key) { private static void register(BootstrapContext<TrimPattern> context, Item item, ResourceKey<TrimPattern> key, Identifier assetId) {
TrimPattern trimPattern = new TrimPattern(key.location(), ForgeRegistries.ITEMS.getHolder(item).get(), TrimPattern trimPattern = new TrimPattern(assetId,
Component.translatable(Util.makeDescriptionId("trim_pattern", key.location())), false); Component.translatable(Util.makeDescriptionId("trim_pattern", assetId)), false);
context.register(key, trimPattern); context.register(key, trimPattern);
} }
} }

View File

@@ -1,4 +1,4 @@
package dev.sillyangel.nugget.util; package dev.sillyangel.nuggetmod.util;
public class ModItemProperites { public class ModItemProperites {
// i dont know what to put here?! // i dont know what to put here?!

View File

@@ -1,6 +1,6 @@
package dev.sillyangel.nugget.util; package dev.sillyangel.nuggetmod.util;
import dev.sillyangel.nugget.NuggetMod; import dev.sillyangel.nuggetmod.NuggetMod;
import net.minecraft.resources.Identifier; import net.minecraft.resources.Identifier;
import net.minecraft.tags.BlockTags; import net.minecraft.tags.BlockTags;
import net.minecraft.tags.ItemTags; import net.minecraft.tags.ItemTags;

View File

@@ -0,0 +1,42 @@
package dev.sillyangel.nuggetmod.villager;
import com.google.common.collect.ImmutableSet;
import dev.sillyangel.nuggetmod.NuggetMod;
import dev.sillyangel.nuggetmod.block.ModBlocks;
import dev.sillyangel.nuggetmod.sound.ModSounds;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.Identifier;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.entity.ai.village.poi.PoiType;
import net.minecraft.world.entity.npc.villager.VillagerProfession;
import net.minecraftforge.eventbus.api.bus.BusGroup;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
public class ModVillagers {
public static final DeferredRegister<PoiType> POI_TYPES =
DeferredRegister.create(ForgeRegistries.POI_TYPES, NuggetMod.MOD_ID);
public static final DeferredRegister<VillagerProfession> VILLAGER_PROFESSIONS =
DeferredRegister.create(ForgeRegistries.VILLAGER_PROFESSIONS, NuggetMod.MOD_ID);
public static final ResourceKey<VillagerProfession> NUGGETER_KEY =
ResourceKey.create(Registries.VILLAGER_PROFESSION, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nuggeter"));
public static final RegistryObject<PoiType> NUGGETER_POI = POI_TYPES.register("nuggeter_poi",
() -> new PoiType(ImmutableSet.copyOf(ModBlocks.NUGGET_BLOCK.get().getStateDefinition().getPossibleStates()),
1, 1));
public static final RegistryObject<VillagerProfession> NUGGETER = VILLAGER_PROFESSIONS.register("nuggeter",
() -> new VillagerProfession(Component.literal("Nuggeter"), holder -> holder.value() == NUGGETER_POI.get(),
holder -> holder.value() == NUGGETER_POI.get(), ImmutableSet.of(), ImmutableSet.of(),
ModSounds.NUGGET_THEME.get()));
public static void register(BusGroup eventBus) {
POI_TYPES.register(eventBus);
VILLAGER_PROFESSIONS.register(eventBus);
}
}

View File

@@ -1,10 +1,10 @@
package dev.sillyangel.nugget.worldgen; package dev.sillyangel.nuggetmod.worldgen;
import net.minecraft.core.HolderSet; import net.minecraft.core.HolderSet;
import net.minecraft.tags.BiomeTags; import net.minecraft.tags.BiomeTags;
import net.minecraft.world.level.levelgen.GenerationStep; import net.minecraft.world.level.levelgen.GenerationStep;
import net.minecraftforge.common.world.ForgeBiomeModifiers; import net.minecraftforge.common.world.ForgeBiomeModifiers;
import dev.sillyangel.nugget.NuggetMod; import dev.sillyangel.nuggetmod.NuggetMod;
import net.minecraft.core.registries.Registries; import net.minecraft.core.registries.Registries;
import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.data.worldgen.BootstrapContext;
import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceKey;

View File

@@ -1,10 +1,10 @@
package dev.sillyangel.nugget.worldgen; package dev.sillyangel.nuggetmod.worldgen;
import net.minecraft.tags.BlockTags; import net.minecraft.tags.BlockTags;
import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration; import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration;
import net.minecraft.world.level.levelgen.structure.templatesystem.RuleTest; import net.minecraft.world.level.levelgen.structure.templatesystem.RuleTest;
import net.minecraft.world.level.levelgen.structure.templatesystem.TagMatchTest; import net.minecraft.world.level.levelgen.structure.templatesystem.TagMatchTest;
import dev.sillyangel.nugget.NuggetMod; import dev.sillyangel.nuggetmod.NuggetMod;
import net.minecraft.core.registries.Registries; import net.minecraft.core.registries.Registries;
import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.data.worldgen.BootstrapContext;
import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceKey;
@@ -12,7 +12,7 @@ import net.minecraft.resources.Identifier;
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.Feature;
import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration; import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration;
import dev.sillyangel.nugget.block.ModBlocks; import dev.sillyangel.nuggetmod.block.ModBlocks;
import java.util.List; import java.util.List;

View File

@@ -1,4 +1,4 @@
package dev.sillyangel.nugget.worldgen; package dev.sillyangel.nuggetmod.worldgen;
import net.minecraft.world.level.levelgen.placement.*; import net.minecraft.world.level.levelgen.placement.*;

View File

@@ -1,8 +1,8 @@
package dev.sillyangel.nugget.worldgen; package dev.sillyangel.nuggetmod.worldgen;
import net.minecraft.world.level.levelgen.VerticalAnchor; import net.minecraft.world.level.levelgen.VerticalAnchor;
import net.minecraft.world.level.levelgen.placement.HeightRangePlacement; import net.minecraft.world.level.levelgen.placement.HeightRangePlacement;
import dev.sillyangel.nugget.NuggetMod; import dev.sillyangel.nuggetmod.NuggetMod;
import net.minecraft.core.Holder; import net.minecraft.core.Holder;
import net.minecraft.core.registries.Registries; import net.minecraft.core.registries.Registries;
import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.data.worldgen.BootstrapContext;

View File

@@ -26,7 +26,7 @@ displayName="${mod_name}" #mandatory
# A URL to query for updates for this mod. See the JSON update specification https://docs.minecraftforge.net/en/latest/misc/updatechecker/ # A URL to query for updates for this mod. See the JSON update specification https://docs.minecraftforge.net/en/latest/misc/updatechecker/
#updateJSONURL="https://change.me.example.invalid/updates.json" #optional #updateJSONURL="https://change.me.example.invalid/updates.json" #optional
# A URL for the "homepage" for this mod, displayed in the mod UI # A URL for the "homepage" for this mod, displayed in the mod UI
displayURL="https://sillyangel.dev/" #optional displayURL="https://modrinth.com/mod/nuggetmod/" #optional
# A file name (in the root of the mod JAR) containing a logo for display # A file name (in the root of the mod JAR) containing a logo for display
logoFile="splash.png" #optional logoFile="splash.png" #optional
# A text field displayed in the mod UI # A text field displayed in the mod UI

View File

@@ -4,12 +4,12 @@
{ {
"type": "paletted_permutations", "type": "paletted_permutations",
"textures": [ "textures": [
"trims/entity/humanoid/coast",
"trims/entity/humanoid_leggings/coast",
"trims/entity/humanoid/sentry", "trims/entity/humanoid/sentry",
"trims/entity/humanoid_leggings/sentry", "trims/entity/humanoid_leggings/sentry",
"trims/entity/humanoid/dune", "trims/entity/humanoid/dune",
"trims/entity/humanoid_leggings/dune", "trims/entity/humanoid_leggings/dune",
"trims/entity/humanoid/coast",
"trims/entity/humanoid_leggings/coast",
"trims/entity/humanoid/wild", "trims/entity/humanoid/wild",
"trims/entity/humanoid_leggings/wild", "trims/entity/humanoid_leggings/wild",
"trims/entity/humanoid/ward", "trims/entity/humanoid/ward",
@@ -45,22 +45,25 @@
], ],
"palette_key": "trims/color_palettes/trim_palette", "palette_key": "trims/color_palettes/trim_palette",
"permutations": { "permutations": {
"quartz": "trims/color_palettes/quartz",
"iron": "trims/color_palettes/iron",
"gold": "trims/color_palettes/gold",
"diamond": "trims/color_palettes/diamond",
"netherite": "trims/color_palettes/netherite",
"redstone": "trims/color_palettes/redstone",
"copper": "trims/color_palettes/copper",
"emerald": "trims/color_palettes/emerald",
"lapis": "trims/color_palettes/lapis",
"amethyst": "trims/color_palettes/amethyst", "amethyst": "trims/color_palettes/amethyst",
"iron_darker": "trims/color_palettes/iron_darker", "copper": "trims/color_palettes/copper",
"gold_darker": "trims/color_palettes/gold_darker", "copper_darker": "trims/color_palettes/copper_darker",
"diamond": "trims/color_palettes/diamond",
"diamond_darker": "trims/color_palettes/diamond_darker", "diamond_darker": "trims/color_palettes/diamond_darker",
"emerald": "trims/color_palettes/emerald",
"gold": "trims/color_palettes/gold",
"gold_darker": "trims/color_palettes/gold_darker",
"iron": "trims/color_palettes/iron",
"iron_darker": "trims/color_palettes/iron_darker",
"lapis": "trims/color_palettes/lapis",
"netherite": "trims/color_palettes/netherite",
"netherite_darker": "trims/color_palettes/netherite_darker", "netherite_darker": "trims/color_palettes/netherite_darker",
"quartz": "trims/color_palettes/quartz",
"redstone": "trims/color_palettes/redstone",
"resin": "trims/color_palettes/resin",
"nugget": "nuggetmod:trims/color_palettes/nugget" "nugget": "nuggetmod:trims/color_palettes/nugget"
} }
} }
] ]
} }

View File

@@ -1,5 +1,10 @@
{ {
"layers": { "layers": {
"wolf_body": [
{
"texture": "nuggetmod:nugget"
}
],
"horse_body": [ "horse_body": [
{ {
"texture": "nuggetmod:nugget" "texture": "nuggetmod:nugget"

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_armor_trim_smithing_template"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_axe"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:block/nugget_block"
}
}

View File

@@ -0,0 +1,89 @@
{
"model": {
"type": "minecraft:select",
"cases": [
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_boots_quartz_trim"
},
"when": "minecraft:quartz"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_boots_iron_trim"
},
"when": "minecraft:iron"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_boots_netherite_trim"
},
"when": "minecraft:netherite"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_boots_redstone_trim"
},
"when": "minecraft:redstone"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_boots_copper_trim"
},
"when": "minecraft:copper"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_boots_gold_trim"
},
"when": "minecraft:gold"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_boots_emerald_trim"
},
"when": "minecraft:emerald"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_boots_diamond_trim"
},
"when": "minecraft:diamond"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_boots_lapis_trim"
},
"when": "minecraft:lapis"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_boots_amethyst_trim"
},
"when": "minecraft:amethyst"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_boots_resin_trim"
},
"when": "minecraft:resin"
}
],
"fallback": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_boots"
},
"property": "minecraft:trim_material"
}
}

View File

@@ -0,0 +1,89 @@
{
"model": {
"type": "minecraft:select",
"cases": [
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_chestplate_quartz_trim"
},
"when": "minecraft:quartz"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_chestplate_iron_trim"
},
"when": "minecraft:iron"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_chestplate_netherite_trim"
},
"when": "minecraft:netherite"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_chestplate_redstone_trim"
},
"when": "minecraft:redstone"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_chestplate_copper_trim"
},
"when": "minecraft:copper"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_chestplate_gold_trim"
},
"when": "minecraft:gold"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_chestplate_emerald_trim"
},
"when": "minecraft:emerald"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_chestplate_diamond_trim"
},
"when": "minecraft:diamond"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_chestplate_lapis_trim"
},
"when": "minecraft:lapis"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_chestplate_amethyst_trim"
},
"when": "minecraft:amethyst"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_chestplate_resin_trim"
},
"when": "minecraft:resin"
}
],
"fallback": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_chestplate"
},
"property": "minecraft:trim_material"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:block/nugget_deepslate_ore"
}
}

View File

@@ -0,0 +1,89 @@
{
"model": {
"type": "minecraft:select",
"cases": [
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_helmet_quartz_trim"
},
"when": "minecraft:quartz"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_helmet_iron_trim"
},
"when": "minecraft:iron"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_helmet_netherite_trim"
},
"when": "minecraft:netherite"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_helmet_redstone_trim"
},
"when": "minecraft:redstone"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_helmet_copper_trim"
},
"when": "minecraft:copper"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_helmet_gold_trim"
},
"when": "minecraft:gold"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_helmet_emerald_trim"
},
"when": "minecraft:emerald"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_helmet_diamond_trim"
},
"when": "minecraft:diamond"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_helmet_lapis_trim"
},
"when": "minecraft:lapis"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_helmet_amethyst_trim"
},
"when": "minecraft:amethyst"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_helmet_resin_trim"
},
"when": "minecraft:resin"
}
],
"fallback": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_helmet"
},
"property": "minecraft:trim_material"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_hoe"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_horse_armor"
}
}

View File

@@ -0,0 +1,89 @@
{
"model": {
"type": "minecraft:select",
"cases": [
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_leggings_quartz_trim"
},
"when": "minecraft:quartz"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_leggings_iron_trim"
},
"when": "minecraft:iron"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_leggings_netherite_trim"
},
"when": "minecraft:netherite"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_leggings_redstone_trim"
},
"when": "minecraft:redstone"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_leggings_copper_trim"
},
"when": "minecraft:copper"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_leggings_gold_trim"
},
"when": "minecraft:gold"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_leggings_emerald_trim"
},
"when": "minecraft:emerald"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_leggings_diamond_trim"
},
"when": "minecraft:diamond"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_leggings_lapis_trim"
},
"when": "minecraft:lapis"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_leggings_amethyst_trim"
},
"when": "minecraft:amethyst"
},
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_leggings_resin_trim"
},
"when": "minecraft:resin"
}
],
"fallback": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_leggings"
},
"property": "minecraft:trim_material"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_music_disc"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:block/nugget_ore"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_pickaxe"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_shovel"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_spear"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/nugget_sword"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:item/raw_nugget"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "nuggetmod:block/raw_nugget_block"
}
}

View File

@@ -1,40 +1,50 @@
{ {
"item.nuggetmod.raw_nugget": "Raw Nugget", "item.nuggetmod.raw_nugget": "Raw Nugget",
"item.nuggetmod.nugget": "Nugget", "item.nuggetmod.nugget": "Nugget",
"item.nuggetmod.nugget_block": "Nugget Block", "block.nuggetmod.nugget_block": "Nugget Block",
"item.nuggetmod.raw_nugget_block": "Raw Nugget Block", "block.nuggetmod.raw_nugget_block": "Raw Nugget Block",
"item.nuggetmod.nugget_ore": "Nugget Ore", "block.nuggetmod.nugget_ore": "Nugget Ore",
"item.nuggetmod.nugget_deepslate_ore": "Nugget Deepslate Ore", "block.nuggetmod.nugget_deepslate_ore": "Nugget Deepslate Ore",
"item.nuggetmod.nugget_sword": "Nugget Sword", "item.nuggetmod.nugget_sword": "Nugget Sword",
"item.nuggetmod.nugget_pickaxe": "Nugget Pickaxe", "item.nuggetmod.nugget_pickaxe": "Nugget Pickaxe",
"item.nuggetmod.nugget_shovel": "Nugget Shovel", "item.nuggetmod.nugget_shovel": "Nugget Shovel",
"item.nuggetmod.nugget_axe": "Nugget Axe", "item.nuggetmod.nugget_axe": "Nugget Axe",
"item.nuggetmod.nugget_hoe": "Nugget Hoe", "item.nuggetmod.nugget_hoe": "Nugget Hoe",
"item.nuggetmod.nugget_bow": "Nugget Bow",
"item.nuggetmod.nugget_music_disc": "Nugget Theme", "item.nuggetmod.nugget_crossbow": "Nugget Crossbow",
"item.nuggetmod.nugget_music_disc.desc": "Gegagedigedagedago", "item.nuggetmod.nugget_trident": "Nugget Trident",
"item.nuggetmod.nugget_fishing_rod": "Nugget Fishing Rod",
"item.nuggetmod.nugget_flint_and_steel": "Nugget Flint and Steel",
"item.nuggetmod.nugget_horse_armor": "Nugget Horse Armor", "item.nuggetmod.nugget_shears": "Nugget Shears",
"item.nuggetmod.nugget_armor_trim_smithing_template": "§6Nugget Armor Trim", "item.nuggetmod.nugget_shield": "Nugget Shield",
"item.nuggetmod.nugget_spear": "Nugget Spear",
"item.nuggetmod.nugget_helmet": "Nugget Helmet",
"item.nuggetmod.nugget_chestplate": "Nugget Chestplate", "item.nuggetmod.nugget_music_disc": "Nugget Theme",
"item.nuggetmod.nugget_leggings": "Nugget Leggings", "item.nuggetmod.nugget_music_disc.desc": "Gegagedigedagedago",
"item.nuggetmod.nugget_boots": "Nugget Boots",
"creativetab.nuggetmod.nugget_items": "Nugget Items", "item.nuggetmod.nugget_horse_armor": "Nugget Horse Armor",
"creativetab.nuggetmod.nugget_blocks": "Nugget Blocks", "item.nuggetmod.nugget_armor_trim_smithing_template": "Smithing Template",
"item.nuggetmod.nugget.tooltip": "THE NUGGET", "item.nuggetmod.nugget_helmet": "Nugget Helmet",
"item.nuggetmod.nugget_chestplate": "Nugget Chestplate",
"trim_material.nuggetmod.nugget": "Nugget Material", "item.nuggetmod.nugget_leggings": "Nugget Leggings",
"trim_pattern.nuggetmod.nugget_trim_material": "Nugget Trim", "item.nuggetmod.nugget_boots": "Nugget Boots",
"trim_pattern.nuggetmod.nugget": "Nugget Trim",
"creativetab.nuggetmod.nugget_items": "Nugget Items",
"creativetab.nuggetmod.nugget_blocks": "Nugget Blocks",
"painting.nuggetmod.nugget_painting.title": "Nugget Painting",
"painting.nuggetmod.nugget_painting.author": "Nugget Mod" "item.nuggetmod.nugget.tooltip": "THE NUGGET",
"entity.minecraft.villager.nuggeter": "Nuggeter",
"trim_material.nuggetmod.nugget": "Nugget Material",
"trim_pattern.nuggetmod.nugget_trim_material": "Nugget Trim",
"trim_pattern.nuggetmod.nugget_armor_trim_smithing_template": "§6Nugget Armor Trim",
"trim_pattern.nuggetmod.nugget": "Nugget Trim",
"painting.nuggetmod.nugget_painting.title": "Nugget Painting",
"painting.nuggetmod.nugget_painting.author": "Nugget Mod"
} }

View File

@@ -2,10 +2,10 @@
"item.nuggetmod.raw_nugget": "Nugget Crudo", "item.nuggetmod.raw_nugget": "Nugget Crudo",
"item.nuggetmod.nugget": "Nugget", "item.nuggetmod.nugget": "Nugget",
"item.nuggetmod.nugget_block": "Bloque de Nuggets", "block.nuggetmod.nugget_block": "Bloque de Nuggets",
"item.nuggetmod.raw_nugget_block": "Bloque de Nuggets Crudos", "block.nuggetmod.raw_nugget_block": "Bloque de Nuggets Crudos",
"item.nuggetmod.nugget_ore": "Mineral de Nuggets", "block.nuggetmod.nugget_ore": "Mineral de Nuggets",
"item.nuggetmod.nugget_deepslate_ore": "Mineral de Nuggets de Pizca Profunda", "block.nuggetmod.nugget_deepslate_ore": "Mineral de Nuggets de Pizca Profunda",
"item.nuggetmod.nugget_sword": "Espada de Nuggets", "item.nuggetmod.nugget_sword": "Espada de Nuggets",
"item.nuggetmod.nugget_pickaxe": "Pico de Nuggets", "item.nuggetmod.nugget_pickaxe": "Pico de Nuggets",
@@ -17,7 +17,7 @@
"item.nuggetmod.nugget_music_disc.desc": "Gegagedigedagedago", "item.nuggetmod.nugget_music_disc.desc": "Gegagedigedagedago",
"item.nuggetmod.nugget_horse_armor": "Armadura de Caballo de Nuggets", "item.nuggetmod.nugget_horse_armor": "Armadura de Caballo de Nuggets",
"item.nuggetmod.nugget_armor_trim_smithing_template": "§6Adorno de Armadura de Nuggets", "item.nuggetmod.nugget_armor_trim_smithing_template": "Plantilla de Adorno de Nuggets",
"item.nuggetmod.nugget_helmet": "Casco de Nuggets", "item.nuggetmod.nugget_helmet": "Casco de Nuggets",
"item.nuggetmod.nugget_chestplate": "Peto de Nuggets", "item.nuggetmod.nugget_chestplate": "Peto de Nuggets",

View File

@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "nuggetmod:item/nugget_boots"
}
}

View File

@@ -0,0 +1,7 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "nuggetmod:item/nugget_boots",
"layer1": "minecraft:trims/items/boots_trim_resin"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "nuggetmod:item/nugget_chestplate"
}
}

Some files were not shown because too many files have changed in this diff Show More