diff --git a/build.gradle b/build.gradle index ee56bf3..3db0d58 100644 --- a/build.gradle +++ b/build.gradle @@ -31,12 +31,13 @@ subprojects { // for more information about repositories. } + loom { + silentMojangMappingsLicense() + } + dependencies { minecraft "net.minecraft:minecraft:$rootProject.minecraft_version" - mappings loom.layered { - it.mappings("net.fabricmc:yarn:$rootProject.yarn_mappings:v2") - it.mappings("dev.architectury:yarn-mappings-patch-neoforge:$rootProject.yarn_mappings_patch_neoforge_version") - } + mappings loom.officialMojangMappings() } java { diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/block/ModBlocks.java b/common/src/main/java/dev/sillyangel/nuggetmod/block/ModBlocks.java index 3e40e6d..fa511d6 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/block/ModBlocks.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/block/ModBlocks.java @@ -3,59 +3,59 @@ package dev.sillyangel.nuggetmod.block; import dev.architectury.registry.registries.DeferredRegister; import dev.architectury.registry.registries.RegistrySupplier; import dev.sillyangel.nuggetmod.NuggetMod; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.Block; -import net.minecraft.block.ExperienceDroppingBlock; -import net.minecraft.item.BlockItem; -import net.minecraft.item.Item; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.sound.BlockSoundGroup; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.intprovider.UniformIntProvider; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.DropExperienceBlock; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.resources.ResourceKey; +import net.minecraft.core.registries.Registries; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.resources.Identifier; +import net.minecraft.util.valueproviders.UniformInt; import java.util.function.Supplier; public class ModBlocks { - public static final DeferredRegister BLOCKS = DeferredRegister.create(NuggetMod.MOD_ID, RegistryKeys.BLOCK); - public static final DeferredRegister BLOCK_ITEMS = DeferredRegister.create(NuggetMod.MOD_ID, RegistryKeys.ITEM); + public static final DeferredRegister BLOCKS = DeferredRegister.create(NuggetMod.MOD_ID, Registries.BLOCK); + public static final DeferredRegister BLOCK_ITEMS = DeferredRegister.create(NuggetMod.MOD_ID, Registries.ITEM); public static final RegistrySupplier NUGGET_BLOCK = registerBlockWithItem("nugget_block", () -> new Block(createBlockSettings("nugget_block") .strength(4f) - .requiresTool() - .sounds(BlockSoundGroup.AMETHYST_BLOCK))); + .requiresCorrectToolForDrops() + .sound(SoundType.AMETHYST))); public static final RegistrySupplier RAW_NUGGET_BLOCK = registerBlockWithItem("raw_nugget_block", () -> new Block(createBlockSettings("raw_nugget_block") .strength(4f) - .requiresTool())); + .requiresCorrectToolForDrops())); public static final RegistrySupplier NUGGET_ORE = registerBlockWithItem("nugget_ore", - () -> new ExperienceDroppingBlock(UniformIntProvider.create(2, 5), + () -> new DropExperienceBlock(UniformInt.of(2, 5), createBlockSettings("nugget_ore") .strength(3f) - .requiresTool())); + .requiresCorrectToolForDrops())); public static final RegistrySupplier NUGGET_DEEPSLATE_ORE = registerBlockWithItem("nugget_deepslate_ore", - () -> new ExperienceDroppingBlock(UniformIntProvider.create(3, 6), + () -> new DropExperienceBlock(UniformInt.of(3, 6), createBlockSettings("nugget_deepslate_ore") .strength(4f) - .requiresTool() - .sounds(BlockSoundGroup.DEEPSLATE))); + .requiresCorrectToolForDrops() + .sound(SoundType.DEEPSLATE))); private static RegistrySupplier registerBlockWithItem(String name, Supplier block) { RegistrySupplier toReturn = BLOCKS.register(name, block); BLOCK_ITEMS.register(name, () -> new BlockItem(toReturn.get(), - new Item.Settings() - .useBlockPrefixedTranslationKey() - .registryKey(RegistryKey.of(RegistryKeys.ITEM, Identifier.of(NuggetMod.MOD_ID, name))))); + new Item.Properties() + .useBlockDescriptionPrefix() + .setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name))))); return toReturn; } - private static AbstractBlock.Settings createBlockSettings(String name) { - return AbstractBlock.Settings.create() - .registryKey(RegistryKey.of(RegistryKeys.BLOCK, Identifier.of(NuggetMod.MOD_ID, name))); + private static BlockBehaviour.Properties createBlockSettings(String name) { + return BlockBehaviour.Properties.of() + .setId(ResourceKey.create(Registries.BLOCK, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name))); } public static void init() { diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/item/ModArmorMaterials.java b/common/src/main/java/dev/sillyangel/nuggetmod/item/ModArmorMaterials.java index 4c2275e..21710ab 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/item/ModArmorMaterials.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/item/ModArmorMaterials.java @@ -2,27 +2,29 @@ package dev.sillyangel.nuggetmod.item; import dev.sillyangel.nuggetmod.NuggetMod; import dev.sillyangel.nuggetmod.util.ModTags; -import net.minecraft.item.equipment.ArmorMaterial; -import net.minecraft.item.equipment.EquipmentAsset; -import net.minecraft.item.equipment.EquipmentType; -import net.minecraft.registry.Registry; -import net.minecraft.registry.RegistryKey; -import net.minecraft.sound.SoundEvents; -import net.minecraft.util.Identifier; import net.minecraft.util.Util; +import net.minecraft.resources.Identifier; +import net.minecraft.resources.ResourceKey; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.item.equipment.ArmorMaterial; +import net.minecraft.world.item.equipment.ArmorType; +import net.minecraft.world.item.equipment.EquipmentAsset; import java.util.EnumMap; public class ModArmorMaterials { - static RegistryKey> REGISTRY_KEY = RegistryKey.ofRegistry(Identifier.ofVanilla("equipment_asset")); - public static final RegistryKey NUGGET_KEY = RegistryKey.of(REGISTRY_KEY, Identifier.of(NuggetMod.MOD_ID, "nugget")); + public static final ResourceKey NUGGET_EQUIPMENT_ASSET = + ResourceKey.create(ResourceKey.createRegistryKey(Identifier.withDefaultNamespace("equipment_asset")), + Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget")); - public static final ArmorMaterial NUGGET_ARMOR_MATERIAL = new ArmorMaterial(500, Util.make(new EnumMap<>(EquipmentType.class), map -> { - map.put(EquipmentType.BOOTS, 3); - map.put(EquipmentType.LEGGINGS, 6); - map.put(EquipmentType.CHESTPLATE, 8); - map.put(EquipmentType.HELMET, 3); - map.put(EquipmentType.BODY, 19); - }), 20, SoundEvents.ITEM_ARMOR_EQUIP_NETHERITE, 4.0F, 0.1F, ModTags.Items.REPAIRS_NUGGET_ARMOR, NUGGET_KEY); + public static final ArmorMaterial NUGGET_ARMOR_MATERIAL = new ArmorMaterial(1200, Util.make(new EnumMap<>(ArmorType.class), + attribute -> { + attribute.put(ArmorType.BOOTS, 5); + attribute.put(ArmorType.LEGGINGS, 7); + attribute.put(ArmorType.CHESTPLATE, 9); + attribute.put(ArmorType.HELMET, 5); + attribute.put(ArmorType.BODY, 11); + }), 20, SoundEvents.ARMOR_EQUIP_NETHERITE, + 4f, 0.1f, ModTags.Items.REPAIRS_NUGGET_ARMOR, NUGGET_EQUIPMENT_ASSET); } diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/item/ModFoodComponents.java b/common/src/main/java/dev/sillyangel/nuggetmod/item/ModFoodComponents.java index 90c36f6..a0a0caa 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/item/ModFoodComponents.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/item/ModFoodComponents.java @@ -1,9 +1,9 @@ package dev.sillyangel.nuggetmod.item; -import net.minecraft.component.type.FoodComponent; +import net.minecraft.world.food.FoodProperties; public class ModFoodComponents { - public static final FoodComponent NUGGET = new FoodComponent.Builder() + public static final FoodProperties NUGGET = new FoodProperties.Builder() .nutrition(5) .saturationModifier(0.5f) .build(); diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/item/ModItems.java b/common/src/main/java/dev/sillyangel/nuggetmod/item/ModItems.java index aa1d808..b99c5ed 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/item/ModItems.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/item/ModItems.java @@ -4,14 +4,14 @@ import dev.architectury.registry.registries.DeferredRegister; import dev.architectury.registry.registries.RegistrySupplier; import dev.sillyangel.nuggetmod.NuggetMod; import dev.sillyangel.nuggetmod.sound.ModSounds; -import net.minecraft.item.*; -import net.minecraft.item.equipment.EquipmentType; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.util.Identifier; +import net.minecraft.world.item.*; +import net.minecraft.world.item.equipment.ArmorType; +import net.minecraft.resources.ResourceKey; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.Identifier; public class ModItems { - public static final DeferredRegister ITEMS = DeferredRegister.create(NuggetMod.MOD_ID, RegistryKeys.ITEM); + public static final DeferredRegister ITEMS = DeferredRegister.create(NuggetMod.MOD_ID, Registries.ITEM); // Basic Items public static final RegistrySupplier NUGGET = ITEMS.register("nugget", @@ -41,29 +41,29 @@ public class ModItems { // Armor public static final RegistrySupplier NUGGET_HELMET = ITEMS.register("nugget_helmet", - () -> new Item(createSettings("nugget_helmet").armor(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, EquipmentType.HELMET))); + () -> new Item(createSettings("nugget_helmet").humanoidArmor(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, ArmorType.HELMET))); public static final RegistrySupplier NUGGET_CHESTPLATE = ITEMS.register("nugget_chestplate", - () -> new Item(createSettings("nugget_chestplate").armor(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, EquipmentType.CHESTPLATE))); + () -> new Item(createSettings("nugget_chestplate").humanoidArmor(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, ArmorType.CHESTPLATE))); public static final RegistrySupplier NUGGET_LEGGINGS = ITEMS.register("nugget_leggings", - () -> new Item(createSettings("nugget_leggings").armor(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, EquipmentType.LEGGINGS))); + () -> new Item(createSettings("nugget_leggings").humanoidArmor(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, ArmorType.LEGGINGS))); public static final RegistrySupplier NUGGET_BOOTS = ITEMS.register("nugget_boots", - () -> new Item(createSettings("nugget_boots").armor(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, EquipmentType.BOOTS))); + () -> new Item(createSettings("nugget_boots").humanoidArmor(ModArmorMaterials.NUGGET_ARMOR_MATERIAL, ArmorType.BOOTS))); public static final RegistrySupplier NUGGET_HORSE_ARMOR = ITEMS.register("nugget_horse_armor", () -> new Item(createSettings("nugget_horse_armor").horseArmor(ModArmorMaterials.NUGGET_ARMOR_MATERIAL))); // Special Items public static final RegistrySupplier NUGGET_SMITHING_TEMPLATE = ITEMS.register("nugget_armor_trim_smithing_template", - () -> SmithingTemplateItem.of(createSettings("nugget_armor_trim_smithing_template"))); + () -> SmithingTemplateItem.createArmorTrimTemplate(createSettings("nugget_armor_trim_smithing_template").stacksTo(1))); public static final RegistrySupplier NUGGET_MUSIC_DISC = ITEMS.register("nugget_music_disc", - () -> new Item(createSettings("nugget_music_disc").jukeboxPlayable(ModSounds.NUGGET_THEME_KEY).maxCount(1))); + () -> new Item(createSettings("nugget_music_disc").jukeboxPlayable(ModSounds.NUGGET_THEME_KEY))); - private static Item.Settings createSettings(String name) { - return new Item.Settings().registryKey(RegistryKey.of(RegistryKeys.ITEM, Identifier.of(NuggetMod.MOD_ID, name))); + private static Item.Properties createSettings(String name) { + return new Item.Properties().setId(ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name))); } public static void init() { diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/item/ModToolMaterials.java b/common/src/main/java/dev/sillyangel/nuggetmod/item/ModToolMaterials.java index 7108064..792119e 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/item/ModToolMaterials.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/item/ModToolMaterials.java @@ -1,7 +1,7 @@ package dev.sillyangel.nuggetmod.item; import dev.sillyangel.nuggetmod.util.ModTags; -import net.minecraft.item.ToolMaterial; +import net.minecraft.world.item.ToolMaterial; public class ModToolMaterials { public static final ToolMaterial NUGGET = new ToolMaterial( diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/particle/NuggetParticle.java b/common/src/main/java/dev/sillyangel/nuggetmod/particle/NuggetParticle.java new file mode 100644 index 0000000..388a576 --- /dev/null +++ b/common/src/main/java/dev/sillyangel/nuggetmod/particle/NuggetParticle.java @@ -0,0 +1,46 @@ +package dev.sillyangel.nuggetmod.particle; + +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.particle.SingleQuadParticle; +import net.minecraft.core.particles.SimpleParticleType; +import net.minecraft.util.RandomSource; +import net.minecraft.client.particle.SpriteSet; +import net.minecraft.client.particle.Particle; +import net.minecraft.client.particle.ParticleProvider; +import org.jetbrains.annotations.Nullable; + +public class NuggetParticle extends SingleQuadParticle { + protected NuggetParticle(ClientLevel level, double x, double y, double z, SpriteSet spriteSet, + double xSpeed, double ySpeed, double zSpeed) { + super(level, x, y, z, xSpeed, ySpeed, zSpeed, spriteSet.get(RandomSource.create())); + + this.gravity = 0.8f; + this.lifetime = 80; + + this.rCol = 1f; + this.gCol = 1f; + this.bCol = 1f; + } + + @Override + protected Layer getLayer() { + return Layer.TRANSLUCENT; + } + + + public static class Factory implements ParticleProvider { + private final SpriteSet spriteSet; + + public Factory(SpriteSet spriteSet) { + this.spriteSet = spriteSet; + } + + @Nullable + @Override + public Particle createParticle(SimpleParticleType simpleParticleType, ClientLevel clientLevel, + double pX, double pY, double pZ, double pXSpeed, double pYSpeed, double pZSpeed, RandomSource randomSource) { + return new NuggetParticle(clientLevel, pX, pY, pZ, this.spriteSet, pXSpeed, pYSpeed, pZSpeed); + } + } +} + diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/sound/ModSounds.java b/common/src/main/java/dev/sillyangel/nuggetmod/sound/ModSounds.java index e293df9..e1e952f 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/sound/ModSounds.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/sound/ModSounds.java @@ -3,20 +3,20 @@ package dev.sillyangel.nuggetmod.sound; import dev.architectury.registry.registries.DeferredRegister; import dev.architectury.registry.registries.RegistrySupplier; import dev.sillyangel.nuggetmod.NuggetMod; -import net.minecraft.block.jukebox.JukeboxSong; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.sound.SoundEvent; -import net.minecraft.util.Identifier; +import net.minecraft.world.item.JukeboxSong; +import net.minecraft.resources.ResourceKey; +import net.minecraft.core.registries.Registries; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.resources.Identifier; public class ModSounds { - public static final DeferredRegister SOUND_EVENTS = DeferredRegister.create(NuggetMod.MOD_ID, RegistryKeys.SOUND_EVENT); + public static final DeferredRegister SOUND_EVENTS = DeferredRegister.create(NuggetMod.MOD_ID, Registries.SOUND_EVENT); public static final RegistrySupplier NUGGET_THEME = SOUND_EVENTS.register("nugget_theme", - () -> SoundEvent.of(Identifier.of(NuggetMod.MOD_ID, "nugget_theme"))); + () -> SoundEvent.createVariableRangeEvent(Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_theme"))); - public static final RegistryKey NUGGET_THEME_KEY = - RegistryKey.of(RegistryKeys.JUKEBOX_SONG, Identifier.of(NuggetMod.MOD_ID, "nugget_theme")); + public static final ResourceKey NUGGET_THEME_KEY = + ResourceKey.create(Registries.JUKEBOX_SONG, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_theme")); public static void init() { SOUND_EVENTS.register(); diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/trim/ModTrimMaterials.java b/common/src/main/java/dev/sillyangel/nuggetmod/trim/ModTrimMaterials.java index b2ed764..25d459a 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/trim/ModTrimMaterials.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/trim/ModTrimMaterials.java @@ -1,37 +1,35 @@ package dev.sillyangel.nuggetmod.trim; import dev.sillyangel.nuggetmod.NuggetMod; -import dev.sillyangel.nuggetmod.item.ModItems; -import net.minecraft.item.Item; -import net.minecraft.item.equipment.trim.ArmorTrimAssets; -import net.minecraft.item.equipment.trim.ArmorTrimMaterial; -import net.minecraft.registry.Registerable; -import net.minecraft.registry.Registries; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.text.Style; -import net.minecraft.text.Text; -import net.minecraft.text.TextColor; -import net.minecraft.util.Identifier; +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 { - public static final RegistryKey NUGGET = RegistryKey.of(RegistryKeys.TRIM_MATERIAL, - Identifier.of(NuggetMod.MOD_ID, "nugget")); - public static void bootstrap(Registerable registerable) { - register(registerable, NUGGET, Registries.ITEM.getEntry(ModItems.NUGGET.get()), - Style.EMPTY.withColor(TextColor.parse("#f9b042").getOrThrow())); + public static final ResourceKey NUGGET = + ResourceKey.create(Registries.TRIM_MATERIAL, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget")); + public static void bootstrap(BootstrapContext context) { + register(context, NUGGET, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget"), Style.EMPTY.withColor(TextColor.parseColor("#f9b042").getOrThrow())); } - private static void register(Registerable registerable, RegistryKey armorTrimKey, - RegistryEntry item, Style style) { - ArmorTrimMaterial trimMaterial = new ArmorTrimMaterial(ArmorTrimAssets.of("nugget"), - Text.translatable(Util.createTranslationKey("trim_material", armorTrimKey.getValue())).fillStyle(style)); - - registerable.register(armorTrimKey, trimMaterial); + private static void register(BootstrapContext context, ResourceKey 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); } } \ No newline at end of file diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/trim/ModTrimPatterns.java b/common/src/main/java/dev/sillyangel/nuggetmod/trim/ModTrimPatterns.java index 6b1540b..b0cd7a5 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/trim/ModTrimPatterns.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/trim/ModTrimPatterns.java @@ -1,28 +1,28 @@ package dev.sillyangel.nuggetmod.trim; +import net.minecraft.world.item.equipment.trim.TrimPattern; import dev.sillyangel.nuggetmod.NuggetMod; import dev.sillyangel.nuggetmod.item.ModItems; -import net.minecraft.item.Item; -import net.minecraft.item.equipment.trim.ArmorTrimPattern; -import net.minecraft.registry.Registerable; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; 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.resources.ResourceKey; +import net.minecraft.resources.Identifier; +import net.minecraft.world.item.Item; public class ModTrimPatterns { - public static final RegistryKey NUGGET = RegistryKey.of(RegistryKeys.TRIM_PATTERN, - Identifier.of(NuggetMod.MOD_ID, "nugget")); + private static final Identifier NUGGET_LOCATION = Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget"); - public static void bootstrap(Registerable context) { - register(context, ModItems.NUGGET_SMITHING_TEMPLATE.get(), NUGGET); + public static final ResourceKey NUGGET = ResourceKey.create(Registries.TRIM_PATTERN, NUGGET_LOCATION); + + public static void bootstrap(BootstrapContext context) { + register(context, ModItems.NUGGET_SMITHING_TEMPLATE.get(), NUGGET, NUGGET_LOCATION); } - private static void register(Registerable context, Item item, RegistryKey key) { - ArmorTrimPattern trimPattern = new ArmorTrimPattern(key.getValue(), - Text.translatable(Util.createTranslationKey("trim_pattern", key.getValue())), false); - + private static void register(BootstrapContext context, Item item, ResourceKey key, Identifier assetId) { + TrimPattern trimPattern = new TrimPattern(assetId, + Component.translatable(Util.makeDescriptionId("trim_pattern", assetId)), false); context.register(key, trimPattern); } } \ No newline at end of file diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/util/ModTags.java b/common/src/main/java/dev/sillyangel/nuggetmod/util/ModTags.java index 33722b2..f1fc92d 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/util/ModTags.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/util/ModTags.java @@ -1,11 +1,11 @@ package dev.sillyangel.nuggetmod.util; import dev.sillyangel.nuggetmod.NuggetMod; -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.registry.tag.TagKey; -import net.minecraft.util.Identifier; +import net.minecraft.resources.Identifier; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.item.Item; +import net.minecraft.core.registries.Registries; +import net.minecraft.tags.TagKey; public class ModTags { public static class Blocks { @@ -13,7 +13,7 @@ public class ModTags { public static final TagKey INCORRECT_FOR_NUGGET_TOOL = createTag("incorrect_for_nugget_tool"); private static TagKey createTag(String name) { - return TagKey.of(RegistryKeys.BLOCK, Identifier.of(NuggetMod.MOD_ID, name)); + return TagKey.create(Registries.BLOCK, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name)); } } @@ -22,7 +22,7 @@ public class ModTags { public static final TagKey REPAIRS_NUGGET_ARMOR = createTag("repairs_nugget_armor"); private static TagKey createTag(String name) { - return TagKey.of(RegistryKeys.ITEM, Identifier.of(NuggetMod.MOD_ID, name)); + return TagKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name)); } } } diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/worldgen/ModConfiguredFeatures.java b/common/src/main/java/dev/sillyangel/nuggetmod/worldgen/ModConfiguredFeatures.java index dbf8574..54e61f5 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/worldgen/ModConfiguredFeatures.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/worldgen/ModConfiguredFeatures.java @@ -1,42 +1,44 @@ package dev.sillyangel.nuggetmod.worldgen; +import net.minecraft.tags.BlockTags; +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.TagMatchTest; import dev.sillyangel.nuggetmod.NuggetMod; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.worldgen.BootstrapContext; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.Identifier; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration; import dev.sillyangel.nuggetmod.block.ModBlocks; -import net.minecraft.registry.Registerable; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.util.Identifier; -import net.minecraft.world.gen.feature.ConfiguredFeature; -import net.minecraft.world.gen.feature.Feature; -import net.minecraft.world.gen.feature.FeatureConfig; -import net.minecraft.registry.tag.BlockTags; -import net.minecraft.structure.rule.RuleTest; -import net.minecraft.structure.rule.TagMatchRuleTest; -import net.minecraft.world.gen.feature.OreFeatureConfig; import java.util.List; public class ModConfiguredFeatures { - public static final RegistryKey> NUGGET_ORE_KEY = registerKey("nugget_ore"); - public static void bootstrap(Registerable> context) { - RuleTest stoneReplaceables = new TagMatchRuleTest(BlockTags.STONE_ORE_REPLACEABLES); - RuleTest deepslateReplaceables = new TagMatchRuleTest(BlockTags.DEEPSLATE_ORE_REPLACEABLES); + public static final ResourceKey> OVERWORLD_NUGGET_ORE_KEY = registerKey("nugget_ore"); - List overworldNuggetOres = - List.of(OreFeatureConfig.createTarget(stoneReplaceables, ModBlocks.NUGGET_ORE.get().getDefaultState()), - OreFeatureConfig.createTarget(deepslateReplaceables, ModBlocks.NUGGET_DEEPSLATE_ORE.get().getDefaultState())); - register(context, NUGGET_ORE_KEY, Feature.ORE, new OreFeatureConfig(overworldNuggetOres, 12)); + public static void bootstrap(BootstrapContext> context) { + RuleTest stoneReplaceables = new TagMatchTest(BlockTags.STONE_ORE_REPLACEABLES); + RuleTest deepslateReplaceables = new TagMatchTest(BlockTags.DEEPSLATE_ORE_REPLACEABLES); + + List overworldNuggetOres = List.of( + OreConfiguration.target(stoneReplaceables, ModBlocks.NUGGET_ORE.get().defaultBlockState()), + OreConfiguration.target(deepslateReplaceables, ModBlocks.NUGGET_DEEPSLATE_ORE.get().defaultBlockState())); + + register(context, OVERWORLD_NUGGET_ORE_KEY, Feature.ORE, new OreConfiguration(overworldNuggetOres, 9)); + } - public static RegistryKey> registerKey(String name) { - return RegistryKey.of(RegistryKeys.CONFIGURED_FEATURE, Identifier.of(NuggetMod.MOD_ID, name)); + public static ResourceKey> registerKey(String name) { + return ResourceKey.create(Registries.CONFIGURED_FEATURE, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name)); } - private static > void register(Registerable> context, - RegistryKey> key, F feature, FC configuration) { + private static > void register(BootstrapContext> context, + ResourceKey> key, F feature, FC configuration) { context.register(key, new ConfiguredFeature<>(feature, configuration)); } -} - +} \ No newline at end of file diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/worldgen/ModOrePlacement.java b/common/src/main/java/dev/sillyangel/nuggetmod/worldgen/ModOrePlacement.java index 0898aa3..29abcdf 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/worldgen/ModOrePlacement.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/worldgen/ModOrePlacement.java @@ -1,19 +1,19 @@ package dev.sillyangel.nuggetmod.worldgen; -import net.minecraft.world.gen.placementmodifier.*; +import net.minecraft.world.level.levelgen.placement.*; import java.util.List; public class ModOrePlacement { - public static List modifiers(PlacementModifier countModifier, PlacementModifier heightModifier) { - return List.of(countModifier, SquarePlacementModifier.of(), heightModifier, BiomePlacementModifier.of()); + public static List orePlacement(PlacementModifier pCountPlacement, PlacementModifier pHeightRange) { + return List.of(pCountPlacement, InSquarePlacement.spread(), pHeightRange, BiomeFilter.biome()); } - public static List modifiersWithCount(int count, PlacementModifier heightModifier) { - return modifiers(CountPlacementModifier.of(count), heightModifier); + public static List commonOrePlacement(int pCount, PlacementModifier pHeightRange) { + return orePlacement(CountPlacement.of(pCount), pHeightRange); } - public static List modifiersWithRarity(int chance, PlacementModifier heightModifier) { - return modifiers(RarityFilterPlacementModifier.of(chance), heightModifier); + public static List rareOrePlacement(int pChance, PlacementModifier pHeightRange) { + return orePlacement(RarityFilter.onAverageOnceEvery(pChance), pHeightRange); } } \ No newline at end of file diff --git a/common/src/main/java/dev/sillyangel/nuggetmod/worldgen/ModPlacedFeatures.java b/common/src/main/java/dev/sillyangel/nuggetmod/worldgen/ModPlacedFeatures.java index 51ceaec..d76ca78 100644 --- a/common/src/main/java/dev/sillyangel/nuggetmod/worldgen/ModPlacedFeatures.java +++ b/common/src/main/java/dev/sillyangel/nuggetmod/worldgen/ModPlacedFeatures.java @@ -1,53 +1,38 @@ package dev.sillyangel.nuggetmod.worldgen; +import net.minecraft.world.level.levelgen.VerticalAnchor; +import net.minecraft.world.level.levelgen.placement.HeightRangePlacement; import dev.sillyangel.nuggetmod.NuggetMod; -import net.minecraft.registry.Registerable; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.util.Identifier; -import net.minecraft.world.gen.YOffset; -import net.minecraft.world.gen.feature.ConfiguredFeature; -import net.minecraft.world.gen.feature.Feature; -import net.minecraft.world.gen.feature.FeatureConfig; -import net.minecraft.world.gen.feature.PlacedFeature; -import net.minecraft.world.gen.placementmodifier.HeightRangePlacementModifier; -import net.minecraft.world.gen.placementmodifier.PlacementModifier; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.worldgen.BootstrapContext; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.Identifier; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.placement.PlacedFeature; +import net.minecraft.world.level.levelgen.placement.PlacementModifier; import java.util.List; public class ModPlacedFeatures { - public static final RegistryKey NUGGET_ORE_PLACED_KEY = registerKey("nugget_ore_placed"); - // public static final RegistryKey NETHER_NUGGET_ORE_PLACED_KEY = registerKey("nether_nugget_ore_placed"); - // public static final RegistryKey END_NUGGET_ORE_PLACED_KEY = registerKey("end_nugget_ore_placed"); - public static void bootstrap(Registerable context) { - var configuredFeatures = context.getRegistryLookup(RegistryKeys.CONFIGURED_FEATURE); + public static final ResourceKey NUGGET_ORE_PLACED_KEY = registerKey("nugget_ore_placed"); - register(context, NUGGET_ORE_PLACED_KEY, configuredFeatures.getOrThrow(ModConfiguredFeatures.NUGGET_ORE_KEY), - ModOrePlacement.modifiersWithCount(14, - HeightRangePlacementModifier.uniform(YOffset.fixed(-64), YOffset.fixed(80)))); - // register(context, NETHER_NUGGET_ORE_PLACED_KEY, configuredFeatures.getOrThrow(ModConfiguredFeatures.NETHER_NUGGET_ORE_KEY), - // ModOrePlacement.modifiersWithCount(14, - // HeightRangePlacementModifier.uniform(YOffset.fixed(-80), YOffset.fixed(80)))); - // register(context, END_NUGGET_ORE_PLACED_KEY, configuredFeatures.getOrThrow(ModConfiguredFeatures.END_NUGGET_ORE_KEY), - // ModOrePlacement.modifiersWithCount(14, - // HeightRangePlacementModifier.uniform(YOffset.fixed(-80), YOffset.fixed(80)))); + public static void bootstrap(BootstrapContext context) { + var configuredFeatures = context.lookup(Registries.CONFIGURED_FEATURE); + + register(context, NUGGET_ORE_PLACED_KEY, configuredFeatures.getOrThrow(ModConfiguredFeatures.OVERWORLD_NUGGET_ORE_KEY), + ModOrePlacement.commonOrePlacement(12, + HeightRangePlacement.uniform(VerticalAnchor.absolute(-64), VerticalAnchor.absolute(80)))); } - public static RegistryKey registerKey(String name) { - return RegistryKey.of(RegistryKeys.PLACED_FEATURE, Identifier.of(NuggetMod.MOD_ID, name)); + private static ResourceKey registerKey(String name) { + return ResourceKey.create(Registries.PLACED_FEATURE, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name)); } - private static void register(Registerable context, RegistryKey key, RegistryEntry> configuration, + private static void register(BootstrapContext context, ResourceKey key, Holder> configuration, List modifiers) { context.register(key, new PlacedFeature(configuration, List.copyOf(modifiers))); } - - private static > void register(Registerable context, RegistryKey key, - RegistryEntry> configuration, - PlacementModifier... modifiers) { - register(context, key, configuration, List.of(modifiers)); - } } \ No newline at end of file diff --git a/common/src/main/resources/assets/nuggetmod/lang/en_us.json b/common/src/main/resources/assets/nuggetmod/lang/en_us.json index cc2495e..aea7279 100644 --- a/common/src/main/resources/assets/nuggetmod/lang/en_us.json +++ b/common/src/main/resources/assets/nuggetmod/lang/en_us.json @@ -38,13 +38,13 @@ "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" + "painting.nuggetmod.nugget_painting.author": "Nugget Mod", + + "entity.nuggetmod.villager.nuggeter": "Nuggeter" } \ No newline at end of file diff --git a/common/src/main/resources/assets/nuggetmod/lang/es_mx.json b/common/src/main/resources/assets/nuggetmod/lang/es_mx.json index decd32e..538553e 100644 --- a/common/src/main/resources/assets/nuggetmod/lang/es_mx.json +++ b/common/src/main/resources/assets/nuggetmod/lang/es_mx.json @@ -34,5 +34,15 @@ "trim_pattern.nuggetmod.nugget": "Adorno de Nuggets", "painting.nuggetmod.nugget_painting.title": "Pintura de Nuggets", - "painting.nuggetmod.nugget_painting.author": "Mod de Nuggets" + "painting.nuggetmod.nugget_painting.author": "Mod de Nuggets", + "item.nuggetmod.nugget_bow": "Arco de Nuggets", + "item.nuggetmod.nugget_crossbow": "Ballesta de Nuggets", + "item.nuggetmod.nugget_trident": "Tridente de Nuggets", + "item.nuggetmod.nugget_fishing_rod": "Caña de Pescar de Nuggets", + "item.nuggetmod.nugget_flint_and_steel": "Pedernal y Acero de Nuggets", + "item.nuggetmod.nugget_shears": "Tijeras de Nuggets", + "item.nuggetmod.nugget_shield": "Escudo de Nuggets", + "item.nuggetmod.nugget_spear": "Lanza de Nuggets", + "entity.nuggetmod.villager.nuggeter": "Nuggeter", + "trim_pattern.nuggetmod.nugget_armor_trim_smithing_template": "§6Adorno de Armadura de Nuggets", } diff --git a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/NuggetMod.java b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/NuggetMod.java index d3de1ce..f183670 100644 --- a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/NuggetMod.java +++ b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/NuggetMod.java @@ -9,15 +9,15 @@ import dev.sillyangel.nuggetmod.block.ModBlocks; import dev.sillyangel.nuggetmod.fabric.world.ModWorldGeneration; import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback; import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; -import net.minecraft.item.ItemGroups; -import net.minecraft.text.Text; -import net.minecraft.village.TradeOffer; -import net.minecraft.village.TradedItem; -import net.minecraft.village.VillagerProfession; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.npc.villager.VillagerProfession; import net.fabricmc.fabric.api.object.builder.v1.trade.TradeOfferHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.util.Identifier; +import net.minecraft.world.item.trading.MerchantOffer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.resources.Identifier; +import net.minecraft.world.item.CreativeModeTabs; +import net.minecraft.world.item.trading.ItemCost; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,20 +43,20 @@ public class NuggetMod implements ModInitializer { // Register tooltip for nugget item using Fabric API ItemTooltipCallback.EVENT.register((itemStack, tooltipContext, tooltipType, list) -> { - if (itemStack.isOf(ModItems.NUGGET.get())) { - list.add(Text.translatable("item.nuggetmod.nugget.tooltip")); + if (itemStack.is(ModItems.NUGGET.get())) { + list.add(Component.translatable("item.nuggetmod.nugget.tooltip")); } }); // Add items to vanilla creative tabs - ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS).register(entries -> { - entries.add(ModItems.NUGGET.get()); - entries.add(ModItems.RAW_NUGGET.get()); + ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.INGREDIENTS).register(entries -> { + entries.accept(ModItems.NUGGET.get()); + entries.accept(ModItems.RAW_NUGGET.get()); }); - ItemGroupEvents.modifyEntriesEvent(ItemGroups.BUILDING_BLOCKS).register(entries -> { - entries.add(ModBlocks.NUGGET_BLOCK.get()); - entries.add(ModBlocks.RAW_NUGGET_BLOCK.get()); + ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.BUILDING_BLOCKS).register(entries -> { + entries.accept(ModBlocks.NUGGET_BLOCK.get()); + entries.accept(ModBlocks.RAW_NUGGET_BLOCK.get()); }); // Register trades AFTER villager registration @@ -69,79 +69,79 @@ public class NuggetMod implements ModInitializer { // Villager trades - Vanilla Farmer TradeOfferHelper.registerVillagerOffers(VillagerProfession.FARMER, 1, factories -> { factories.add((world,entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 3), + new ItemCost(Items.EMERALD, 3), new ItemStack(ModItems.NUGGET.get(), 8), 7, 2, 0.04f)); }); // Custom Nuggeter Villager Trades - Level 1 (Novice) TradeOfferHelper.registerVillagerOffers(ModVillagers.NUGGETER_KEY, 1, factories -> { - factories.add((world,entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 5), + factories.add((world,entity, random) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 5), new ItemStack(ModItems.NUGGET.get(), 20), 4, 7, 0.04f)); - factories.add((world,entity, random) -> new TradeOffer( - new TradedItem(Items.DIAMOND, 2), + factories.add((world,entity, random) -> new MerchantOffer( + new ItemCost(Items.DIAMOND, 2), new ItemStack(ModItems.RAW_NUGGET.get(), 12), 6, 5, 0.05f)); }); // Custom Nuggeter Villager Trades - Level 2 (Apprentice) TradeOfferHelper.registerVillagerOffers(ModVillagers.NUGGETER_KEY, 2, factories -> { - factories.add((world,entity, random) -> new TradeOffer( - new TradedItem(Items.GOLD_INGOT, 8), + factories.add((world,entity, random) -> new MerchantOffer( + new ItemCost(Items.GOLD_INGOT, 8), new ItemStack(ModItems.NUGGET_SWORD.get(), 1), 3, 10, 0.05f)); - factories.add((world,entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 10), + factories.add((world,entity, random) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 10), new ItemStack(ModItems.NUGGET_PICKAXE.get(), 1), 3, 10, 0.05f)); }); // Custom Nuggeter Villager Trades - Level 3 (Journeyman) TradeOfferHelper.registerVillagerOffers(ModVillagers.NUGGETER_KEY, 3, factories -> { - factories.add((world,entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 15), + factories.add((world,entity, random) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 15), new ItemStack(ModItems.NUGGET_HELMET.get(), 1), 2, 15, 0.05f)); - factories.add((world,entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 20), + factories.add((world,entity, random) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 20), new ItemStack(ModItems.NUGGET_CHESTPLATE.get(), 1), 2, 15, 0.05f)); }); // Custom Nuggeter Villager Trades - Level 4 (Expert) TradeOfferHelper.registerVillagerOffers(ModVillagers.NUGGETER_KEY, 4, factories -> { - factories.add((world,entity, random) -> new TradeOffer( - new TradedItem(Items.DIAMOND, 5), + factories.add((world,entity, random) -> new MerchantOffer( + new ItemCost(Items.DIAMOND, 5), new ItemStack(ModItems.NUGGET_LEGGINGS.get(), 1), 2, 20, 0.05f)); - factories.add((world,entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 12), + factories.add((world,entity, random) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 12), new ItemStack(ModItems.NUGGET_BOOTS.get(), 1), 2, 20, 0.05f)); }); // Custom Nuggeter Villager Trades - Level 5 (Master) TradeOfferHelper.registerVillagerOffers(ModVillagers.NUGGETER_KEY, 5, factories -> { - factories.add((world,entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 30), + factories.add((world,entity, random) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 30), new ItemStack(ModItems.NUGGET_HORSE_ARMOR.get(), 1), 1, 30, 0.1f)); - factories.add((world,entity, random) -> new TradeOffer( - new TradedItem(Items.DIAMOND, 10), + factories.add((world,entity, random) -> new MerchantOffer( + new ItemCost(Items.DIAMOND, 10), new ItemStack(ModItems.NUGGET_SMITHING_TEMPLATE.get(), 1), 1, 30, 0.1f)); }); // Wandering Trader Trades TradeOfferHelper.registerWanderingTraderOffers(factories -> { // Generic trades - factories.addAll(Identifier.of(NuggetMod.MOD_ID, "emerald_for_nugget"), (world, entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 12), + factories.addAll(Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "emerald_for_nugget"), (world, entity, random) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 12), new ItemStack(ModItems.NUGGET.get(), 3), 2, 8, 0.2f)); // Rare trades - factories.addAll(Identifier.of(NuggetMod.MOD_ID, "diamond_for_musicdisc"), (world, entity, random) -> new TradeOffer( - new TradedItem(Items.DIAMOND, 8), + factories.addAll(Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "diamond_for_musicdisc"), (world, entity, random) -> new MerchantOffer( + new ItemCost(Items.DIAMOND, 8), new ItemStack(ModItems.NUGGET_MUSIC_DISC.get(), 1), 1, 12, 0.2f)); - factories.addAll(Identifier.of(NuggetMod.MOD_ID, "emerald_for_smithingtemplate"), (world, entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 25), + factories.addAll(Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "emerald_for_smithingtemplate"), (world, entity, random) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 25), new ItemStack(ModItems.NUGGET_SMITHING_TEMPLATE.get(), 1), 1, 12, 0.2f)); }); } diff --git a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/NuggetModDataGenerator.java b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/NuggetModDataGenerator.java index 06d12a8..9ebd994 100644 --- a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/NuggetModDataGenerator.java +++ b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/NuggetModDataGenerator.java @@ -5,10 +5,10 @@ import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; import dev.sillyangel.nuggetmod.fabric.datagen.*; import dev.sillyangel.nuggetmod.trim.ModTrimMaterials; import dev.sillyangel.nuggetmod.trim.ModTrimPatterns; -import net.minecraft.registry.RegistryBuilder; +import net.minecraft.core.RegistrySetBuilder; import dev.sillyangel.nuggetmod.worldgen.ModConfiguredFeatures; import dev.sillyangel.nuggetmod.worldgen.ModPlacedFeatures; -import net.minecraft.registry.RegistryKeys; +import net.minecraft.core.registries.Registries; public class NuggetModDataGenerator implements DataGeneratorEntrypoint { @Override @@ -23,10 +23,10 @@ public class NuggetModDataGenerator implements DataGeneratorEntrypoint { pack.addProvider(ModRegistryDataGenerator::new); } @Override - public void buildRegistry(RegistryBuilder registryBuilder) { - registryBuilder.addRegistry(RegistryKeys.TRIM_MATERIAL, ModTrimMaterials::bootstrap); - registryBuilder.addRegistry(RegistryKeys.TRIM_PATTERN, ModTrimPatterns::bootstrap); - registryBuilder.addRegistry(RegistryKeys.CONFIGURED_FEATURE, ModConfiguredFeatures::bootstrap); - registryBuilder.addRegistry(RegistryKeys.PLACED_FEATURE, ModPlacedFeatures::bootstrap); + public void buildRegistry(RegistrySetBuilder registryBuilder) { + registryBuilder.add(Registries.TRIM_MATERIAL, ModTrimMaterials::bootstrap); + registryBuilder.add(Registries.TRIM_PATTERN, ModTrimPatterns::bootstrap); + registryBuilder.add(Registries.CONFIGURED_FEATURE, ModConfiguredFeatures::bootstrap); + registryBuilder.add(Registries.PLACED_FEATURE, ModPlacedFeatures::bootstrap); } } \ No newline at end of file diff --git a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/client/NuggetModClient.java b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/client/NuggetModClient.java index ba9faa8..c07b73c 100644 --- a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/client/NuggetModClient.java +++ b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/client/NuggetModClient.java @@ -1,9 +1,9 @@ package dev.sillyangel.nuggetmod.fabric.client; import dev.sillyangel.nuggetmod.fabric.particle.ModParticles; +import dev.sillyangel.nuggetmod.particle.NuggetParticle; import net.fabricmc.fabric.api.client.particle.v1.ParticleFactoryRegistry; import net.fabricmc.api.ClientModInitializer; -import dev.sillyangel.nuggetmod.fabric.particle.NuggetParticle; public class NuggetModClient implements ClientModInitializer { @Override diff --git a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/mixin/ExampleMixin.java b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/mixin/ExampleMixin.java index 45b8068..0aa358c 100644 --- a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/mixin/ExampleMixin.java +++ b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/mixin/ExampleMixin.java @@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(MinecraftServer.class) public class ExampleMixin { - @Inject(at = @At("HEAD"), method = "loadWorld") + @Inject(at = @At("HEAD"), method = "loadLevel") private void init(CallbackInfo info) { // This code is injected into the start of MinecraftServer.loadWorld()V } diff --git a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/particle/ModParticles.java b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/particle/ModParticles.java index 536b235..5621581 100644 --- a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/particle/ModParticles.java +++ b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/particle/ModParticles.java @@ -2,17 +2,17 @@ package dev.sillyangel.nuggetmod.fabric.particle; import net.fabricmc.fabric.api.particle.v1.FabricParticleTypes; import dev.sillyangel.nuggetmod.fabric.NuggetMod; -import net.minecraft.particle.SimpleParticleType; -import net.minecraft.registry.Registries; -import net.minecraft.registry.Registry; -import net.minecraft.util.Identifier; +import net.minecraft.core.particles.SimpleParticleType; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.Identifier; public class ModParticles { public static final SimpleParticleType NUGGET_PARTICLE = registerParticle("nugget_particle", FabricParticleTypes.simple()); private static SimpleParticleType registerParticle(String name, SimpleParticleType particleType) { - return Registry.register(Registries.PARTICLE_TYPE, Identifier.of(NuggetMod.MOD_ID, name), particleType); + return Registry.register(BuiltInRegistries.PARTICLE_TYPE, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name), particleType); } public static void registerParticles() { diff --git a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/particle/NuggetParticle.java b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/particle/NuggetParticle.java deleted file mode 100644 index 41259c4..0000000 --- a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/particle/NuggetParticle.java +++ /dev/null @@ -1,42 +0,0 @@ -package dev.sillyangel.nuggetmod.fabric.particle; - -import net.minecraft.client.particle.*; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.particle.SimpleParticleType; -import net.minecraft.util.math.random.Random; -import org.jetbrains.annotations.Nullable; - -public class NuggetParticle extends BillboardParticle { - public NuggetParticle(ClientWorld clientWorld, double x, double y, double z, - SpriteProvider spriteProvider, double xSpeed, double ySpeed, double zSpeed) { - super(clientWorld, x, y, z, xSpeed, ySpeed, zSpeed, spriteProvider.getFirst()); - - this.velocityMultiplier = 0.8f; - - this.maxAge = 40; - - this.red = 1f; - this.green = 1f; - this.blue = 1f; - } - - @Override - protected RenderType getRenderType() { - return RenderType.PARTICLE_ATLAS_TRANSLUCENT; - } - - public static class Factory implements ParticleFactory { - private final SpriteProvider spriteProvider; - - public Factory(SpriteProvider spriteProvider) { - this.spriteProvider = spriteProvider; - } - - @Nullable - @Override - public Particle createParticle(SimpleParticleType parameters, ClientWorld world, double x, double y, double z, - double velocityX, double velocityY, double velocityZ, Random random) { - return new NuggetParticle(world, x, y, z, this.spriteProvider, velocityX, velocityY, velocityZ); - } - } -} \ No newline at end of file diff --git a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/villager/ModVillagers.java b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/villager/ModVillagers.java index 8986c92..e4ff776 100644 --- a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/villager/ModVillagers.java +++ b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/villager/ModVillagers.java @@ -4,39 +4,43 @@ import com.google.common.collect.ImmutableSet; import dev.sillyangel.nuggetmod.block.ModBlocks; import net.fabricmc.fabric.api.object.builder.v1.world.poi.PointOfInterestHelper; import dev.sillyangel.nuggetmod.fabric.NuggetMod; -import net.minecraft.block.Block; -import net.minecraft.registry.Registries; -import net.minecraft.registry.Registry; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.sound.SoundEvents; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; -import net.minecraft.village.VillagerProfession; -import net.minecraft.world.poi.PointOfInterestType; +import net.minecraft.resources.ResourceKey; +import net.minecraft.core.registries.Registries; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.Identifier; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.entity.ai.village.poi.PoiType; +import net.minecraft.world.entity.npc.villager.VillagerProfession; public class ModVillagers { - public static final RegistryKey NUGGETER_POI_KEY = registerPoiKey("nuggeter_poi"); - public static final PointOfInterestType NUGGETER_POI = registerPOI("nuggeter_poi", ModBlocks.NUGGET_BLOCK.get()); + public static final ResourceKey NUGGETER_POI_KEY = registerPoiKey("nuggeter_poi"); + public static final PoiType NUGGETER_POI = registerPOI("nuggeter_poi", ModBlocks.NUGGET_BLOCK.get()); - public static final RegistryKey NUGGETER_KEY = - RegistryKey.of(RegistryKeys.VILLAGER_PROFESSION, Identifier.of(NuggetMod.MOD_ID, "nuggeter")); + public static final ResourceKey NUGGETER_KEY = + ResourceKey.create(Registries.VILLAGER_PROFESSION, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nuggeter")); public static final VillagerProfession NUGGETER = registerProfession("nuggeter", NUGGETER_POI_KEY); - private static VillagerProfession registerProfession(String name, RegistryKey type) { - return Registry.register(Registries.VILLAGER_PROFESSION, Identifier.of(NuggetMod.MOD_ID, name), - new VillagerProfession(Text.literal("Nuggeter"), entry -> entry.matchesKey(type), entry -> entry.matchesKey(type), - ImmutableSet.of(), ImmutableSet.of(), SoundEvents.ENTITY_VILLAGER_WORK_LIBRARIAN)); + private static VillagerProfession registerProfession(String name, ResourceKey type) { + return new VillagerProfession( + Component.translatable("entity.nuggetmod.villager.nuggeter"), + entry -> entry.is(type), + entry -> entry.is(type), + ImmutableSet.of(), + ImmutableSet.of(), + SoundEvents.VILLAGER_WORK_LIBRARIAN + ); } - private static PointOfInterestType registerPOI(String name, Block block) { - return PointOfInterestHelper.register(Identifier.of(NuggetMod.MOD_ID, name), + + private static PoiType registerPOI(String name, Block block) { + return PointOfInterestHelper.register(Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name), 1, 1, block); } - private static RegistryKey registerPoiKey(String name) { - return RegistryKey.of(RegistryKeys.POINT_OF_INTEREST_TYPE, Identifier.of(NuggetMod.MOD_ID, name)); + private static ResourceKey registerPoiKey(String name) { + return ResourceKey.create(Registries.POINT_OF_INTEREST_TYPE, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, name)); } public static void registerVillagers() { diff --git a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/world/ModOreGeneration.java b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/world/ModOreGeneration.java index 53a62a5..d12c36c 100644 --- a/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/world/ModOreGeneration.java +++ b/fabric/src/main/java/dev/sillyangel/nuggetmod/fabric/world/ModOreGeneration.java @@ -3,11 +3,11 @@ package dev.sillyangel.nuggetmod.fabric.world; import net.fabricmc.fabric.api.biome.v1.BiomeModifications; import net.fabricmc.fabric.api.biome.v1.BiomeSelectors; import dev.sillyangel.nuggetmod.worldgen.ModPlacedFeatures; -import net.minecraft.world.gen.GenerationStep; +import net.minecraft.world.level.levelgen.GenerationStep; public class ModOreGeneration { public static void generateOres() { - BiomeModifications.addFeature(BiomeSelectors.foundInOverworld(), GenerationStep.Feature.UNDERGROUND_ORES, + BiomeModifications.addFeature(BiomeSelectors.foundInOverworld(), GenerationStep.Decoration.UNDERGROUND_ORES, ModPlacedFeatures.NUGGET_ORE_PLACED_KEY); // Example for individual Bioms diff --git a/gradle.properties b/gradle.properties index 364d522..858395b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,18 +3,16 @@ org.gradle.jvmargs=-Xmx2G org.gradle.parallel=true # Mod properties -mod_version = 1.3.1 +mod_version = 1.4.0 maven_group = dev.sillyangel.nuggetmod archives_name = nuggetmod enabled_platforms = fabric,neoforge # Minecraft properties minecraft_version = 1.21.11 -yarn_mappings = 1.21.11+build.4 # Dependencies architectury_api_version = 19.0.1 fabric_loader_version = 0.18.4 -fabric_api_version = 0.141.1+1.21.11 +fabric_api_version = 0.140.2+1.21.11 neoforge_version = 21.11.17-beta -yarn_mappings_patch_neoforge_version = 1.21+build.6 diff --git a/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/client/NuggetModClient.java b/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/client/NuggetModClient.java index 411811a..0595a2c 100644 --- a/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/client/NuggetModClient.java +++ b/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/client/NuggetModClient.java @@ -2,7 +2,7 @@ package dev.sillyangel.nuggetmod.neoforge.client; import dev.sillyangel.nuggetmod.NuggetMod; import dev.sillyangel.nuggetmod.neoforge.particle.ModParticles; -import dev.sillyangel.nuggetmod.neoforge.particle.NuggetParticle; +import dev.sillyangel.nuggetmod.particle.NuggetParticle; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; diff --git a/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/event/ModEvents.java b/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/event/ModEvents.java index 004ebbd..3b826c2 100644 --- a/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/event/ModEvents.java +++ b/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/event/ModEvents.java @@ -4,12 +4,12 @@ import dev.sillyangel.nuggetmod.NuggetMod; import dev.sillyangel.nuggetmod.item.ModItems; import dev.sillyangel.nuggetmod.neoforge.villager.ModVillagers; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.village.TradedItem; -import net.minecraft.village.VillagerProfession; -import net.minecraft.village.TradeOffer; -import net.minecraft.village.TradeOffers; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.trading.ItemCost; +import net.minecraft.world.entity.npc.villager.VillagerProfession; +import net.minecraft.world.item.trading.MerchantOffer; +import net.minecraft.world.entity.npc.villager.VillagerTrades; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.event.village.VillagerTradesEvent; @@ -24,81 +24,81 @@ public class ModEvents { public static void addCustomTrades(VillagerTradesEvent event) { // Add trades to vanilla FARMER profession if(event.getType() == VillagerProfession.FARMER) { - Int2ObjectMap> trades = event.getTrades(); + Int2ObjectMap> trades = event.getTrades(); - trades.get(1).add((level, entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 3), + trades.get(1).add((level, entity, random) -> 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> trades = event.getTrades(); + Int2ObjectMap> trades = event.getTrades(); // Level 1 trades - trades.get(1).add((level, entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 5), + trades.get(1).add((level, entity, random) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 5), new ItemStack(ModItems.NUGGET.get(), 20), 4, 7, 0.04f)); - trades.get(1).add((level, entity, random) -> new TradeOffer( - new TradedItem(Items.DIAMOND, 2), + trades.get(1).add((level, entity, random) -> 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((level, entity, random) -> new TradeOffer( - new TradedItem(Items.GOLD_INGOT, 8), + trades.get(2).add((level, entity, random) -> new MerchantOffer( + new ItemCost(Items.GOLD_INGOT, 8), new ItemStack(ModItems.NUGGET_SWORD.get(), 1), 3, 10, 0.05f)); - trades.get(2).add((level, entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 10), + trades.get(2).add((level, entity, random) -> 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((level, entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 15), + trades.get(3).add((level, entity, random) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 15), new ItemStack(ModItems.NUGGET_HELMET.get(), 1), 2, 15, 0.05f)); - trades.get(3).add((level, entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 20), + trades.get(3).add((level, entity, random) -> 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((level, entity, random) -> new TradeOffer( - new TradedItem(Items.DIAMOND, 5), + trades.get(4).add((level, entity, random) -> new MerchantOffer( + new ItemCost(Items.DIAMOND, 5), new ItemStack(ModItems.NUGGET_LEGGINGS.get(), 1), 2, 20, 0.05f)); - trades.get(4).add((level, entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 12), + trades.get(4).add((level, entity, random) -> 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((level, entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 30), + trades.get(5).add((level, entity, random) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 30), new ItemStack(ModItems.NUGGET_HORSE_ARMOR.get(), 1), 1, 30, 0.1f)); - trades.get(5).add((level, entity, random) -> new TradeOffer( - new TradedItem(Items.DIAMOND, 10), + trades.get(5).add((level, entity, random) -> 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 genericTrades = event.getGenericTrades(); - List rareTrades = event.getRareTrades(); + List genericTrades = event.getGenericTrades(); + List rareTrades = event.getRareTrades(); // Add generic wandering trader trades - genericTrades.add((level, entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 12), + genericTrades.add((level, entity, random) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 12), new ItemStack(ModItems.NUGGET.get(), 3), 2, 8, 0.2f)); // Add rare wandering trader trades - rareTrades.add((level, entity, random) -> new TradeOffer( - new TradedItem(Items.DIAMOND, 8), + rareTrades.add((level, entity, random) -> new MerchantOffer( + new ItemCost(Items.DIAMOND, 8), new ItemStack(ModItems.NUGGET_MUSIC_DISC.get(), 1), 1, 12, 0.2f)); - rareTrades.add((level, entity, random) -> new TradeOffer( - new TradedItem(Items.EMERALD, 25), + rareTrades.add((level, entity, random) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 25), new ItemStack(ModItems.NUGGET_SMITHING_TEMPLATE.get(), 1), 1, 12, 0.2f)); } } diff --git a/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/item/ModItemGroups.java b/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/item/ModItemGroups.java index b45dcb2..e90f039 100644 --- a/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/item/ModItemGroups.java +++ b/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/item/ModItemGroups.java @@ -3,55 +3,55 @@ package dev.sillyangel.nuggetmod.neoforge.item; import dev.sillyangel.nuggetmod.NuggetMod; import dev.sillyangel.nuggetmod.block.ModBlocks; import dev.sillyangel.nuggetmod.item.ModItems; -import net.minecraft.item.ItemGroup; -import net.minecraft.item.ItemStack; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; +import net.minecraft.world.item.ItemStack; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.Identifier; +import net.minecraft.world.item.CreativeModeTab; import net.neoforged.bus.api.IEventBus; import net.neoforged.neoforge.registries.DeferredRegister; import java.util.function.Supplier; public class ModItemGroups { - public static final DeferredRegister CREATIVE_MODE_TABS = - DeferredRegister.create(RegistryKeys.ITEM_GROUP, NuggetMod.MOD_ID); + public static final DeferredRegister CREATIVE_MODE_TABS = + DeferredRegister.create(Registries.CREATIVE_MODE_TAB, NuggetMod.MOD_ID); - public static final Supplier NUGGET_BLOCKS_GROUP = CREATIVE_MODE_TABS.register("nugget_blocks", - () -> ItemGroup.create(ItemGroup.Row.TOP, -1) + public static final Supplier NUGGET_BLOCKS_GROUP = CREATIVE_MODE_TABS.register("nugget_blocks", + () -> new CreativeModeTab.Builder(CreativeModeTab.Row.TOP, -1) .icon(() -> new ItemStack(ModBlocks.NUGGET_BLOCK.get())) - .displayName(Text.translatable("creativetab.nuggetmod.nugget_blocks")) - .entries((displayContext, entries) -> { - entries.add(ModBlocks.NUGGET_BLOCK.get()); - entries.add(ModBlocks.RAW_NUGGET_BLOCK.get()); - entries.add(ModBlocks.NUGGET_ORE.get()); - entries.add(ModBlocks.NUGGET_DEEPSLATE_ORE.get()); + .title(Component.translatable("creativetab.nuggetmod.nugget_blocks")) + .displayItems((displayContext, entries) -> { + entries.accept(ModBlocks.NUGGET_BLOCK.get()); + entries.accept(ModBlocks.RAW_NUGGET_BLOCK.get()); + entries.accept(ModBlocks.NUGGET_ORE.get()); + entries.accept(ModBlocks.NUGGET_DEEPSLATE_ORE.get()); }).build()); - public static final Supplier NUGGET_ITEMS_GROUP = CREATIVE_MODE_TABS.register("nugget_items", - () -> ItemGroup.create(ItemGroup.Row.TOP, -1) + public static final Supplier NUGGET_ITEMS_GROUP = CREATIVE_MODE_TABS.register("nugget_items", + () -> new CreativeModeTab.Builder(CreativeModeTab.Row.TOP, -1) .icon(() -> new ItemStack(ModItems.NUGGET.get())) - .withTabsBefore(Identifier.of(NuggetMod.MOD_ID, "nugget_blocks")) - .displayName(Text.translatable("creativetab.nuggetmod.nugget_items")) - .entries((displayContext, entries) -> { - entries.add(ModItems.NUGGET.get()); - entries.add(ModItems.RAW_NUGGET.get()); + .withTabsBefore(Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nugget_blocks")) + .title(Component.translatable("creativetab.nuggetmod.nugget_items")) + .displayItems((displayContext, entries) -> { + entries.accept(ModItems.NUGGET.get()); + entries.accept(ModItems.RAW_NUGGET.get()); - entries.add(ModItems.NUGGET_SWORD.get()); - entries.add(ModItems.NUGGET_PICKAXE.get()); - entries.add(ModItems.NUGGET_AXE.get()); - entries.add(ModItems.NUGGET_SHOVEL.get()); - entries.add(ModItems.NUGGET_HOE.get()); - entries.add(ModItems.NUGGET_SPEAR.get()); + entries.accept(ModItems.NUGGET_SWORD.get()); + entries.accept(ModItems.NUGGET_PICKAXE.get()); + entries.accept(ModItems.NUGGET_AXE.get()); + entries.accept(ModItems.NUGGET_SHOVEL.get()); + entries.accept(ModItems.NUGGET_HOE.get()); + entries.accept(ModItems.NUGGET_SPEAR.get()); - entries.add(ModItems.NUGGET_HELMET.get()); - entries.add(ModItems.NUGGET_CHESTPLATE.get()); - entries.add(ModItems.NUGGET_LEGGINGS.get()); - entries.add(ModItems.NUGGET_BOOTS.get()); + entries.accept(ModItems.NUGGET_HELMET.get()); + entries.accept(ModItems.NUGGET_CHESTPLATE.get()); + entries.accept(ModItems.NUGGET_LEGGINGS.get()); + entries.accept(ModItems.NUGGET_BOOTS.get()); - entries.add(ModItems.NUGGET_HORSE_ARMOR.get()); - entries.add(ModItems.NUGGET_SMITHING_TEMPLATE.get()); - entries.add(ModItems.NUGGET_MUSIC_DISC.get()); + entries.accept(ModItems.NUGGET_HORSE_ARMOR.get()); + entries.accept(ModItems.NUGGET_SMITHING_TEMPLATE.get()); + entries.accept(ModItems.NUGGET_MUSIC_DISC.get()); }).build()); public static void registerItemGroups(IEventBus eventBus) { diff --git a/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/particle/ModParticles.java b/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/particle/ModParticles.java index 863808e..5a28bb0 100644 --- a/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/particle/ModParticles.java +++ b/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/particle/ModParticles.java @@ -1,18 +1,20 @@ package dev.sillyangel.nuggetmod.neoforge.particle; import dev.sillyangel.nuggetmod.NuggetMod; -import net.minecraft.registry.RegistryKeys; +import net.minecraft.core.particles.ParticleType; +import net.minecraft.core.particles.SimpleParticleType; +import net.minecraft.core.registries.Registries; import net.neoforged.bus.api.IEventBus; import net.neoforged.neoforge.registries.DeferredRegister; import java.util.function.Supplier; public class ModParticles { - public static final DeferredRegister> PARTICLE_TYPES = - DeferredRegister.create(RegistryKeys.PARTICLE_TYPE, NuggetMod.MOD_ID); + public static final DeferredRegister> PARTICLE_TYPES = + DeferredRegister.create(Registries.PARTICLE_TYPE, NuggetMod.MOD_ID); - public static final Supplier NUGGET_PARTICLE = - PARTICLE_TYPES.register("nugget_particle", () -> new net.minecraft.particle.SimpleParticleType(false)); + public static final Supplier NUGGET_PARTICLE = + PARTICLE_TYPES.register("nugget_particle", () -> new SimpleParticleType(false)); public static void registerParticles(IEventBus eventBus) { PARTICLE_TYPES.register(eventBus); diff --git a/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/particle/NuggetParticle.java b/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/particle/NuggetParticle.java deleted file mode 100644 index 86381ec..0000000 --- a/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/particle/NuggetParticle.java +++ /dev/null @@ -1,42 +0,0 @@ -package dev.sillyangel.nuggetmod.neoforge.particle; - -import net.minecraft.client.particle.*; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.particle.SimpleParticleType; -import net.minecraft.util.math.random.Random; -import org.jetbrains.annotations.Nullable; - -public class NuggetParticle extends BillboardParticle { - protected NuggetParticle(ClientWorld level, double x, double y, double z, SpriteProvider spriteSet, - double xSpeed, double ySpeed, double zSpeed) { - super(level, x, y, z, xSpeed, ySpeed, zSpeed, spriteSet.getSprite(Random.create())); - - this.velocityMultiplier = 0.8f; - this.maxAge = 80; - - this.red = 1f; - this.green = 1f; - this.blue = 1f; - } - - @Override - protected RenderType getRenderType() { - return RenderType.PARTICLE_ATLAS_TRANSLUCENT; - } - - public static class Factory implements ParticleFactory { - private final SpriteProvider spriteSet; - - public Factory(SpriteProvider spriteSet) { - this.spriteSet = spriteSet; - } - - @Nullable - @Override - public Particle createParticle(SimpleParticleType simpleParticleType, ClientWorld clientLevel, - double pX, double pY, double pZ, double pXSpeed, double pYSpeed, double pZSpeed, Random randomSource) { - return new NuggetParticle(clientLevel, pX, pY, pZ, this.spriteSet, pXSpeed, pYSpeed, pZSpeed); - } - } -} - diff --git a/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/villager/ModVillagers.java b/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/villager/ModVillagers.java index 398e9f4..1481f01 100644 --- a/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/villager/ModVillagers.java +++ b/neoforge/src/main/java/dev/sillyangel/nuggetmod/neoforge/villager/ModVillagers.java @@ -3,36 +3,36 @@ package dev.sillyangel.nuggetmod.neoforge.villager; import com.google.common.collect.ImmutableSet; import dev.sillyangel.nuggetmod.NuggetMod; import dev.sillyangel.nuggetmod.block.ModBlocks; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.sound.SoundEvents; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; -import net.minecraft.village.VillagerProfession; -import net.minecraft.world.poi.PointOfInterestType; +import net.minecraft.resources.ResourceKey; +import net.minecraft.core.registries.Registries; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.Identifier; +import net.minecraft.world.entity.ai.village.poi.PoiType; +import net.minecraft.world.entity.npc.villager.VillagerProfession; import net.neoforged.bus.api.IEventBus; import net.neoforged.neoforge.registries.DeferredRegister; import java.util.function.Supplier; public class ModVillagers { - public static final DeferredRegister POI_TYPES = - DeferredRegister.create(RegistryKeys.POINT_OF_INTEREST_TYPE, NuggetMod.MOD_ID); + public static final DeferredRegister POI_TYPES = + DeferredRegister.create(Registries.POINT_OF_INTEREST_TYPE, NuggetMod.MOD_ID); public static final DeferredRegister VILLAGER_PROFESSIONS = - DeferredRegister.create(RegistryKeys.VILLAGER_PROFESSION, NuggetMod.MOD_ID); + DeferredRegister.create(Registries.VILLAGER_PROFESSION, NuggetMod.MOD_ID); - public static final RegistryKey NUGGETER_KEY = - RegistryKey.of(RegistryKeys.VILLAGER_PROFESSION, Identifier.of(NuggetMod.MOD_ID, "nuggeter")); + public static final ResourceKey NUGGETER_KEY = + ResourceKey.create(Registries.VILLAGER_PROFESSION, Identifier.fromNamespaceAndPath(NuggetMod.MOD_ID, "nuggeter")); - public static final Supplier NUGGETER_POI = POI_TYPES.register("nuggeter_poi", - () -> new PointOfInterestType(ImmutableSet.copyOf(ModBlocks.NUGGET_BLOCK.get().getStateManager().getStates()), 1, 1)); + public static final Supplier NUGGETER_POI = POI_TYPES.register("nuggeter_poi", + () -> new PoiType(ImmutableSet.copyOf(ModBlocks.NUGGET_BLOCK.get().getStateDefinition().getPossibleStates()), 1, 1)); public static final Supplier NUGGETER = VILLAGER_PROFESSIONS.register("nuggeter", - () -> new VillagerProfession(Text.literal("Nuggeter"), + () -> new VillagerProfession(Component.literal("Nuggeter"), holder -> holder.value() == NUGGETER_POI.get(), poiTypeHolder -> poiTypeHolder.value() == NUGGETER_POI.get(), ImmutableSet.of(), ImmutableSet.of(), - SoundEvents.ENTITY_VILLAGER_WORK_LIBRARIAN)); + SoundEvents.VILLAGER_WORK_LIBRARIAN)); public static void registerVillagers(IEventBus eventBus) { POI_TYPES.register(eventBus);