From 76fa00ec8c5097e334692f683f766f751eef18fa Mon Sep 17 00:00:00 2001 From: J-onasJones Date: Mon, 7 Oct 2024 02:06:56 +0200 Subject: [PATCH] major mod registries code refactor --- .../jonasjones/nec/NotEnoughCursedness.java | 10 +- .../{util => }/EvenThickerEndRodBlock.java | 2 +- .../me/jonasjones/nec/block/ModBlocks.java | 97 --------------- .../block/{util => }/ThickEndRodBlock.java | 5 +- .../block/{util => }/ThickerEndRodBlock.java | 2 +- .../me/jonasjones/nec/datagen/NecDataGen.java | 30 +++-- .../java/me/jonasjones/nec/item/ModItems.java | 50 -------- .../me/jonasjones/nec/registry/ModBlocks.java | 111 ++++++++++++++++++ .../me/jonasjones/nec/registry/ModItems.java | 79 +++++++++++++ .../nec/{util => registry}/ModRegistries.java | 40 ++++--- 10 files changed, 231 insertions(+), 195 deletions(-) rename src/main/java/me/jonasjones/nec/block/{util => }/EvenThickerEndRodBlock.java (96%) delete mode 100644 src/main/java/me/jonasjones/nec/block/ModBlocks.java rename src/main/java/me/jonasjones/nec/block/{util => }/ThickEndRodBlock.java (87%) rename src/main/java/me/jonasjones/nec/block/{util => }/ThickerEndRodBlock.java (96%) delete mode 100644 src/main/java/me/jonasjones/nec/item/ModItems.java create mode 100644 src/main/java/me/jonasjones/nec/registry/ModBlocks.java create mode 100644 src/main/java/me/jonasjones/nec/registry/ModItems.java rename src/main/java/me/jonasjones/nec/{util => registry}/ModRegistries.java (79%) diff --git a/src/main/java/me/jonasjones/nec/NotEnoughCursedness.java b/src/main/java/me/jonasjones/nec/NotEnoughCursedness.java index 8815853..748866f 100644 --- a/src/main/java/me/jonasjones/nec/NotEnoughCursedness.java +++ b/src/main/java/me/jonasjones/nec/NotEnoughCursedness.java @@ -1,11 +1,9 @@ package me.jonasjones.nec; -import me.jonasjones.nec.block.ModBlocks; -import me.jonasjones.nec.item.ModItems; -import me.jonasjones.nec.util.ModRegistries; +import me.jonasjones.nec.registry.ModBlocks; +import me.jonasjones.nec.registry.ModItems; +import me.jonasjones.nec.registry.ModRegistries; import net.fabricmc.api.ModInitializer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class NotEnoughCursedness implements ModInitializer { // This logger is used to write text to the console and the log file. @@ -17,8 +15,6 @@ public class NotEnoughCursedness implements ModInitializer { @Override public void onInitialize() { - ModBlocks.register(); - ModItems.register(); ModRegistries.registerModStuffs(); } } diff --git a/src/main/java/me/jonasjones/nec/block/util/EvenThickerEndRodBlock.java b/src/main/java/me/jonasjones/nec/block/EvenThickerEndRodBlock.java similarity index 96% rename from src/main/java/me/jonasjones/nec/block/util/EvenThickerEndRodBlock.java rename to src/main/java/me/jonasjones/nec/block/EvenThickerEndRodBlock.java index f5165f8..f20a06c 100644 --- a/src/main/java/me/jonasjones/nec/block/util/EvenThickerEndRodBlock.java +++ b/src/main/java/me/jonasjones/nec/block/EvenThickerEndRodBlock.java @@ -1,4 +1,4 @@ -package me.jonasjones.nec.block.util; +package me.jonasjones.nec.block; import net.minecraft.block.Block; import net.minecraft.block.BlockState; diff --git a/src/main/java/me/jonasjones/nec/block/ModBlocks.java b/src/main/java/me/jonasjones/nec/block/ModBlocks.java deleted file mode 100644 index 3e3bdf1..0000000 --- a/src/main/java/me/jonasjones/nec/block/ModBlocks.java +++ /dev/null @@ -1,97 +0,0 @@ -package me.jonasjones.nec.block; - -import me.jonasjones.nec.block.util.EvenThickerEndRodBlock; -import me.jonasjones.nec.block.util.ThickEndRodBlock; -import me.jonasjones.nec.block.util.ThickerEndRodBlock; -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.block.*; -import net.minecraft.item.BlockItem; -import net.minecraft.item.Item; -import net.minecraft.registry.Registry; -import net.minecraft.util.Identifier; - -import static me.jonasjones.nec.NotEnoughCursedness.MOD_ID; -import static net.minecraft.registry.Registries.BLOCK; -import static net.minecraft.registry.Registries.ITEM; - -public class ModBlocks { - public static Block GREEN_BIRCH_LOG; - public static Block BLAZE_BLOCK; - public static Block GUN_BLOCK; - public static Block DIAMOND_ORE_ORE; - public static Block DEEPSLATE_DIAMOND_ORE_ORE; - public static Block JAVA_BLOCK; - public static Block POCKET_BLOCK; - public static Block FLETCHING_STAIRS_BLOCK; - public static Block THICK_END_ROD; - public static Block THICKER_END_ROD; - public static Block EVEN_THICKER_END_ROD; - public static BlockItem GUN_BLOCK_ITEM; - public static Block GUN_BLOCK_BLOCK; - public static BlockItem BLAZE_BLOCK_ITEM; - public static Block BLAZE_BLOCK_BLOCK; - public static BlockItem GREEN_BIRCH_LOG_ITEM; - public static Block GREEEN_BIRCH_LOG_BLOCK; - public static BlockItem DIAMOND_ORE_ORE_ITEM; - public static Block DIAMOND_ORE_ORE_BLOCK; - public static BlockItem DEEPSLATE_DIAMOND_ORE_ORE_ITEM; - public static Block DEEPSLATE_DIAMOND_ORE_ORE_BLOCK; - public static BlockItem JAVA_BLOCK_ITEM; - public static Block JAVA_BLOCK_BLOCK; - public static BlockItem POCKET_BLOCK_ITEM; - public static Block POCKET_BLOCK_BLOCK; - public static BlockItem FLETCHING_STAIRS_TIEM; - public static Block FLETCHING_STAIRS_BLOCK_BLOCK; - public static BlockItem THICK_END_ROD_ITEM; - public static Block THICK_END_ROD_BLOCK; - public static BlockItem THICKER_END_ROD_ITEM; - public static Block THICKER_END_ROD_BLOCK; - public static BlockItem EVEN_THICKER_END_ROD_ITEM; - public static Block EVEN_THICKER_END_ROD_BLOCK; - - public static void register() { - BLAZE_BLOCK = new Block(FabricBlockSettings.copyOf(Blocks.DIAMOND_BLOCK).strength(5.0F)); - BLAZE_BLOCK_BLOCK = Registry.register(BLOCK, Identifier.of(MOD_ID, "blaze_block"), BLAZE_BLOCK); - BLAZE_BLOCK_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "blaze_block"), new BlockItem(BLAZE_BLOCK, new Item.Settings())); - - GREEN_BIRCH_LOG = new PillarBlock(FabricBlockSettings.copyOf(Blocks.BIRCH_LOG).strength(4.0f)); - GREEEN_BIRCH_LOG_BLOCK = Registry.register(BLOCK, Identifier.of(MOD_ID, "green_birch_log"), GREEN_BIRCH_LOG); - GREEN_BIRCH_LOG_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "green_birch_log"), new BlockItem(GREEN_BIRCH_LOG, new Item.Settings())); - - GUN_BLOCK = new Block(FabricBlockSettings.copyOf(Blocks.DIAMOND_BLOCK).strength(5.0F)); - GUN_BLOCK_BLOCK = Registry.register(BLOCK, Identifier.of(MOD_ID, "gun_block"), GUN_BLOCK); - GUN_BLOCK_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "gun_block"), new BlockItem(GUN_BLOCK, new Item.Settings())); - - DIAMOND_ORE_ORE = new Block(FabricBlockSettings.copyOf(Blocks.DIAMOND_ORE).strength(5.0F)); - DIAMOND_ORE_ORE_BLOCK = Registry.register(BLOCK, Identifier.of(MOD_ID, "diamond_ore_ore"), DIAMOND_ORE_ORE); - DIAMOND_ORE_ORE_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "diamond_ore_ore"), new BlockItem(DIAMOND_ORE_ORE, new Item.Settings())); - - DEEPSLATE_DIAMOND_ORE_ORE = new Block(FabricBlockSettings.copyOf(Blocks.DEEPSLATE_DIAMOND_ORE).strength(5.0F)); - DEEPSLATE_DIAMOND_ORE_ORE_BLOCK = Registry.register(BLOCK, Identifier.of(MOD_ID, "deepslate_diamond_ore_ore"), DEEPSLATE_DIAMOND_ORE_ORE); - DEEPSLATE_DIAMOND_ORE_ORE_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "deepslate_diamond_ore_ore"), new BlockItem(DEEPSLATE_DIAMOND_ORE_ORE, new Item.Settings())); - - JAVA_BLOCK = new Block(FabricBlockSettings.copyOf(Blocks.DIAMOND_BLOCK).strength(5.0F)); - JAVA_BLOCK_BLOCK = Registry.register(BLOCK, Identifier.of(MOD_ID, "java_block"), JAVA_BLOCK); - JAVA_BLOCK_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "java_block"), new BlockItem(JAVA_BLOCK, new Item.Settings())); - - POCKET_BLOCK = new Block(FabricBlockSettings.copyOf(Blocks.DIAMOND_BLOCK).strength(5.0F)); - POCKET_BLOCK_BLOCK = Registry.register(BLOCK, Identifier.of(MOD_ID, "pocket_block"), POCKET_BLOCK); - POCKET_BLOCK_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "pocket_block"), new BlockItem(POCKET_BLOCK, new Item.Settings())); - - FLETCHING_STAIRS_BLOCK = new StairsBlock(GREEEN_BIRCH_LOG_BLOCK.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS).strength(1.0F)); - FLETCHING_STAIRS_BLOCK_BLOCK = Registry.register(BLOCK, Identifier.of(MOD_ID, "fletching_stairs"), FLETCHING_STAIRS_BLOCK); - FLETCHING_STAIRS_TIEM = Registry.register(ITEM, Identifier.of(MOD_ID, "fletching_stairs"), new BlockItem(FLETCHING_STAIRS_BLOCK, new Item.Settings())); - - THICK_END_ROD = new ThickEndRodBlock(FabricBlockSettings.copyOf(Blocks.END_ROD).strength(0.0F)); - THICK_END_ROD_BLOCK = Registry.register(BLOCK, Identifier.of(MOD_ID, "thick_end_rod"), THICK_END_ROD); - THICK_END_ROD_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "thick_end_rod"), new BlockItem(THICK_END_ROD, new Item.Settings())); - - THICKER_END_ROD = new ThickerEndRodBlock(FabricBlockSettings.copyOf(Blocks.END_ROD).strength(0.0F)); - THICKER_END_ROD_BLOCK = Registry.register(BLOCK, Identifier.of(MOD_ID, "thicker_end_rod"), THICKER_END_ROD); - THICKER_END_ROD_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "thicker_end_rod"), new BlockItem(THICKER_END_ROD, new Item.Settings())); - - EVEN_THICKER_END_ROD = new EvenThickerEndRodBlock(FabricBlockSettings.copyOf(Blocks.END_ROD).strength(0.0F)); - EVEN_THICKER_END_ROD_BLOCK = Registry.register(BLOCK, Identifier.of(MOD_ID, "even_thicker_end_rod"), EVEN_THICKER_END_ROD); - EVEN_THICKER_END_ROD_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "even_thicker_end_rod"), new BlockItem(EVEN_THICKER_END_ROD, new Item.Settings())); - } -} diff --git a/src/main/java/me/jonasjones/nec/block/util/ThickEndRodBlock.java b/src/main/java/me/jonasjones/nec/block/ThickEndRodBlock.java similarity index 87% rename from src/main/java/me/jonasjones/nec/block/util/ThickEndRodBlock.java rename to src/main/java/me/jonasjones/nec/block/ThickEndRodBlock.java index f4abe0c..ea8a4f7 100644 --- a/src/main/java/me/jonasjones/nec/block/util/ThickEndRodBlock.java +++ b/src/main/java/me/jonasjones/nec/block/ThickEndRodBlock.java @@ -1,16 +1,13 @@ -package me.jonasjones.nec.block.util; +package me.jonasjones.nec.block; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.EndRodBlock; import net.minecraft.block.ShapeContext; -import net.minecraft.particle.ParticleTypes; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; -import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; -import net.minecraft.world.World; public class ThickEndRodBlock extends EndRodBlock { public ThickEndRodBlock(Settings settings) { diff --git a/src/main/java/me/jonasjones/nec/block/util/ThickerEndRodBlock.java b/src/main/java/me/jonasjones/nec/block/ThickerEndRodBlock.java similarity index 96% rename from src/main/java/me/jonasjones/nec/block/util/ThickerEndRodBlock.java rename to src/main/java/me/jonasjones/nec/block/ThickerEndRodBlock.java index 26de4b6..1411517 100644 --- a/src/main/java/me/jonasjones/nec/block/util/ThickerEndRodBlock.java +++ b/src/main/java/me/jonasjones/nec/block/ThickerEndRodBlock.java @@ -1,4 +1,4 @@ -package me.jonasjones.nec.block.util; +package me.jonasjones.nec.block; import net.minecraft.block.Block; import net.minecraft.block.BlockState; diff --git a/src/main/java/me/jonasjones/nec/datagen/NecDataGen.java b/src/main/java/me/jonasjones/nec/datagen/NecDataGen.java index a865aa0..660fdc5 100644 --- a/src/main/java/me/jonasjones/nec/datagen/NecDataGen.java +++ b/src/main/java/me/jonasjones/nec/datagen/NecDataGen.java @@ -10,8 +10,6 @@ import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; import net.minecraft.advancement.criterion.InventoryChangedCriterion; -import net.minecraft.advancement.criterion.RecipeCraftedCriterion; -import net.minecraft.advancement.criterion.RecipeUnlockedCriterion; import net.minecraft.advancement.criterion.TickCriterion; import net.minecraft.item.Items; import net.minecraft.registry.RegistryWrapper; @@ -19,8 +17,8 @@ import net.minecraft.text.Text; import net.minecraft.util.Identifier; import static me.jonasjones.nec.NotEnoughCursedness.MOD_ID; -import static me.jonasjones.nec.block.ModBlocks.*; -import static me.jonasjones.nec.item.ModItems.*; +import static me.jonasjones.nec.registry.ModBlocks.*; +import static me.jonasjones.nec.registry.ModItems.*; public class NecDataGen implements DataGeneratorEntrypoint { @Override @@ -83,7 +81,7 @@ public class NecDataGen implements DataGeneratorEntrypoint { AdvancementEntry gotPocketBlockAdvancement = Advancement.Builder.create().parent(rootAdvancement) .display( - POCKET_BLOCK_ITEM, + POCKET_BLOCK.blockItem, Text.translatable("advancements.nec.pocket_block.title"), Text.translatable("advancements.nec.pocket_block.description"), null, // children to parent advancements don't need a background set @@ -92,12 +90,12 @@ public class NecDataGen implements DataGeneratorEntrypoint { true, false ) - .criterion("got_pocket_block", InventoryChangedCriterion.Conditions.items(POCKET_BLOCK_ITEM)) + .criterion("got_pocket_block", InventoryChangedCriterion.Conditions.items(POCKET_BLOCK.blockItem)) .build(consumer, "nec" + "/got_pocket_block"); AdvancementEntry gotJavaBlockAdvancement = Advancement.Builder.create().parent(gotPocketBlockAdvancement) .display( - JAVA_BLOCK, + JAVA_BLOCK.blockItem, Text.translatable("advancements.nec.java_block.title"), Text.translatable("advancements.nec.java_block.description"), null, // children to parent advancements don't need a background set @@ -106,7 +104,7 @@ public class NecDataGen implements DataGeneratorEntrypoint { true, false ) - .criterion("got_java_block", InventoryChangedCriterion.Conditions.items(JAVA_BLOCK)) + .criterion("got_java_block", InventoryChangedCriterion.Conditions.items(JAVA_BLOCK.blockItem)) .build(consumer, "nec" + "/got_java_block"); AdvancementEntry gotBedrockAdvancement = Advancement.Builder.create().parent(gotJavaBlockAdvancement) @@ -125,7 +123,7 @@ public class NecDataGen implements DataGeneratorEntrypoint { AdvancementEntry gotFletchingStairsAdvancement = Advancement.Builder.create().parent(rootAdvancement) .display( - FLETCHING_STAIRS_TIEM, + FLETCHING_STAIRS_BLOCK.blockItem, Text.translatable("advancements.nec.fletching_stairs.title"), Text.translatable("advancements.nec.fletching_stairs.description"), null, // children to parent advancements don't need a background set @@ -134,12 +132,12 @@ public class NecDataGen implements DataGeneratorEntrypoint { true, false ) - .criterion("got_fletching_stairs", InventoryChangedCriterion.Conditions.items(FLETCHING_STAIRS_TIEM)) + .criterion("got_fletching_stairs", InventoryChangedCriterion.Conditions.items(FLETCHING_STAIRS_BLOCK.blockItem)) .build(consumer, "nec" + "/got_fletching_stairs"); AdvancementEntry gotThickEndRodAdvancement = Advancement.Builder.create().parent(rootAdvancement) .display( - THICK_END_ROD_ITEM, + THICK_END_ROD.blockItem, Text.translatable("advancements.nec.thick_end_rod.title"), Text.translatable("advancements.nec.thick_end_rod.description"), null, // children to parent advancements don't need a background set @@ -148,12 +146,12 @@ public class NecDataGen implements DataGeneratorEntrypoint { false, false ) - .criterion("got_thick_end_rod", InventoryChangedCriterion.Conditions.items(THICK_END_ROD_ITEM)) + .criterion("got_thick_end_rod", InventoryChangedCriterion.Conditions.items(THICK_END_ROD.blockItem)) .build(consumer, "nec" + "/got_thick_end_rod"); AdvancementEntry gotThickerEndRodAdvancement = Advancement.Builder.create().parent(gotThickEndRodAdvancement) .display( - THICKER_END_ROD_ITEM, + THICKER_END_ROD.blockItem, Text.translatable("advancements.nec.thicker_end_rod.title"), Text.translatable("advancements.nec.thicker_end_rod.description"), null, // children to parent advancements don't need a background set @@ -162,12 +160,12 @@ public class NecDataGen implements DataGeneratorEntrypoint { false, false ) - .criterion("got_thicker_end_rod", InventoryChangedCriterion.Conditions.items(THICKER_END_ROD_ITEM)) + .criterion("got_thicker_end_rod", InventoryChangedCriterion.Conditions.items(THICKER_END_ROD.blockItem)) .build(consumer, "nec" + "/got_thicker_end_rod"); AdvancementEntry gotEvenThickerEndRodAdvancement = Advancement.Builder.create().parent(gotThickerEndRodAdvancement) .display( - EVEN_THICKER_END_ROD_ITEM, + EVEN_THICKER_END_ROD.blockItem, Text.translatable("advancements.nec.even_thicker_end_rod.title"), Text.translatable("advancements.nec.even_thicker_end_rod.description"), null, // children to parent advancements don't need a background set @@ -176,7 +174,7 @@ public class NecDataGen implements DataGeneratorEntrypoint { false, false ) - .criterion("got_even_thicker_end_rod", InventoryChangedCriterion.Conditions.items(EVEN_THICKER_END_ROD_ITEM)) + .criterion("got_even_thicker_end_rod", InventoryChangedCriterion.Conditions.items(EVEN_THICKER_END_ROD.blockItem)) .build(consumer, "nec" + "/got_even_thicker_end_rod"); AdvancementEntry gotLapisGoldenAppleAdvancement = Advancement.Builder.create().parent(rootAdvancement) diff --git a/src/main/java/me/jonasjones/nec/item/ModItems.java b/src/main/java/me/jonasjones/nec/item/ModItems.java deleted file mode 100644 index a864521..0000000 --- a/src/main/java/me/jonasjones/nec/item/ModItems.java +++ /dev/null @@ -1,50 +0,0 @@ -package me.jonasjones.nec.item; - -import me.jonasjones.nec.item.materials.DirtToolMaterial; -import net.minecraft.component.type.FoodComponent; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.item.Item; -import net.minecraft.item.SwordItem; -import net.minecraft.registry.Registry; -import net.minecraft.util.Identifier; - -import static me.jonasjones.nec.NotEnoughCursedness.MOD_ID; -import static net.minecraft.registry.Registries.ITEM; - -public class ModItems { - public static Item STEEL_ITEM; - public static SwordItem DIRT_SWORD_ITEM; - public static Item NEGATIVE_FLINT_ITEM; - public static Item LETTER_ITEM; - public static Item CHAINMAIL_ITEM; - public static Item AK47_ITEM; - public static Item HELMET_ON_A_STICK_ITEM; - public static Item LAPIS_GOLDEN_APPLE_ITEM; - - public static void register() { - SwordItem DIRT_SWORD = new SwordItem(DirtToolMaterial.INSTANCE, new Item.Settings()); - DIRT_SWORD_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "dirt_sword"), DIRT_SWORD); - - Item STEEL = new Item(new Item.Settings()); - STEEL_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "steel"), STEEL); - - Item NEGATIVE_FLINT = new Item(new Item.Settings()); - NEGATIVE_FLINT_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "negative_flint"), NEGATIVE_FLINT); - - Item LETTER = new Item(new Item.Settings()); - LETTER_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "letter"), LETTER); - - Item CHAINMAIL = new Item(new Item.Settings()); - CHAINMAIL_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "chainmail"), CHAINMAIL); - - Item AK47 = new Item(new Item.Settings()); - AK47_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "ak_47"), AK47); - - Item HELMET_ON_A_STICK = new Item(new Item.Settings()); - HELMET_ON_A_STICK_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "helmet_on_a_stick"), HELMET_ON_A_STICK); - - Item LAPIS_GOLDEN_APPLE = new Item(new Item.Settings().food(new FoodComponent.Builder().saturationModifier(0.3f).statusEffect(new StatusEffectInstance(StatusEffects.REGENERATION, 200, 1), 1.0f).statusEffect(new StatusEffectInstance(StatusEffects.ABSORPTION, 2400), 1.0f).statusEffect(new StatusEffectInstance(StatusEffects.RESISTANCE, 6000), 1.0f).statusEffect(new StatusEffectInstance(StatusEffects.FIRE_RESISTANCE, 6000), 1.0f).statusEffect(new StatusEffectInstance(StatusEffects.ABSORPTION, 2400), 1.0f).statusEffect(new StatusEffectInstance(StatusEffects.SATURATION, 2400), 1.0f).build())); - LAPIS_GOLDEN_APPLE_ITEM = Registry.register(ITEM, Identifier.of(MOD_ID, "lapis_golden_apple"), LAPIS_GOLDEN_APPLE); - } -} diff --git a/src/main/java/me/jonasjones/nec/registry/ModBlocks.java b/src/main/java/me/jonasjones/nec/registry/ModBlocks.java new file mode 100644 index 0000000..2a4b7fc --- /dev/null +++ b/src/main/java/me/jonasjones/nec/registry/ModBlocks.java @@ -0,0 +1,111 @@ +package me.jonasjones.nec.registry; + +import me.jonasjones.nec.block.EvenThickerEndRodBlock; +import me.jonasjones.nec.block.RodBlock; +import me.jonasjones.nec.block.ThickEndRodBlock; +import me.jonasjones.nec.block.ThickerEndRodBlock; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.*; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +import net.minecraft.registry.Registry; +import net.minecraft.util.Identifier; + +import java.util.HashMap; + +import static me.jonasjones.nec.NotEnoughCursedness.MOD_ID; +import static net.minecraft.registry.Registries.BLOCK; +import static net.minecraft.registry.Registries.ITEM; + +public class ModBlocks { + + public static BlockWithItem GREEN_BIRCH_LOG; + public static BlockWithItem BLAZE_BLOCK; + public static BlockWithItem GUN_BLOCK; + public static BlockWithItem DIAMOND_ORE_ORE; + public static BlockWithItem DEEPSLATE_DIAMOND_ORE_ORE; + public static BlockWithItem JAVA_BLOCK; + public static BlockWithItem POCKET_BLOCK; + public static BlockWithItem FLETCHING_STAIRS_BLOCK; + public static BlockWithItem THICK_END_ROD; + public static BlockWithItem THICKER_END_ROD; + public static BlockWithItem EVEN_THICKER_END_ROD; + public static BlockWithItem END_ROD_BLOCK; + + public static class BlockWithItem { + public final Block block; + public final BlockItem blockItem; + + public BlockWithItem(Block block, BlockItem blockItem) { + this.block = block; + this.blockItem = blockItem; + } + } + + public static void register() { + BLAZE_BLOCK = registerBlock( + "blaze_block", + new Block(FabricBlockSettings.copyOf(Blocks.DIAMOND_BLOCK).strength(5.0F)) + ); + + GREEN_BIRCH_LOG = registerBlock( + "green_birch_log", + new PillarBlock(FabricBlockSettings.copyOf(Blocks.BIRCH_LOG).strength(4.0f)) + ); + + GUN_BLOCK = registerBlock( + "gun_block", + new Block(FabricBlockSettings.copyOf(Blocks.DIAMOND_BLOCK).strength(5.0F)) + ); + + DIAMOND_ORE_ORE = registerBlock( + "diamond_ore_ore", + new Block(FabricBlockSettings.copyOf(Blocks.DIAMOND_ORE).strength(5.0F)) + ); + + DEEPSLATE_DIAMOND_ORE_ORE = registerBlock( + "deepslate_diamond_ore_ore", + new Block(FabricBlockSettings.copyOf(Blocks.DEEPSLATE_DIAMOND_ORE).strength(5.0F)) + ); + + JAVA_BLOCK = registerBlock( + "java_block", + new Block(FabricBlockSettings.copyOf(Blocks.DIAMOND_BLOCK).strength(5.0F)) + ); + + POCKET_BLOCK = registerBlock( + "pocket_block", + new Block(FabricBlockSettings.copyOf(Blocks.DIAMOND_BLOCK).strength(5.0F)) + ); + + FLETCHING_STAIRS_BLOCK = registerBlock( + "fletching_stairs", + new StairsBlock(GREEN_BIRCH_LOG.block.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS).strength(1.0F)) + ); + + THICK_END_ROD = registerBlock( + "thick_end_rod", + new ThickEndRodBlock(FabricBlockSettings.copyOf(Blocks.END_ROD).strength(0.0F)) + ); + + THICKER_END_ROD = registerBlock( + "thicker_end_rod", + new ThickerEndRodBlock(FabricBlockSettings.copyOf(Blocks.END_ROD).strength(0.0F)) + ); + + EVEN_THICKER_END_ROD = registerBlock( + "even_thicker_end_rod", + new EvenThickerEndRodBlock(FabricBlockSettings.copyOf(Blocks.END_ROD).strength(0.0F)) + ); + + END_ROD_BLOCK = registerBlock( + + public static BlockWithItem registerBlock(String name, Block block) { + Identifier id = Identifier.of(MOD_ID, name); + + Block registeredBlock = Registry.register(BLOCK, id, block); + BlockItem registeredItem = Registry.register(ITEM, id, new BlockItem(block, new Item.Settings())); + + return new BlockWithItem(registeredBlock, registeredItem); // Return both the block and block item + } +} diff --git a/src/main/java/me/jonasjones/nec/registry/ModItems.java b/src/main/java/me/jonasjones/nec/registry/ModItems.java new file mode 100644 index 0000000..5d6d081 --- /dev/null +++ b/src/main/java/me/jonasjones/nec/registry/ModItems.java @@ -0,0 +1,79 @@ +package me.jonasjones.nec.registry; + +import me.jonasjones.nec.item.materials.DirtToolMaterial; +import net.minecraft.component.type.FoodComponent; +import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.item.Item; +import net.minecraft.item.SwordItem; +import net.minecraft.registry.Registry; +import net.minecraft.util.Identifier; + +import static me.jonasjones.nec.NotEnoughCursedness.MOD_ID; +import static net.minecraft.registry.Registries.ITEM; + +public class ModItems { + public static Item STEEL_ITEM; + public static SwordItem DIRT_SWORD_ITEM; + public static Item NEGATIVE_FLINT_ITEM; + public static Item LETTER_ITEM; + public static Item CHAINMAIL_ITEM; + public static Item AK47_ITEM; + public static Item HELMET_ON_A_STICK_ITEM; + public static Item LAPIS_GOLDEN_APPLE_ITEM; + + public static void register() { + DIRT_SWORD_ITEM = (SwordItem) registerItem( + "dirt_sword", + new SwordItem(DirtToolMaterial.INSTANCE, new Item.Settings()) + ); + + STEEL_ITEM = registerItem( + "steel", + new Item(new Item.Settings()) + ); + + NEGATIVE_FLINT_ITEM = registerItem( + "negative_flint", + new Item(new Item.Settings()) + ); + + LETTER_ITEM = registerItem( + "letter", + new Item(new Item.Settings()) + ); + + CHAINMAIL_ITEM = registerItem( + "chainmail", + new Item(new Item.Settings()) + ); + + AK47_ITEM = registerItem( + "ak_47", + new Item(new Item.Settings()) + ); + + HELMET_ON_A_STICK_ITEM = registerItem( + "helmet_on_a_stick", + new Item(new Item.Settings()) + ); + + LAPIS_GOLDEN_APPLE_ITEM = registerItem( + "lapis_golden_apple", + new Item(new Item.Settings().food(new FoodComponent.Builder() + .saturationModifier(0.3f) + .statusEffect(new StatusEffectInstance(StatusEffects.REGENERATION, 200, 1), 1.0f) + .statusEffect(new StatusEffectInstance(StatusEffects.ABSORPTION, 2400), 1.0f) + .statusEffect(new StatusEffectInstance(StatusEffects.RESISTANCE, 6000), 1.0f) + .statusEffect(new StatusEffectInstance(StatusEffects.FIRE_RESISTANCE, 6000), 1.0f) + .statusEffect(new StatusEffectInstance(StatusEffects.ABSORPTION, 2400), 1.0f) + .statusEffect(new StatusEffectInstance(StatusEffects.SATURATION, 2400), 1.0f) + .build()) + ) + ); + } + + private static Item registerItem(String name, Item item) { + return Registry.register(ITEM, Identifier.of(MOD_ID, name), item); + } +} diff --git a/src/main/java/me/jonasjones/nec/util/ModRegistries.java b/src/main/java/me/jonasjones/nec/registry/ModRegistries.java similarity index 79% rename from src/main/java/me/jonasjones/nec/util/ModRegistries.java rename to src/main/java/me/jonasjones/nec/registry/ModRegistries.java index 98e6d72..ca41333 100644 --- a/src/main/java/me/jonasjones/nec/util/ModRegistries.java +++ b/src/main/java/me/jonasjones/nec/registry/ModRegistries.java @@ -1,7 +1,5 @@ -package me.jonasjones.nec.util; +package me.jonasjones.nec.registry; -import me.jonasjones.nec.block.ModBlocks; -import me.jonasjones.nec.item.ModItems; import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; import net.fabricmc.fabric.api.registry.FlammableBlockRegistry; import net.fabricmc.fabric.api.registry.FuelRegistry; @@ -15,11 +13,14 @@ import net.minecraft.text.Text; import net.minecraft.util.Identifier; import static me.jonasjones.nec.NotEnoughCursedness.MOD_ID; +import static me.jonasjones.nec.registry.ModBlocks.GREEN_BIRCH_LOG; public class ModRegistries { public static ItemGroup NEC_GROUP = null; public static void registerModStuffs() { + ModBlocks.register(); + ModItems.register(); registerStrippables(); registerFlammableBlock(); register_itemGroup(); @@ -27,19 +28,20 @@ public class ModRegistries { } private static void registerStrippables() { - StrippableBlockRegistry.register(ModBlocks.GREEEN_BIRCH_LOG_BLOCK, ModBlocks.GREEEN_BIRCH_LOG_BLOCK); + StrippableBlockRegistry.register(ModBlocks.GREEN_BIRCH_LOG.block, ModBlocks.GREEN_BIRCH_LOG.block); } private static void registerFlammableBlock() { FlammableBlockRegistry instance = FlammableBlockRegistry.getDefaultInstance(); - instance.add(ModBlocks.GREEN_BIRCH_LOG, 5, 5); + instance.add(ModBlocks.GREEN_BIRCH_LOG.block, 5, 5); + instance.add(ModBlocks.FLETCHING_STAIRS_BLOCK.block, 5, 20); } private static void fuelRegistry() { - FuelRegistry.INSTANCE.add(ModBlocks.GREEN_BIRCH_LOG, 300); - FuelRegistry.INSTANCE.add(ModBlocks.FLETCHING_STAIRS_BLOCK, 300); - FuelRegistry.INSTANCE.add(ModBlocks.BLAZE_BLOCK, 1200); + FuelRegistry.INSTANCE.add(GREEN_BIRCH_LOG.blockItem, 300); + FuelRegistry.INSTANCE.add(ModBlocks.FLETCHING_STAIRS_BLOCK.blockItem, 300); + FuelRegistry.INSTANCE.add(ModBlocks.BLAZE_BLOCK.blockItem, 1200); FuelRegistry.INSTANCE.add(Items.CAMPFIRE, Integer.MAX_VALUE); // very broken thus cursed enough } @@ -48,17 +50,17 @@ public class ModRegistries { .icon(() -> new ItemStack(ModItems.DIRT_SWORD_ITEM)) .displayName(Text.translatable("itemgroup.nec.not_enough_cursedness")) .entries(((displayContext, entries) -> { - entries.add(new ItemStack(ModBlocks.GREEN_BIRCH_LOG_ITEM)); - entries.add(new ItemStack(ModBlocks.BLAZE_BLOCK)); - entries.add(new ItemStack(ModBlocks.GUN_BLOCK)); - entries.add(new ItemStack(ModBlocks.DIAMOND_ORE_ORE)); - entries.add(new ItemStack(ModBlocks.DEEPSLATE_DIAMOND_ORE_ORE)); - entries.add(new ItemStack(ModBlocks.JAVA_BLOCK)); - entries.add(new ItemStack(ModBlocks.POCKET_BLOCK)); - entries.add(new ItemStack(ModBlocks.FLETCHING_STAIRS_BLOCK)); - entries.add(new ItemStack(ModBlocks.THICK_END_ROD)); - entries.add(new ItemStack(ModBlocks.THICKER_END_ROD)); - entries.add(new ItemStack(ModBlocks.EVEN_THICKER_END_ROD)); + entries.add(new ItemStack(ModBlocks.GREEN_BIRCH_LOG.blockItem)); + entries.add(new ItemStack(ModBlocks.BLAZE_BLOCK.blockItem)); + entries.add(new ItemStack(ModBlocks.GUN_BLOCK.blockItem)); + entries.add(new ItemStack(ModBlocks.DIAMOND_ORE_ORE.blockItem)); + entries.add(new ItemStack(ModBlocks.DEEPSLATE_DIAMOND_ORE_ORE.blockItem)); + entries.add(new ItemStack(ModBlocks.JAVA_BLOCK.blockItem)); + entries.add(new ItemStack(ModBlocks.POCKET_BLOCK.blockItem)); + entries.add(new ItemStack(ModBlocks.FLETCHING_STAIRS_BLOCK.blockItem)); + entries.add(new ItemStack(ModBlocks.THICK_END_ROD.blockItem)); + entries.add(new ItemStack(ModBlocks.THICKER_END_ROD.blockItem)); + entries.add(new ItemStack(ModBlocks.EVEN_THICKER_END_ROD.blockItem)); entries.add(new ItemStack(ModItems.STEEL_ITEM)); entries.add(new ItemStack(ModItems.NEGATIVE_FLINT_ITEM));