From 3596eb0a0f43353731f2ff25f39102cc8d864cb9 Mon Sep 17 00:00:00 2001 From: cheaterpaul Date: Wed, 7 Feb 2024 20:14:37 +0100 Subject: [PATCH] adapt deferred items and blocks --- .../teamlapen/vampirism/core/ModBlocks.java | 389 +++++++++--------- .../de/teamlapen/vampirism/core/ModItems.java | 355 ++++++++-------- 2 files changed, 373 insertions(+), 371 deletions(-) diff --git a/src/main/java/de/teamlapen/vampirism/core/ModBlocks.java b/src/main/java/de/teamlapen/vampirism/core/ModBlocks.java index ebc30c116..578397732 100755 --- a/src/main/java/de/teamlapen/vampirism/core/ModBlocks.java +++ b/src/main/java/de/teamlapen/vampirism/core/ModBlocks.java @@ -22,6 +22,7 @@ import net.minecraft.world.level.material.MapColor; import net.minecraft.world.level.material.PushReaction; import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredBlock; import net.neoforged.neoforge.registries.DeferredHolder; import net.neoforged.neoforge.registries.DeferredRegister; import org.jetbrains.annotations.NotNull; @@ -38,200 +39,200 @@ */ @SuppressWarnings("unused") public class ModBlocks { - public static final DeferredRegister BLOCKS = DeferredRegister.create(Registries.BLOCK, REFERENCE.MODID); + public static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks(REFERENCE.MODID); - public static final DeferredHolder ALCHEMICAL_CAULDRON = registerWithItem("alchemical_cauldron", () -> new AlchemicalCauldronBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(4f).noOcclusion())); - public static final DeferredHolder ALCHEMICAL_FIRE = BLOCKS.register("alchemical_fire", AlchemicalFireBlock::new); - public static final DeferredHolder ALTAR_INFUSION = registerWithItem("altar_infusion", () -> new AltarInfusionBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE).strength(5).noOcclusion())); - public static final DeferredHolder ALTAR_INSPIRATION = registerWithItem("altar_inspiration", () -> new AltarInspirationBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(2f, 3f).noOcclusion())); - public static final DeferredHolder ALTAR_PILLAR = registerWithItem("altar_pillar", AltarPillarBlock::new); - public static final DeferredHolder ALTAR_TIP = registerWithItem("altar_tip", AltarTipBlock::new); - public static final DeferredHolder BLOOD_CONTAINER = registerWithItem("blood_container", () -> new BloodContainerBlock(BlockBehaviour.Properties.of().strength(1f).isViewBlocking(UtilLib::never).noOcclusion()), new Item.Properties().stacksTo(1)); - public static final DeferredHolder BLOOD_GRINDER = registerWithItem("blood_grinder", () -> new GrinderBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(5).sound(SoundType.METAL).noOcclusion())); - public static final DeferredHolder BLOOD_PEDESTAL = registerWithItem("blood_pedestal", () -> new PedestalBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE).strength(3f).noOcclusion())); - public static final DeferredHolder BLOOD_SIEVE = registerWithItem("blood_sieve", () -> new SieveBlock(BlockBehaviour.Properties.of().mapColor(MapColor.WOOD).ignitedByLava().strength(2.5f).sound(SoundType.WOOD).noOcclusion())); - public static final DeferredHolder ALTAR_CLEANSING = registerWithItem("altar_cleansing", AltarCleansingBlock::new); - public static final DeferredHolder CURSED_EARTH = registerWithItem("cursed_earth", CursedEarthBlock::new); - public static final DeferredHolder FIRE_PLACE = registerWithItem("fire_place", FirePlaceBlock::new); - public static final DeferredHolder GARLIC = BLOCKS.register("garlic", GarlicBlock::new); - public static final DeferredHolder GARLIC_DIFFUSER_IMPROVED = registerWithItem("garlic_diffuser_improved", () -> new GarlicDiffuserBlock(GarlicDiffuserBlock.Type.IMPROVED)); - public static final DeferredHolder GARLIC_DIFFUSER_NORMAL = registerWithItem("garlic_diffuser_normal", () -> new GarlicDiffuserBlock(GarlicDiffuserBlock.Type.NORMAL)); - public static final DeferredHolder GARLIC_DIFFUSER_WEAK = registerWithItem("garlic_diffuser_weak", () -> new GarlicDiffuserBlock(GarlicDiffuserBlock.Type.WEAK)); - public static final DeferredHolder HUNTER_TABLE = registerWithItem("hunter_table", HunterTableBlock::new); - public static final DeferredHolder MED_CHAIR = registerWithItem("med_chair", MedChairBlock::new); - public static final DeferredHolder SUNSCREEN_BEACON = registerWithItem("sunscreen_beacon", () -> new SunscreenBeaconBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(-1, 3600000).noOcclusion()), new Item.Properties().rarity(Rarity.RARE)); - public static final DeferredHolder TENT = BLOCKS.register("tent", TentBlock::new); - public static final DeferredHolder TENT_MAIN = BLOCKS.register("tent_main", TentMainBlock::new); - public static final DeferredHolder TOTEM_BASE = registerWithItem("totem_base", TotemBaseBlock::new); - public static final DeferredHolder TOTEM_TOP = registerWithItem("totem_top", () -> new TotemTopBlock(false, new ResourceLocation("none"))); - public static final DeferredHolder TOTEM_TOP_VAMPIRISM_VAMPIRE = BLOCKS.register("totem_top_vampirism_vampire", () -> new TotemTopBlock(false, VampirePlayer.SERIALIZER_ID)); - public static final DeferredHolder TOTEM_TOP_VAMPIRISM_HUNTER = BLOCKS.register("totem_top_vampirism_hunter", () -> new TotemTopBlock(false, HunterPlayer.SERIALIZER_ID)); - public static final DeferredHolder TOTEM_TOP_CRAFTED = registerWithItem("totem_top_crafted", () -> new TotemTopBlock(true, new ResourceLocation("none"))); - public static final DeferredHolder TOTEM_TOP_VAMPIRISM_VAMPIRE_CRAFTED = BLOCKS.register("totem_top_vampirism_vampire_crafted", () -> new TotemTopBlock(true, VampirePlayer.SERIALIZER_ID)); - public static final DeferredHolder TOTEM_TOP_VAMPIRISM_HUNTER_CRAFTED = BLOCKS.register("totem_top_vampirism_hunter_crafted", () -> new TotemTopBlock(true, HunterPlayer.SERIALIZER_ID)); - public static final DeferredHolder VAMPIRE_ORCHID = registerWithItem("vampire_orchid", () -> new VampirismFlowerBlock(VampirismFlowerBlock.TYPE.ORCHID)); - public static final DeferredHolder POTTED_VAMPIRE_ORCHID = BLOCKS.register("potted_vampire_orchid", () -> potted(new FlowerPotBlock(() -> (FlowerPotBlock) Blocks.FLOWER_POT, VAMPIRE_ORCHID, Block.Properties.of().noCollission().isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).instabreak()), VAMPIRE_ORCHID.getId())); - public static final DeferredHolder WEAPON_TABLE = registerWithItem("weapon_table", WeaponTableBlock::new); - public static final DeferredHolder POTION_TABLE = registerWithItem("potion_table", () -> new PotionTableBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(1f).noOcclusion())); - public static final DeferredHolder DARK_SPRUCE_LEAVES = registerWithItem("dark_spruce_leaves", DarkSpruceLeavesBlock::new); - public static final DeferredHolder CHANDELIER = registerWithItem("chandelier", ChandelierBlock::new); - public static final DeferredHolder CANDELABRA = BLOCKS.register("candelabra", CandelabraBlock::new); - public static final DeferredHolder CANDELABRA_WALL = BLOCKS.register("candelabra_wall", CandelabraWallBlock::new); - public static final DeferredHolder CROSS = registerWithItem("cross", () -> new VampirismSplitBlock(BlockBehaviour.Properties.of().pushReaction(PushReaction.DESTROY).mapColor(MapColor.WOOD).ignitedByLava().strength(2, 3), BlockVoxelshapes.crossBottom, BlockVoxelshapes.crossTop, true).markDecorativeBlock()); - public static final DeferredHolder TOMBSTONE1 = registerWithItem("tombstone1", () -> new VampirismHorizontalBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE).strength(2, 6), BlockVoxelshapes.tomb1).markDecorativeBlock()); - public static final DeferredHolder TOMBSTONE2 = registerWithItem("tombstone2", () -> new VampirismHorizontalBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE).strength(2, 6), BlockVoxelshapes.tomb2).markDecorativeBlock()); - public static final DeferredHolder TOMBSTONE3 = registerWithItem("tombstone3", () -> new VampirismSplitBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE).pushReaction(PushReaction.DESTROY).strength(2, 6), BlockVoxelshapes.tomb3_base, BlockVoxelshapes.tomb3_top, true).markDecorativeBlock()); - public static final DeferredHolder GRAVE_CAGE = registerWithItem("grave_cage", () -> new VampirismHorizontalBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(6, 8).requiresCorrectToolForDrops().sound(SoundType.METAL), BlockVoxelshapes.grave_cage).markDecorativeBlock()); - public static final DeferredHolder CURSED_GRASS = registerWithItem("cursed_grass", () -> new CursedGrass(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_BLACK).randomTicks().strength(0.6F).sound(SoundType.GRASS))); - public static final DeferredHolder CURSED_ROOTS = registerWithItem("cursed_roots", () -> flammable(new BushBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_RED).isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).ignitedByLava().replaceable().noCollission().instabreak().sound(SoundType.GRASS)),60, 100)); - public static final DeferredHolder POTTED_CURSED_ROOTS = BLOCKS.register("potted_cursed_roots", () -> potted(new FlowerPotBlock(() -> (FlowerPotBlock) Blocks.FLOWER_POT, CURSED_ROOTS, Block.Properties.of().noCollission().isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).ignitedByLava().replaceable().instabreak().noOcclusion()), CURSED_ROOTS.getId())); - public static final DeferredHolder DARK_SPRUCE_PLANKS = registerWithItem("dark_spruce_planks", () -> new Block(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).ignitedByLava().mapColor(MapColor.COLOR_GRAY).strength(2.0F, 3.0F).sound(SoundType.WOOD))); - public static final DeferredHolder CURSED_SPRUCE_PLANKS = registerWithItem("cursed_spruce_planks", () -> new Block(BlockBehaviour.Properties.of().ignitedByLava().mapColor(MapColor.CRIMSON_HYPHAE).strength(2.0F, 3.0F).sound(SoundType.WOOD))); - public static final DeferredHolder STRIPPED_DARK_SPRUCE_LOG = registerWithItem("stripped_dark_spruce_log", () -> new LogBlock(MapColor.COLOR_BLACK, MapColor.COLOR_GRAY)); - public static final DeferredHolder STRIPPED_CURSED_SPRUCE_LOG = registerWithItem("stripped_cursed_spruce_log", () -> new LogBlock(MapColor.COLOR_BLACK, MapColor.CRIMSON_HYPHAE)); - public static final DeferredHolder DARK_SPRUCE_LOG = registerWithItem("dark_spruce_log", () -> new StrippableLogBlock(MapColor.COLOR_BLACK, MapColor.COLOR_BLACK, STRIPPED_DARK_SPRUCE_LOG)); - public static final DeferredHolder CURSED_SPRUCE_LOG_CURED = registerWithItem("cursed_spruce_log_cured", () -> new CursedSpruceBlock(STRIPPED_CURSED_SPRUCE_LOG)); - public static final DeferredHolder CURSED_SPRUCE_LOG = registerWithItem("cursed_spruce_log", () -> new CursedSpruceBlock(STRIPPED_CURSED_SPRUCE_LOG, CURSED_SPRUCE_LOG_CURED)); - public static final DeferredHolder DARK_SPRUCE_SAPLING = registerWithItem("dark_spruce_sapling", () -> new DarkSpruceSaplingBlock(ModTreeGrower.DARK_SPRUCE, ModTreeGrower.CURSED_SPRUCE, BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_BLACK).isViewBlocking(UtilLib::never).replaceable().pushReaction(PushReaction.DESTROY).noCollission().randomTicks().instabreak().sound(SoundType.GRASS))); - public static final DeferredHolder CURSED_SPRUCE_SAPLING = registerWithItem("cursed_spruce_sapling", () -> new SaplingBlock(ModTreeGrower.CURSED_SPRUCE, BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_BLACK).isViewBlocking(UtilLib::never).replaceable().pushReaction(PushReaction.DESTROY).noCollission().randomTicks().instabreak().sound(SoundType.GRASS))); - public static final DeferredHolder DIRECT_CURSED_BARK = registerWithItem("direct_cursed_bark", DirectCursedBarkBlock::new); - public static final DeferredHolder DIAGONAL_CURSED_BARK = BLOCKS.register("diagonal_cursed_bark", DiagonalCursedBarkBlock::new); - public static final DeferredHolder DARK_SPRUCE_DOOR = registerWithItem("dark_spruce_door", () -> new DoorBlock(BlockSetType.SPRUCE, BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).ignitedByLava().strength(3.0F).sound(SoundType.WOOD).noOcclusion())); - public static final DeferredHolder CURSED_SPRUCE_DOOR = registerWithItem("cursed_spruce_door", () -> new DoorBlock(BlockSetType.SPRUCE, BlockBehaviour.Properties.of().mapColor(MapColor.CRIMSON_HYPHAE).ignitedByLava().strength(3.0F).sound(SoundType.WOOD).noOcclusion())); - public static final DeferredHolder DARK_SPRUCE_TRAPDOOR = registerWithItem("dark_spruce_trapdoor", () -> new TrapDoorBlock(BlockSetType.SPRUCE, BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).ignitedByLava().strength(3.0F).sound(SoundType.WOOD).noOcclusion().isValidSpawn((p_61031_, p_61032_, p_61033_, p_61034_) -> false))); - public static final DeferredHolder CURSED_SPRUCE_TRAPDOOR = registerWithItem("cursed_spruce_trapdoor", () -> new TrapDoorBlock(BlockSetType.SPRUCE, BlockBehaviour.Properties.of().mapColor(MapColor.CRIMSON_HYPHAE).ignitedByLava().strength(3.0F).sound(SoundType.WOOD).noOcclusion().isValidSpawn((p_61031_, p_61032_, p_61033_, p_61034_) -> false))); - public static final DeferredHolder DARK_SPRUCE_STAIRS = registerWithItem("dark_spruce_stairs", () -> new StairBlock(() -> DARK_SPRUCE_PLANKS.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(DARK_SPRUCE_PLANKS.get()))); - public static final DeferredHolder CURSED_SPRUCE_STAIRS = registerWithItem("cursed_spruce_stairs", () -> new StairBlock(() -> CURSED_SPRUCE_PLANKS.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(CURSED_SPRUCE_PLANKS.get()))); - public static final DeferredHolder STRIPPED_DARK_SPRUCE_WOOD = registerWithItem("stripped_dark_spruce_wood", () -> new LogBlock(MapColor.COLOR_BLACK, MapColor.COLOR_GRAY)); - public static final DeferredHolder STRIPPED_CURSED_SPRUCE_WOOD = registerWithItem("stripped_cursed_spruce_wood", () -> new LogBlock(MapColor.COLOR_BLACK, MapColor.CRIMSON_HYPHAE)); - public static final DeferredHolder DARK_SPRUCE_WOOD = registerWithItem("dark_spruce_wood", () -> new StrippableLogBlock(MapColor.COLOR_BLACK, MapColor.COLOR_BLACK, STRIPPED_DARK_SPRUCE_WOOD)); - public static final DeferredHolder CURSED_SPRUCE_WOOD_CURED = registerWithItem("cursed_spruce_wood_cured", () -> new CursedSpruceBlock(STRIPPED_CURSED_SPRUCE_LOG)); - public static final DeferredHolder CURSED_SPRUCE_WOOD = registerWithItem("cursed_spruce_wood", () -> new CursedSpruceBlock(STRIPPED_CURSED_SPRUCE_WOOD, CURSED_SPRUCE_WOOD_CURED)); - public static final DeferredHolder DARK_SPRUCE_SIGN = BLOCKS.register("dark_spruce_sign", () -> new StandingSignBlock(LogBlock.DARK_SPRUCE, BlockBehaviour.Properties.of().mapColor(DARK_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD))); - public static final DeferredHolder CURSED_SPRUCE_SIGN = BLOCKS.register("cursed_spruce_sign", () -> new StandingSignBlock(LogBlock.CURSED_SPRUCE, BlockBehaviour.Properties.of().mapColor(CURSED_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD))); - public static final DeferredHolder DARK_SPRUCE_WALL_SIGN = BLOCKS.register("dark_spruce_wall_sign", () -> new WallSignBlock(LogBlock.DARK_SPRUCE, BlockBehaviour.Properties.of().mapColor(DARK_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD).lootFrom(DARK_SPRUCE_SIGN))); - public static final DeferredHolder CURSED_SPRUCE_WALL_SIGN = BLOCKS.register("cursed_spruce_wall_sign", () -> new WallSignBlock(LogBlock.CURSED_SPRUCE, BlockBehaviour.Properties.of().mapColor(CURSED_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD).lootFrom(CURSED_SPRUCE_SIGN))); - public static final DeferredHolder DARK_SPRUCE_PRESSURE_PLACE = registerWithItem("dark_spruce_pressure_plate", () -> new PressurePlateBlock(BlockSetType.SPRUCE, BlockBehaviour.Properties.of().mapColor(DARK_SPRUCE_PLANKS.get().defaultMapColor()).ignitedByLava().noCollission().strength(0.5F).sound(SoundType.WOOD))); - public static final DeferredHolder CURSED_SPRUCE_PRESSURE_PLACE = registerWithItem("cursed_spruce_pressure_plate", () -> new PressurePlateBlock(BlockSetType.SPRUCE, BlockBehaviour.Properties.of().mapColor(CURSED_SPRUCE_PLANKS.get().defaultMapColor()).ignitedByLava().noCollission().strength(0.5F).sound(SoundType.WOOD))); - public static final DeferredHolder DARK_SPRUCE_BUTTON = registerWithItem("dark_spruce_button", () -> new ButtonBlock(BlockSetType.SPRUCE, 30, BlockBehaviour.Properties.of().noCollission().isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).ignitedByLava().replaceable().strength(0.5F).sound(SoundType.WOOD))); - public static final DeferredHolder CURSED_SPRUCE_BUTTON = registerWithItem("cursed_spruce_button", () -> new ButtonBlock(BlockSetType.SPRUCE, 30, BlockBehaviour.Properties.of().noCollission().isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).ignitedByLava().replaceable().strength(0.5F).sound(SoundType.WOOD))); - public static final DeferredHolder DARK_SPRUCE_SLAB = registerWithItem("dark_spruce_slab", () -> new SlabBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).ignitedByLava().strength(2.0F, 3.0F).sound(SoundType.WOOD))); - public static final DeferredHolder CURSED_SPRUCE_SLAB = registerWithItem("cursed_spruce_slab", () -> new SlabBlock(BlockBehaviour.Properties.of().mapColor(MapColor.CRIMSON_HYPHAE).ignitedByLava().strength(2.0F, 3.0F).sound(SoundType.WOOD))); - public static final DeferredHolder DARK_SPRUCE_FENCE_GATE = registerWithItem("dark_spruce_fence_gate", () -> new FenceGateBlock(LogBlock.DARK_SPRUCE, BlockBehaviour.Properties.of().mapColor(DARK_SPRUCE_PLANKS.get().defaultMapColor()).ignitedByLava().strength(2.0F, 3.0F).sound(SoundType.WOOD))); - public static final DeferredHolder CURSED_SPRUCE_FENCE_GATE = registerWithItem("cursed_spruce_fence_gate", () -> new FenceGateBlock(LogBlock.CURSED_SPRUCE, BlockBehaviour.Properties.of().mapColor(CURSED_SPRUCE_PLANKS.get().defaultMapColor()).ignitedByLava().strength(2.0F, 3.0F).sound(SoundType.WOOD))); - public static final DeferredHolder DARK_SPRUCE_FENCE = registerWithItem("dark_spruce_fence", () -> new FenceBlock(BlockBehaviour.Properties.of().mapColor(DARK_SPRUCE_PLANKS.get().defaultMapColor()).ignitedByLava().strength(2.0F, 3.0F).sound(SoundType.WOOD))); - public static final DeferredHolder CURSED_SPRUCE_FENCE = registerWithItem("cursed_spruce_fence", () -> new FenceBlock(BlockBehaviour.Properties.of().mapColor(CURSED_SPRUCE_PLANKS.get().defaultMapColor()).ignitedByLava().strength(2.0F, 3.0F).sound(SoundType.WOOD))); - public static final DeferredHolder VAMPIRE_RACK = registerWithItem("vampire_rack", () -> new VampirismHorizontalBlock(BlockBehaviour.Properties.of().ignitedByLava().strength(2, 3), BlockVoxelshapes.vampire_rack).markDecorativeBlock()); - public static final DeferredHolder THRONE = registerWithItem("throne", ThroneBlock::new); - public static final DeferredHolder COFFIN_WHITE = registerWithItem("coffin_white", () -> new CoffinBlock(DyeColor.WHITE)); - public static final DeferredHolder COFFIN_ORANGE = registerWithItem("coffin_orange", () -> new CoffinBlock(DyeColor.ORANGE)); - public static final DeferredHolder COFFIN_MAGENTA = registerWithItem("coffin_magenta", () -> new CoffinBlock(DyeColor.MAGENTA)); - public static final DeferredHolder COFFIN_LIGHT_BLUE = registerWithItem("coffin_light_blue", () -> new CoffinBlock(DyeColor.LIGHT_BLUE)); - public static final DeferredHolder COFFIN_YELLOW = registerWithItem("coffin_yellow", () -> new CoffinBlock(DyeColor.YELLOW)); - public static final DeferredHolder COFFIN_LIME = registerWithItem("coffin_lime", () -> new CoffinBlock(DyeColor.LIME)); - public static final DeferredHolder COFFIN_PINK = registerWithItem("coffin_pink", () -> new CoffinBlock(DyeColor.PINK)); - public static final DeferredHolder COFFIN_GRAY = registerWithItem("coffin_gray", () -> new CoffinBlock(DyeColor.GRAY)); - public static final DeferredHolder COFFIN_LIGHT_GRAY = registerWithItem("coffin_light_gray", () -> new CoffinBlock(DyeColor.LIGHT_GRAY)); - public static final DeferredHolder COFFIN_CYAN = registerWithItem("coffin_cyan", () -> new CoffinBlock(DyeColor.CYAN)); - public static final DeferredHolder COFFIN_PURPLE = registerWithItem("coffin_purple", () -> new CoffinBlock(DyeColor.PURPLE)); - public static final DeferredHolder COFFIN_BLUE = registerWithItem("coffin_blue", () -> new CoffinBlock(DyeColor.BLUE)); - public static final DeferredHolder COFFIN_BROWN = registerWithItem("coffin_brown", () -> new CoffinBlock(DyeColor.BROWN)); - public static final DeferredHolder COFFIN_GREEN = registerWithItem("coffin_green", () -> new CoffinBlock(DyeColor.GREEN)); - public static final DeferredHolder COFFIN_RED = registerWithItem("coffin_red", () -> new CoffinBlock(DyeColor.RED)); - public static final DeferredHolder COFFIN_BLACK = registerWithItem("coffin_black", () -> new CoffinBlock(DyeColor.BLACK)); - public static final DeferredHolder ALCHEMY_TABLE = registerWithItem("alchemy_table", AlchemyTableBlock::new); - public static final DeferredHolder DARK_SPRUCE_HANGING_SIGN = BLOCKS.register("dark_spruce_hanging_sign", () -> new CeilingHangingSignBlock(LogBlock.DARK_SPRUCE, BlockBehaviour.Properties.of().mapColor(DARK_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD))); - public static final DeferredHolder CURSED_SPRUCE_HANGING_SIGN = BLOCKS.register("cursed_spruce_hanging_sign", () -> new CeilingHangingSignBlock(LogBlock.CURSED_SPRUCE, BlockBehaviour.Properties.of().mapColor(CURSED_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD))); - public static final DeferredHolder DARK_SPRUCE_WALL_HANGING_SIGN = BLOCKS.register("dark_spruce_wall_hanging_sign", () -> new WallHangingSignBlock(LogBlock.DARK_SPRUCE, BlockBehaviour.Properties.of().mapColor(DARK_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD).lootFrom(DARK_SPRUCE_HANGING_SIGN))); - public static final DeferredHolder CURSED_SPRUCE_WALL_HANGING_SIGN = BLOCKS.register("cursed_spruce_wall_hanging_sign", () -> new WallHangingSignBlock(LogBlock.CURSED_SPRUCE, BlockBehaviour.Properties.of().mapColor(CURSED_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD).lootFrom(CURSED_SPRUCE_HANGING_SIGN))); - public static final DeferredHolder CURSED_EARTH_PATH = registerWithItem("cursed_earth_path", () -> new CursedEarthPathBlock(BlockBehaviour.Properties.of().mapColor(MapColor.DIRT).strength(0.65F).sound(SoundType.GRASS).isViewBlocking(UtilLib::always).isSuffocating(UtilLib::always))); - public static final DeferredHolder DARK_STONE = registerWithItem("dark_stone", () -> new DarkStoneBlock(BlockBehaviour.Properties.of().mapColor(MapColor.DEEPSLATE).requiresCorrectToolForDrops().strength(2f, 10f).sound(SoundType.STONE))); - public static final DeferredHolder DARK_STONE_STAIRS = registerWithItem("dark_stone_stairs", () -> new DarkStoneStairsBlock(() -> DARK_STONE.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(DARK_STONE.get()))); - public static final DeferredHolder DARK_STONE_SLAB = registerWithItem("dark_stone_slab", () -> new DarkStoneSlabBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE.get()))); - public static final DeferredHolder DARK_STONE_WALL = registerWithItem("dark_stone_wall", () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE.get()).forceSolidOn())); - public static final DeferredHolder DARK_STONE_BRICKS = registerWithItem("dark_stone_bricks", () -> new DarkStoneBlock(BlockBehaviour.Properties.of().mapColor(MapColor.DEEPSLATE).requiresCorrectToolForDrops().strength(2f, 10f).sound(SoundType.STONE))); - public static final DeferredHolder DARK_STONE_BRICK_STAIRS = registerWithItem("dark_stone_brick_stairs", () -> new DarkStoneStairsBlock(() -> DARK_STONE_BRICKS.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(DARK_STONE_BRICKS.get()))); - public static final DeferredHolder DARK_STONE_BRICK_SLAB = registerWithItem("dark_stone_brick_slab", () -> new DarkStoneSlabBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_BRICKS.get()))); - public static final DeferredHolder DARK_STONE_BRICK_WALL = registerWithItem("dark_stone_brick_wall", () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_BRICKS.get()).forceSolidOn())); - public static final DeferredHolder CRACKED_DARK_STONE_BRICKS = registerWithItem("cracked_dark_stone_bricks", () -> new DarkStoneBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_BRICKS.get()))); - public static final DeferredHolder COBBLED_DARK_STONE = registerWithItem("cobbled_dark_stone", () -> new DarkStoneBlock(BlockBehaviour.Properties.of().mapColor(MapColor.DEEPSLATE).strength(2.5f, 10f).requiresCorrectToolForDrops().sound(SoundType.STONE))); - public static final DeferredHolder COBBLED_DARK_STONE_STAIRS = registerWithItem("cobbled_dark_stone_stairs", () -> new DarkStoneStairsBlock(() -> ModBlocks.COBBLED_DARK_STONE.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(COBBLED_DARK_STONE.get()))); - public static final DeferredHolder COBBLED_DARK_STONE_SLAB = registerWithItem("cobbled_dark_stone_slab", () -> new DarkStoneSlabBlock(BlockBehaviour.Properties.ofFullCopy(COBBLED_DARK_STONE.get()))); - public static final DeferredHolder COBBLED_DARK_STONE_WALL = registerWithItem("cobbled_dark_stone_wall", () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(COBBLED_DARK_STONE.get()).forceSolidOn())); - public static final DeferredHolder POLISHED_DARK_STONE = registerWithItem("polished_dark_stone", () -> new DarkStoneBlock(BlockBehaviour.Properties.ofFullCopy(COBBLED_DARK_STONE.get()))); - public static final DeferredHolder POLISHED_DARK_STONE_STAIRS = registerWithItem("polished_dark_stone_stairs", () -> new DarkStoneStairsBlock(() -> POLISHED_DARK_STONE.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(POLISHED_DARK_STONE.get()))); - public static final DeferredHolder POLISHED_DARK_STONE_SLAB = registerWithItem("polished_dark_stone_slab", () -> new DarkStoneSlabBlock(BlockBehaviour.Properties.ofFullCopy(POLISHED_DARK_STONE.get()))); - public static final DeferredHolder POLISHED_DARK_STONE_WALL = registerWithItem("polished_dark_stone_wall", () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(POLISHED_DARK_STONE.get()).forceSolidOn())); - public static final DeferredHolder DARK_STONE_TILES = registerWithItem("dark_stone_tiles", () -> new DarkStoneBlock(BlockBehaviour.Properties.ofFullCopy(COBBLED_DARK_STONE.get()))); - public static final DeferredHolder CRACKED_DARK_STONE_TILES = registerWithItem("cracked_dark_stone_tiles", () -> new DarkStoneBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_TILES.get()))); - public static final DeferredHolder DARK_STONE_TILES_STAIRS = registerWithItem("dark_stone_tiles_stairs", () -> new DarkStoneStairsBlock(() -> ModBlocks.DARK_STONE_TILES.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(DARK_STONE_TILES.get()))); - public static final DeferredHolder DARK_STONE_TILES_SLAB = registerWithItem("dark_stone_tiles_slab", () -> new DarkStoneSlabBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_TILES.get()))); - public static final DeferredHolder DARK_STONE_TILES_WALL = registerWithItem("dark_stone_tiles_wall", () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_TILES.get()).forceSolidOn())); - public static final DeferredHolder CHISELED_DARK_STONE_BRICKS = registerWithItem("chiseled_dark_stone_bricks", () -> new DarkStoneBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_BRICKS.get()))); - public static final DeferredHolder INFESTED_DARK_STONE = registerWithItem("infested_dark_stone", () -> new DarkStoneBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE.get()))); - public static final DeferredHolder BLOODY_DARK_STONE_BRICKS = registerWithItem("bloody_dark_stone_bricks", () -> new DarkStoneBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_BRICKS.get()))); - public static final DeferredHolder BAT_CAGE = registerWithItem("bat_cage", () -> new BatCageBlock(BlockBehaviour.Properties.of().strength(5.0F, 6.0F).sound(SoundType.METAL).noOcclusion())); - public static final DeferredHolder REMAINS = BLOCKS.register("remains", () -> new RemainsBlock(BlockBehaviour.Properties.of().mapColor(MapColor.TERRACOTTA_BROWN).strength(-1, 3600000.0F).sound(SoundType.ROOTED_DIRT).randomTicks().noLootTable(), false, false)); - public static final DeferredHolder VULNERABLE_REMAINS = BLOCKS.register("vulnerable_remains", () -> new RemainsBlock(BlockBehaviour.Properties.of().mapColor(MapColor.TERRACOTTA_BROWN).strength(-1, 3600000.0F).sound(SoundType.ROOTED_DIRT).randomTicks().noLootTable(), true, true)); - public static final DeferredHolder INCAPACITATED_VULNERABLE_REMAINS = BLOCKS.register("incapacitated_vulnerable_remains", () -> new RemainsBlock(BlockBehaviour.Properties.of().mapColor(MapColor.TERRACOTTA_BROWN).strength(-1.0F, 3600000.0F).sound(SoundType.ROOTED_DIRT).randomTicks().noLootTable(), false, true)); - public static final DeferredHolder ACTIVE_VULNERABLE_REMAINS = BLOCKS.register("active_vulnerable_remains", () -> new ActiveVulnerableRemainsBlock(BlockBehaviour.Properties.of().mapColor(MapColor.TERRACOTTA_BROWN).strength(-1, 3600000.0F).randomTicks().sound(SoundType.ROOTED_DIRT).noLootTable())); - public static final DeferredHolder CURSED_HANGING_ROOTS = registerWithItem("cursed_hanging_roots", () -> { + public static final DeferredBlock ALCHEMICAL_CAULDRON = registerWithItem("alchemical_cauldron", () -> new AlchemicalCauldronBlock(Block.Properties.of().mapColor(MapColor.METAL).strength(4f).noOcclusion())); + public static final DeferredBlock ALCHEMICAL_FIRE = BLOCKS.register("alchemical_fire", AlchemicalFireBlock::new); + public static final DeferredBlock ALTAR_INFUSION = registerWithItem("altar_infusion", () -> new AltarInfusionBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE).strength(5).noOcclusion())); + public static final DeferredBlock ALTAR_INSPIRATION = registerWithItem("altar_inspiration", () -> new AltarInspirationBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(2f, 3f).noOcclusion())); + public static final DeferredBlock ALTAR_PILLAR = registerWithItem("altar_pillar", AltarPillarBlock::new); + public static final DeferredBlock ALTAR_TIP = registerWithItem("altar_tip", AltarTipBlock::new); + public static final DeferredBlock BLOOD_CONTAINER = registerWithItem("blood_container", () -> new BloodContainerBlock(BlockBehaviour.Properties.of().strength(1f).isViewBlocking(UtilLib::never).noOcclusion()), new Item.Properties().stacksTo(1)); + public static final DeferredBlock BLOOD_GRINDER = registerWithItem("blood_grinder", () -> new GrinderBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(5).sound(SoundType.METAL).noOcclusion())); + public static final DeferredBlock BLOOD_PEDESTAL = registerWithItem("blood_pedestal", () -> new PedestalBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE).strength(3f).noOcclusion())); + public static final DeferredBlock BLOOD_SIEVE = registerWithItem("blood_sieve", () -> new SieveBlock(BlockBehaviour.Properties.of().mapColor(MapColor.WOOD).ignitedByLava().strength(2.5f).sound(SoundType.WOOD).noOcclusion())); + public static final DeferredBlock ALTAR_CLEANSING = registerWithItem("altar_cleansing", AltarCleansingBlock::new); + public static final DeferredBlock CURSED_EARTH = registerWithItem("cursed_earth", CursedEarthBlock::new); + public static final DeferredBlock FIRE_PLACE = registerWithItem("fire_place", FirePlaceBlock::new); + public static final DeferredBlock GARLIC = BLOCKS.register("garlic", GarlicBlock::new); + public static final DeferredBlock GARLIC_DIFFUSER_IMPROVED = registerWithItem("garlic_diffuser_improved", () -> new GarlicDiffuserBlock(GarlicDiffuserBlock.Type.IMPROVED)); + public static final DeferredBlock GARLIC_DIFFUSER_NORMAL = registerWithItem("garlic_diffuser_normal", () -> new GarlicDiffuserBlock(GarlicDiffuserBlock.Type.NORMAL)); + public static final DeferredBlock GARLIC_DIFFUSER_WEAK = registerWithItem("garlic_diffuser_weak", () -> new GarlicDiffuserBlock(GarlicDiffuserBlock.Type.WEAK)); + public static final DeferredBlock HUNTER_TABLE = registerWithItem("hunter_table", HunterTableBlock::new); + public static final DeferredBlock MED_CHAIR = registerWithItem("med_chair", MedChairBlock::new); + public static final DeferredBlock SUNSCREEN_BEACON = registerWithItem("sunscreen_beacon", () -> new SunscreenBeaconBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(-1, 3600000).noOcclusion()), new Item.Properties().rarity(Rarity.RARE)); + public static final DeferredBlock TENT = BLOCKS.register("tent", TentBlock::new); + public static final DeferredBlock TENT_MAIN = BLOCKS.register("tent_main", TentMainBlock::new); + public static final DeferredBlock TOTEM_BASE = registerWithItem("totem_base", TotemBaseBlock::new); + public static final DeferredBlock TOTEM_TOP = registerWithItem("totem_top", () -> new TotemTopBlock(false, new ResourceLocation("none"))); + public static final DeferredBlock TOTEM_TOP_VAMPIRISM_VAMPIRE = BLOCKS.register("totem_top_vampirism_vampire", () -> new TotemTopBlock(false, VampirePlayer.SERIALIZER_ID)); + public static final DeferredBlock TOTEM_TOP_VAMPIRISM_HUNTER = BLOCKS.register("totem_top_vampirism_hunter", () -> new TotemTopBlock(false, HunterPlayer.SERIALIZER_ID)); + public static final DeferredBlock TOTEM_TOP_CRAFTED = registerWithItem("totem_top_crafted", () -> new TotemTopBlock(true, new ResourceLocation("none"))); + public static final DeferredBlock TOTEM_TOP_VAMPIRISM_VAMPIRE_CRAFTED = BLOCKS.register("totem_top_vampirism_vampire_crafted", () -> new TotemTopBlock(true, VampirePlayer.SERIALIZER_ID)); + public static final DeferredBlock TOTEM_TOP_VAMPIRISM_HUNTER_CRAFTED = BLOCKS.register("totem_top_vampirism_hunter_crafted", () -> new TotemTopBlock(true, HunterPlayer.SERIALIZER_ID)); + public static final DeferredBlock VAMPIRE_ORCHID = registerWithItem("vampire_orchid", () -> new VampirismFlowerBlock(VampirismFlowerBlock.TYPE.ORCHID)); + public static final DeferredBlock POTTED_VAMPIRE_ORCHID = BLOCKS.register("potted_vampire_orchid", () -> potted(new FlowerPotBlock(() -> (FlowerPotBlock) Blocks.FLOWER_POT, VAMPIRE_ORCHID, Block.Properties.of().noCollission().isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).instabreak()), VAMPIRE_ORCHID.getId())); + public static final DeferredBlock WEAPON_TABLE = registerWithItem("weapon_table", WeaponTableBlock::new); + public static final DeferredBlock POTION_TABLE = registerWithItem("potion_table", () -> new PotionTableBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(1f).noOcclusion())); + public static final DeferredBlock DARK_SPRUCE_LEAVES = registerWithItem("dark_spruce_leaves", DarkSpruceLeavesBlock::new); + public static final DeferredBlock CHANDELIER = registerWithItem("chandelier", ChandelierBlock::new); + public static final DeferredBlock CANDELABRA = BLOCKS.register("candelabra", CandelabraBlock::new); + public static final DeferredBlock CANDELABRA_WALL = BLOCKS.register("candelabra_wall", CandelabraWallBlock::new); + public static final DeferredBlock CROSS = registerWithItem("cross", () -> new VampirismSplitBlock(BlockBehaviour.Properties.of().pushReaction(PushReaction.DESTROY).mapColor(MapColor.WOOD).ignitedByLava().strength(2, 3), BlockVoxelshapes.crossBottom, BlockVoxelshapes.crossTop, true).markDecorativeBlock()); + public static final DeferredBlock TOMBSTONE1 = registerWithItem("tombstone1", () -> new VampirismHorizontalBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE).strength(2, 6), BlockVoxelshapes.tomb1).markDecorativeBlock()); + public static final DeferredBlock TOMBSTONE2 = registerWithItem("tombstone2", () -> new VampirismHorizontalBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE).strength(2, 6), BlockVoxelshapes.tomb2).markDecorativeBlock()); + public static final DeferredBlock TOMBSTONE3 = registerWithItem("tombstone3", () -> new VampirismSplitBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE).pushReaction(PushReaction.DESTROY).strength(2, 6), BlockVoxelshapes.tomb3_base, BlockVoxelshapes.tomb3_top, true).markDecorativeBlock()); + public static final DeferredBlock GRAVE_CAGE = registerWithItem("grave_cage", () -> new VampirismHorizontalBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(6, 8).requiresCorrectToolForDrops().sound(SoundType.METAL), BlockVoxelshapes.grave_cage).markDecorativeBlock()); + public static final DeferredBlock CURSED_GRASS = registerWithItem("cursed_grass", () -> new CursedGrass(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_BLACK).randomTicks().strength(0.6F).sound(SoundType.GRASS))); + public static final DeferredBlock CURSED_ROOTS = registerWithItem("cursed_roots", () -> flammable(new BushBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_RED).isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).ignitedByLava().replaceable().noCollission().instabreak().sound(SoundType.GRASS)),60, 100)); + public static final DeferredBlock POTTED_CURSED_ROOTS = BLOCKS.register("potted_cursed_roots", () -> potted(new FlowerPotBlock(() -> (FlowerPotBlock) Blocks.FLOWER_POT, CURSED_ROOTS, Block.Properties.of().noCollission().isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).ignitedByLava().replaceable().instabreak().noOcclusion()), CURSED_ROOTS.getId())); + public static final DeferredBlock DARK_SPRUCE_PLANKS = registerWithItem("dark_spruce_planks", () -> new Block(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).ignitedByLava().mapColor(MapColor.COLOR_GRAY).strength(2.0F, 3.0F).sound(SoundType.WOOD))); + public static final DeferredBlock CURSED_SPRUCE_PLANKS = registerWithItem("cursed_spruce_planks", () -> new Block(BlockBehaviour.Properties.of().ignitedByLava().mapColor(MapColor.CRIMSON_HYPHAE).strength(2.0F, 3.0F).sound(SoundType.WOOD))); + public static final DeferredBlock STRIPPED_DARK_SPRUCE_LOG = registerWithItem("stripped_dark_spruce_log", () -> new LogBlock(MapColor.COLOR_BLACK, MapColor.COLOR_GRAY)); + public static final DeferredBlock STRIPPED_CURSED_SPRUCE_LOG = registerWithItem("stripped_cursed_spruce_log", () -> new LogBlock(MapColor.COLOR_BLACK, MapColor.CRIMSON_HYPHAE)); + public static final DeferredBlock DARK_SPRUCE_LOG = registerWithItem("dark_spruce_log", () -> new StrippableLogBlock(MapColor.COLOR_BLACK, MapColor.COLOR_BLACK, STRIPPED_DARK_SPRUCE_LOG)); + public static final DeferredBlock CURSED_SPRUCE_LOG_CURED = registerWithItem("cursed_spruce_log_cured", () -> new CursedSpruceBlock(STRIPPED_CURSED_SPRUCE_LOG)); + public static final DeferredBlock CURSED_SPRUCE_LOG = registerWithItem("cursed_spruce_log", () -> new CursedSpruceBlock(STRIPPED_CURSED_SPRUCE_LOG, CURSED_SPRUCE_LOG_CURED)); + public static final DeferredBlock DARK_SPRUCE_SAPLING = registerWithItem("dark_spruce_sapling", () -> new DarkSpruceSaplingBlock(ModTreeGrower.DARK_SPRUCE, ModTreeGrower.CURSED_SPRUCE, BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_BLACK).isViewBlocking(UtilLib::never).replaceable().pushReaction(PushReaction.DESTROY).noCollission().randomTicks().instabreak().sound(SoundType.GRASS))); + public static final DeferredBlock CURSED_SPRUCE_SAPLING = registerWithItem("cursed_spruce_sapling", () -> new SaplingBlock(ModTreeGrower.CURSED_SPRUCE, BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_BLACK).isViewBlocking(UtilLib::never).replaceable().pushReaction(PushReaction.DESTROY).noCollission().randomTicks().instabreak().sound(SoundType.GRASS))); + public static final DeferredBlock DIRECT_CURSED_BARK = registerWithItem("direct_cursed_bark", DirectCursedBarkBlock::new); + public static final DeferredBlock DIAGONAL_CURSED_BARK = BLOCKS.register("diagonal_cursed_bark", DiagonalCursedBarkBlock::new); + public static final DeferredBlock DARK_SPRUCE_DOOR = registerWithItem("dark_spruce_door", () -> new DoorBlock(BlockSetType.SPRUCE, BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).ignitedByLava().strength(3.0F).sound(SoundType.WOOD).noOcclusion())); + public static final DeferredBlock CURSED_SPRUCE_DOOR = registerWithItem("cursed_spruce_door", () -> new DoorBlock(BlockSetType.SPRUCE, BlockBehaviour.Properties.of().mapColor(MapColor.CRIMSON_HYPHAE).ignitedByLava().strength(3.0F).sound(SoundType.WOOD).noOcclusion())); + public static final DeferredBlock DARK_SPRUCE_TRAPDOOR = registerWithItem("dark_spruce_trapdoor", () -> new TrapDoorBlock(BlockSetType.SPRUCE, BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).ignitedByLava().strength(3.0F).sound(SoundType.WOOD).noOcclusion().isValidSpawn((p_61031_, p_61032_, p_61033_, p_61034_) -> false))); + public static final DeferredBlock CURSED_SPRUCE_TRAPDOOR = registerWithItem("cursed_spruce_trapdoor", () -> new TrapDoorBlock(BlockSetType.SPRUCE, BlockBehaviour.Properties.of().mapColor(MapColor.CRIMSON_HYPHAE).ignitedByLava().strength(3.0F).sound(SoundType.WOOD).noOcclusion().isValidSpawn((p_61031_, p_61032_, p_61033_, p_61034_) -> false))); + public static final DeferredBlock DARK_SPRUCE_STAIRS = registerWithItem("dark_spruce_stairs", () -> new StairBlock(() -> DARK_SPRUCE_PLANKS.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(DARK_SPRUCE_PLANKS.get()))); + public static final DeferredBlock CURSED_SPRUCE_STAIRS = registerWithItem("cursed_spruce_stairs", () -> new StairBlock(() -> CURSED_SPRUCE_PLANKS.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(CURSED_SPRUCE_PLANKS.get()))); + public static final DeferredBlock STRIPPED_DARK_SPRUCE_WOOD = registerWithItem("stripped_dark_spruce_wood", () -> new LogBlock(MapColor.COLOR_BLACK, MapColor.COLOR_GRAY)); + public static final DeferredBlock STRIPPED_CURSED_SPRUCE_WOOD = registerWithItem("stripped_cursed_spruce_wood", () -> new LogBlock(MapColor.COLOR_BLACK, MapColor.CRIMSON_HYPHAE)); + public static final DeferredBlock DARK_SPRUCE_WOOD = registerWithItem("dark_spruce_wood", () -> new StrippableLogBlock(MapColor.COLOR_BLACK, MapColor.COLOR_BLACK, STRIPPED_DARK_SPRUCE_WOOD)); + public static final DeferredBlock CURSED_SPRUCE_WOOD_CURED = registerWithItem("cursed_spruce_wood_cured", () -> new CursedSpruceBlock(STRIPPED_CURSED_SPRUCE_LOG)); + public static final DeferredBlock CURSED_SPRUCE_WOOD = registerWithItem("cursed_spruce_wood", () -> new CursedSpruceBlock(STRIPPED_CURSED_SPRUCE_WOOD, CURSED_SPRUCE_WOOD_CURED)); + public static final DeferredBlock DARK_SPRUCE_SIGN = BLOCKS.register("dark_spruce_sign", () -> new StandingSignBlock(LogBlock.DARK_SPRUCE, BlockBehaviour.Properties.of().mapColor(DARK_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD))); + public static final DeferredBlock CURSED_SPRUCE_SIGN = BLOCKS.register("cursed_spruce_sign", () -> new StandingSignBlock(LogBlock.CURSED_SPRUCE, BlockBehaviour.Properties.of().mapColor(CURSED_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD))); + public static final DeferredBlock DARK_SPRUCE_WALL_SIGN = BLOCKS.register("dark_spruce_wall_sign", () -> new WallSignBlock(LogBlock.DARK_SPRUCE, BlockBehaviour.Properties.of().mapColor(DARK_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD).lootFrom(DARK_SPRUCE_SIGN))); + public static final DeferredBlock CURSED_SPRUCE_WALL_SIGN = BLOCKS.register("cursed_spruce_wall_sign", () -> new WallSignBlock(LogBlock.CURSED_SPRUCE, BlockBehaviour.Properties.of().mapColor(CURSED_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD).lootFrom(CURSED_SPRUCE_SIGN))); + public static final DeferredBlock DARK_SPRUCE_PRESSURE_PLACE = registerWithItem("dark_spruce_pressure_plate", () -> new PressurePlateBlock(BlockSetType.SPRUCE, BlockBehaviour.Properties.of().mapColor(DARK_SPRUCE_PLANKS.get().defaultMapColor()).ignitedByLava().noCollission().strength(0.5F).sound(SoundType.WOOD))); + public static final DeferredBlock CURSED_SPRUCE_PRESSURE_PLACE = registerWithItem("cursed_spruce_pressure_plate", () -> new PressurePlateBlock(BlockSetType.SPRUCE, BlockBehaviour.Properties.of().mapColor(CURSED_SPRUCE_PLANKS.get().defaultMapColor()).ignitedByLava().noCollission().strength(0.5F).sound(SoundType.WOOD))); + public static final DeferredBlock DARK_SPRUCE_BUTTON = registerWithItem("dark_spruce_button", () -> new ButtonBlock(BlockSetType.SPRUCE, 30, BlockBehaviour.Properties.of().noCollission().isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).ignitedByLava().replaceable().strength(0.5F).sound(SoundType.WOOD))); + public static final DeferredBlock CURSED_SPRUCE_BUTTON = registerWithItem("cursed_spruce_button", () -> new ButtonBlock(BlockSetType.SPRUCE, 30, BlockBehaviour.Properties.of().noCollission().isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).ignitedByLava().replaceable().strength(0.5F).sound(SoundType.WOOD))); + public static final DeferredBlock DARK_SPRUCE_SLAB = registerWithItem("dark_spruce_slab", () -> new SlabBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).ignitedByLava().strength(2.0F, 3.0F).sound(SoundType.WOOD))); + public static final DeferredBlock CURSED_SPRUCE_SLAB = registerWithItem("cursed_spruce_slab", () -> new SlabBlock(BlockBehaviour.Properties.of().mapColor(MapColor.CRIMSON_HYPHAE).ignitedByLava().strength(2.0F, 3.0F).sound(SoundType.WOOD))); + public static final DeferredBlock DARK_SPRUCE_FENCE_GATE = registerWithItem("dark_spruce_fence_gate", () -> new FenceGateBlock(LogBlock.DARK_SPRUCE, BlockBehaviour.Properties.of().mapColor(DARK_SPRUCE_PLANKS.get().defaultMapColor()).ignitedByLava().strength(2.0F, 3.0F).sound(SoundType.WOOD))); + public static final DeferredBlock CURSED_SPRUCE_FENCE_GATE = registerWithItem("cursed_spruce_fence_gate", () -> new FenceGateBlock(LogBlock.CURSED_SPRUCE, BlockBehaviour.Properties.of().mapColor(CURSED_SPRUCE_PLANKS.get().defaultMapColor()).ignitedByLava().strength(2.0F, 3.0F).sound(SoundType.WOOD))); + public static final DeferredBlock DARK_SPRUCE_FENCE = registerWithItem("dark_spruce_fence", () -> new FenceBlock(BlockBehaviour.Properties.of().mapColor(DARK_SPRUCE_PLANKS.get().defaultMapColor()).ignitedByLava().strength(2.0F, 3.0F).sound(SoundType.WOOD))); + public static final DeferredBlock CURSED_SPRUCE_FENCE = registerWithItem("cursed_spruce_fence", () -> new FenceBlock(BlockBehaviour.Properties.of().mapColor(CURSED_SPRUCE_PLANKS.get().defaultMapColor()).ignitedByLava().strength(2.0F, 3.0F).sound(SoundType.WOOD))); + public static final DeferredBlock VAMPIRE_RACK = registerWithItem("vampire_rack", () -> new VampirismHorizontalBlock(BlockBehaviour.Properties.of().ignitedByLava().strength(2, 3), BlockVoxelshapes.vampire_rack).markDecorativeBlock()); + public static final DeferredBlock THRONE = registerWithItem("throne", ThroneBlock::new); + public static final DeferredBlock COFFIN_WHITE = registerWithItem("coffin_white", () -> new CoffinBlock(DyeColor.WHITE)); + public static final DeferredBlock COFFIN_ORANGE = registerWithItem("coffin_orange", () -> new CoffinBlock(DyeColor.ORANGE)); + public static final DeferredBlock COFFIN_MAGENTA = registerWithItem("coffin_magenta", () -> new CoffinBlock(DyeColor.MAGENTA)); + public static final DeferredBlock COFFIN_LIGHT_BLUE = registerWithItem("coffin_light_blue", () -> new CoffinBlock(DyeColor.LIGHT_BLUE)); + public static final DeferredBlock COFFIN_YELLOW = registerWithItem("coffin_yellow", () -> new CoffinBlock(DyeColor.YELLOW)); + public static final DeferredBlock COFFIN_LIME = registerWithItem("coffin_lime", () -> new CoffinBlock(DyeColor.LIME)); + public static final DeferredBlock COFFIN_PINK = registerWithItem("coffin_pink", () -> new CoffinBlock(DyeColor.PINK)); + public static final DeferredBlock COFFIN_GRAY = registerWithItem("coffin_gray", () -> new CoffinBlock(DyeColor.GRAY)); + public static final DeferredBlock COFFIN_LIGHT_GRAY = registerWithItem("coffin_light_gray", () -> new CoffinBlock(DyeColor.LIGHT_GRAY)); + public static final DeferredBlock COFFIN_CYAN = registerWithItem("coffin_cyan", () -> new CoffinBlock(DyeColor.CYAN)); + public static final DeferredBlock COFFIN_PURPLE = registerWithItem("coffin_purple", () -> new CoffinBlock(DyeColor.PURPLE)); + public static final DeferredBlock COFFIN_BLUE = registerWithItem("coffin_blue", () -> new CoffinBlock(DyeColor.BLUE)); + public static final DeferredBlock COFFIN_BROWN = registerWithItem("coffin_brown", () -> new CoffinBlock(DyeColor.BROWN)); + public static final DeferredBlock COFFIN_GREEN = registerWithItem("coffin_green", () -> new CoffinBlock(DyeColor.GREEN)); + public static final DeferredBlock COFFIN_RED = registerWithItem("coffin_red", () -> new CoffinBlock(DyeColor.RED)); + public static final DeferredBlock COFFIN_BLACK = registerWithItem("coffin_black", () -> new CoffinBlock(DyeColor.BLACK)); + public static final DeferredBlock ALCHEMY_TABLE = registerWithItem("alchemy_table", AlchemyTableBlock::new); + public static final DeferredBlock DARK_SPRUCE_HANGING_SIGN = BLOCKS.register("dark_spruce_hanging_sign", () -> new CeilingHangingSignBlock(LogBlock.DARK_SPRUCE, BlockBehaviour.Properties.of().mapColor(DARK_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD))); + public static final DeferredBlock CURSED_SPRUCE_HANGING_SIGN = BLOCKS.register("cursed_spruce_hanging_sign", () -> new CeilingHangingSignBlock(LogBlock.CURSED_SPRUCE, BlockBehaviour.Properties.of().mapColor(CURSED_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD))); + public static final DeferredBlock DARK_SPRUCE_WALL_HANGING_SIGN = BLOCKS.register("dark_spruce_wall_hanging_sign", () -> new WallHangingSignBlock(LogBlock.DARK_SPRUCE, BlockBehaviour.Properties.of().mapColor(DARK_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD).lootFrom(DARK_SPRUCE_HANGING_SIGN))); + public static final DeferredBlock CURSED_SPRUCE_WALL_HANGING_SIGN = BLOCKS.register("cursed_spruce_wall_hanging_sign", () -> new WallHangingSignBlock(LogBlock.CURSED_SPRUCE, BlockBehaviour.Properties.of().mapColor(CURSED_SPRUCE_LOG.get().defaultMapColor()).ignitedByLava().noCollission().strength(1.0F).sound(SoundType.WOOD).lootFrom(CURSED_SPRUCE_HANGING_SIGN))); + public static final DeferredBlock CURSED_EARTH_PATH = registerWithItem("cursed_earth_path", () -> new CursedEarthPathBlock(BlockBehaviour.Properties.of().mapColor(MapColor.DIRT).strength(0.65F).sound(SoundType.GRASS).isViewBlocking(UtilLib::always).isSuffocating(UtilLib::always))); + public static final DeferredBlock DARK_STONE = registerWithItem("dark_stone", () -> new DarkStoneBlock(BlockBehaviour.Properties.of().mapColor(MapColor.DEEPSLATE).requiresCorrectToolForDrops().strength(2f, 10f).sound(SoundType.STONE))); + public static final DeferredBlock DARK_STONE_STAIRS = registerWithItem("dark_stone_stairs", () -> new DarkStoneStairsBlock(() -> DARK_STONE.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(DARK_STONE.get()))); + public static final DeferredBlock DARK_STONE_SLAB = registerWithItem("dark_stone_slab", () -> new DarkStoneSlabBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE.get()))); + public static final DeferredBlock DARK_STONE_WALL = registerWithItem("dark_stone_wall", () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE.get()).forceSolidOn())); + public static final DeferredBlock DARK_STONE_BRICKS = registerWithItem("dark_stone_bricks", () -> new DarkStoneBlock(BlockBehaviour.Properties.of().mapColor(MapColor.DEEPSLATE).requiresCorrectToolForDrops().strength(2f, 10f).sound(SoundType.STONE))); + public static final DeferredBlock DARK_STONE_BRICK_STAIRS = registerWithItem("dark_stone_brick_stairs", () -> new DarkStoneStairsBlock(() -> DARK_STONE_BRICKS.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(DARK_STONE_BRICKS.get()))); + public static final DeferredBlock DARK_STONE_BRICK_SLAB = registerWithItem("dark_stone_brick_slab", () -> new DarkStoneSlabBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_BRICKS.get()))); + public static final DeferredBlock DARK_STONE_BRICK_WALL = registerWithItem("dark_stone_brick_wall", () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_BRICKS.get()).forceSolidOn())); + public static final DeferredBlock CRACKED_DARK_STONE_BRICKS = registerWithItem("cracked_dark_stone_bricks", () -> new DarkStoneBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_BRICKS.get()))); + public static final DeferredBlock COBBLED_DARK_STONE = registerWithItem("cobbled_dark_stone", () -> new DarkStoneBlock(BlockBehaviour.Properties.of().mapColor(MapColor.DEEPSLATE).strength(2.5f, 10f).requiresCorrectToolForDrops().sound(SoundType.STONE))); + public static final DeferredBlock COBBLED_DARK_STONE_STAIRS = registerWithItem("cobbled_dark_stone_stairs", () -> new DarkStoneStairsBlock(() -> ModBlocks.COBBLED_DARK_STONE.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(COBBLED_DARK_STONE.get()))); + public static final DeferredBlock COBBLED_DARK_STONE_SLAB = registerWithItem("cobbled_dark_stone_slab", () -> new DarkStoneSlabBlock(BlockBehaviour.Properties.ofFullCopy(COBBLED_DARK_STONE.get()))); + public static final DeferredBlock COBBLED_DARK_STONE_WALL = registerWithItem("cobbled_dark_stone_wall", () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(COBBLED_DARK_STONE.get()).forceSolidOn())); + public static final DeferredBlock POLISHED_DARK_STONE = registerWithItem("polished_dark_stone", () -> new DarkStoneBlock(BlockBehaviour.Properties.ofFullCopy(COBBLED_DARK_STONE.get()))); + public static final DeferredBlock POLISHED_DARK_STONE_STAIRS = registerWithItem("polished_dark_stone_stairs", () -> new DarkStoneStairsBlock(() -> POLISHED_DARK_STONE.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(POLISHED_DARK_STONE.get()))); + public static final DeferredBlock POLISHED_DARK_STONE_SLAB = registerWithItem("polished_dark_stone_slab", () -> new DarkStoneSlabBlock(BlockBehaviour.Properties.ofFullCopy(POLISHED_DARK_STONE.get()))); + public static final DeferredBlock POLISHED_DARK_STONE_WALL = registerWithItem("polished_dark_stone_wall", () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(POLISHED_DARK_STONE.get()).forceSolidOn())); + public static final DeferredBlock DARK_STONE_TILES = registerWithItem("dark_stone_tiles", () -> new DarkStoneBlock(BlockBehaviour.Properties.ofFullCopy(COBBLED_DARK_STONE.get()))); + public static final DeferredBlock CRACKED_DARK_STONE_TILES = registerWithItem("cracked_dark_stone_tiles", () -> new DarkStoneBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_TILES.get()))); + public static final DeferredBlock DARK_STONE_TILES_STAIRS = registerWithItem("dark_stone_tiles_stairs", () -> new DarkStoneStairsBlock(() -> ModBlocks.DARK_STONE_TILES.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(DARK_STONE_TILES.get()))); + public static final DeferredBlock DARK_STONE_TILES_SLAB = registerWithItem("dark_stone_tiles_slab", () -> new DarkStoneSlabBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_TILES.get()))); + public static final DeferredBlock DARK_STONE_TILES_WALL = registerWithItem("dark_stone_tiles_wall", () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_TILES.get()).forceSolidOn())); + public static final DeferredBlock CHISELED_DARK_STONE_BRICKS = registerWithItem("chiseled_dark_stone_bricks", () -> new DarkStoneBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_BRICKS.get()))); + public static final DeferredBlock INFESTED_DARK_STONE = registerWithItem("infested_dark_stone", () -> new DarkStoneBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE.get()))); + public static final DeferredBlock BLOODY_DARK_STONE_BRICKS = registerWithItem("bloody_dark_stone_bricks", () -> new DarkStoneBlock(BlockBehaviour.Properties.ofFullCopy(DARK_STONE_BRICKS.get()))); + public static final DeferredBlock BAT_CAGE = registerWithItem("bat_cage", () -> new BatCageBlock(BlockBehaviour.Properties.of().strength(5.0F, 6.0F).sound(SoundType.METAL).noOcclusion())); + public static final DeferredBlock REMAINS = BLOCKS.register("remains", () -> new RemainsBlock(BlockBehaviour.Properties.of().mapColor(MapColor.TERRACOTTA_BROWN).strength(-1, 3600000.0F).sound(SoundType.ROOTED_DIRT).randomTicks().noLootTable(), false, false)); + public static final DeferredBlock VULNERABLE_REMAINS = BLOCKS.register("vulnerable_remains", () -> new RemainsBlock(BlockBehaviour.Properties.of().mapColor(MapColor.TERRACOTTA_BROWN).strength(-1, 3600000.0F).sound(SoundType.ROOTED_DIRT).randomTicks().noLootTable(), true, true)); + public static final DeferredBlock INCAPACITATED_VULNERABLE_REMAINS = BLOCKS.register("incapacitated_vulnerable_remains", () -> new RemainsBlock(BlockBehaviour.Properties.of().mapColor(MapColor.TERRACOTTA_BROWN).strength(-1.0F, 3600000.0F).sound(SoundType.ROOTED_DIRT).randomTicks().noLootTable(), false, true)); + public static final DeferredBlock ACTIVE_VULNERABLE_REMAINS = BLOCKS.register("active_vulnerable_remains", () -> new ActiveVulnerableRemainsBlock(BlockBehaviour.Properties.of().mapColor(MapColor.TERRACOTTA_BROWN).strength(-1, 3600000.0F).randomTicks().sound(SoundType.ROOTED_DIRT).noLootTable())); + public static final DeferredBlock CURSED_HANGING_ROOTS = registerWithItem("cursed_hanging_roots", () -> { var block = new HangingRootsBlock(BlockBehaviour.Properties.of().mapColor(MapColor.TERRACOTTA_BROWN).noCollission().instabreak().sound(SoundType.GRASS).offsetType(BlockBehaviour.OffsetType.XZ).ignitedByLava().pushReaction(PushReaction.DESTROY)); ((FireBlock) Blocks.FIRE).setFlammable(block, 30, 60); return block; }); - public static final DeferredHolder MOTHER = BLOCKS.register("mother", MotherBlock::new); - public static final DeferredHolder MOTHER_TROPHY = registerWithItem("mother_trophy", () -> new MotherTrophyBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).strength(3, 9).lightLevel(s -> 1).noOcclusion()), block -> new MotherTrophyItem(block, new Item.Properties().rarity(Rarity.EPIC).stacksTo(1))); - public static final DeferredHolder FOG_DIFFUSER = registerWithItem("fog_diffuser", () -> new FogDiffuserBlock(BlockBehaviour.Properties.of().noOcclusion().mapColor(MapColor.STONE).strength(40.0F, 1200.0F).sound(SoundType.STONE))); - public static final DeferredHolder POTTED_DARK_SPRUCE_SAPLING = BLOCKS.register("potted_dark_spruce_sapling", () -> potted(new FlowerPotBlock(() -> (FlowerPotBlock) Blocks.FLOWER_POT, DARK_SPRUCE_SAPLING, Block.Properties.of().noCollission().isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).instabreak()), DARK_SPRUCE_SAPLING.getId())); - public static final DeferredHolder POTTED_CURSED_SPRUCE_SAPLING = BLOCKS.register("potted_cursed_spruce_sapling", () -> potted(new FlowerPotBlock(() -> (FlowerPotBlock) Blocks.FLOWER_POT, CURSED_SPRUCE_SAPLING, Block.Properties.of().noCollission().isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).instabreak()), CURSED_SPRUCE_SAPLING.getId())); - public static final DeferredHolder BLOOD_INFUSED_IRON_BLOCK = registerWithItem("blood_infused_iron_block", () -> new Block(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).requiresCorrectToolForDrops().strength(5.0F, 6.0F).sound(SoundType.METAL))); - public static final DeferredHolder BLOOD_INFUSED_ENHANCED_IRON_BLOCK = registerWithItem("blood_infused_enhanced_iron_block", () -> new Block(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).requiresCorrectToolForDrops().strength(5.0F, 6.0F).sound(SoundType.METAL))); - public static final DeferredHolder VAMPIRE_BEACON = registerWithItem("vampire_beacon", () -> new VampireBeaconBlock(BlockBehaviour.Properties.of().mapColor(MapColor.DIAMOND).instrument(NoteBlockInstrument.HAT).strength(3.0F).lightLevel((p_50828_) -> 15).noOcclusion().isRedstoneConductor(UtilLib::never)), new Item.Properties().rarity(Rarity.RARE)); - public static final DeferredHolder PURPLE_STONE_BRICKS = registerWithItem("purple_stone_bricks", () -> new Block(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_PURPLE).requiresCorrectToolForDrops().strength(2f, 10f).sound(SoundType.STONE))); - public static final DeferredHolder PURPLE_STONE_BRICK_STAIRS = registerWithItem("purple_stone_brick_stairs", () -> new StairBlock(() -> PURPLE_STONE_BRICKS.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(PURPLE_STONE_BRICKS.get()))); - public static final DeferredHolder PURPLE_STONE_BRICK_SLAB = registerWithItem("purple_stone_brick_slab", () -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(PURPLE_STONE_BRICKS.get()))); - public static final DeferredHolder PURPLE_STONE_BRICK_WALL = registerWithItem("purple_stone_brick_wall", () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(PURPLE_STONE_BRICKS.get()).forceSolidOn())); - public static final DeferredHolder PURPLE_STONE_TILES = registerWithItem("purple_stone_tiles", () -> new Block(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_PURPLE).requiresCorrectToolForDrops().strength(2f, 10f).sound(SoundType.STONE))); - public static final DeferredHolder PURPLE_STONE_TILES_STAIRS = registerWithItem("purple_stone_tiles_stairs", () -> new StairBlock(() -> PURPLE_STONE_TILES.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(PURPLE_STONE_TILES.get()))); - public static final DeferredHolder PURPLE_STONE_TILES_SLAB = registerWithItem("purple_stone_tiles_slab", () -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(PURPLE_STONE_TILES.get()))); - public static final DeferredHolder PURPLE_STONE_TILES_WALL = registerWithItem("purple_stone_tiles_wall", () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(PURPLE_STONE_TILES.get()).forceSolidOn())); - public static final DeferredHolder CANDLE_STICK = BLOCKS.register("candle_stick", () -> new StandingCandleStickBlock(null, () -> null, BlockBehaviour.Properties.of().mapColor(MapColor.METAL).noOcclusion().strength(0.5f).sound(SoundType.METAL).pushReaction(PushReaction.DESTROY))); - public static final DeferredHolder WALL_CANDLE_STICK = BLOCKS.register("wall_candle_stick", () -> new WallCandleStickBlock(null, () -> null, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lootFrom(CANDLE_STICK))); - public static final DeferredHolder CANDLE_STICK_NORMAL = BLOCKS.register("candle_stick_normal", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_NORMAL = BLOCKS.register("wall_candle_stick_normal", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_NORMAL.get()).lootFrom(CANDLE_STICK_NORMAL)), new ResourceLocation("candle"))); - public static final DeferredHolder CANDLE_STICK_WHITE = BLOCKS.register("candle_stick_white", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.WHITE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("white_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_WHITE = BLOCKS.register("wall_candle_stick_white", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.WHITE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_WHITE.get()).lootFrom(CANDLE_STICK_WHITE)), new ResourceLocation("white_candle"))); - public static final DeferredHolder CANDLE_STICK_ORANGE = BLOCKS.register("candle_stick_orange", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.ORANGE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("orange_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_ORANGE = BLOCKS.register("wall_candle_stick_orange", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.ORANGE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_ORANGE.get()).lootFrom(CANDLE_STICK_ORANGE)), new ResourceLocation("orange_candle"))); - public static final DeferredHolder CANDLE_STICK_MAGENTA = BLOCKS.register("candle_stick_magenta", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.MAGENTA_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("magenta_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_MAGENTA = BLOCKS.register("wall_candle_stick_magenta", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.MAGENTA_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_MAGENTA.get()).lootFrom(CANDLE_STICK_MAGENTA)), new ResourceLocation("magenta_candle"))); - public static final DeferredHolder CANDLE_STICK_LIGHT_BLUE = BLOCKS.register("candle_stick_light_blue", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.LIGHT_BLUE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("light_blue_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_LIGHT_BLUE = BLOCKS.register("wall_candle_stick_light_blue", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.LIGHT_BLUE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_LIGHT_BLUE.get()).lootFrom(CANDLE_STICK_LIGHT_BLUE)), new ResourceLocation("light_blue_candle"))); - public static final DeferredHolder CANDLE_STICK_YELLOW = BLOCKS.register("candle_stick_yellow", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.YELLOW_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("yellow_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_YELLOW = BLOCKS.register("wall_candle_stick_yellow", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.YELLOW_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_YELLOW.get()).lootFrom(CANDLE_STICK_YELLOW)), new ResourceLocation("yellow_candle"))); - public static final DeferredHolder CANDLE_STICK_LIME = BLOCKS.register("candle_stick_lime", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.LIME_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("lime_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_LIME = BLOCKS.register("wall_candle_stick_lime", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.LIME_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_LIME.get()).lootFrom(CANDLE_STICK_LIME)), new ResourceLocation("lime_candle"))); - public static final DeferredHolder CANDLE_STICK_PINK = BLOCKS.register("candle_stick_pink", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.PINK_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("pink_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_PINK = BLOCKS.register("wall_candle_stick_pink", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.PINK_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_PINK.get()).lootFrom(CANDLE_STICK_PINK)), new ResourceLocation("pink_candle"))); - public static final DeferredHolder CANDLE_STICK_GRAY = BLOCKS.register("candle_stick_gray", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.GRAY_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("gray_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_GRAY = BLOCKS.register("wall_candle_stick_gray", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.GRAY_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_GRAY.get()).lootFrom(CANDLE_STICK_GRAY)), new ResourceLocation("gray_candle"))); - public static final DeferredHolder CANDLE_STICK_LIGHT_GRAY = BLOCKS.register("candle_stick_light_gray", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.LIGHT_GRAY_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("light_gray_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_LIGHT_GRAY = BLOCKS.register("wall_candle_stick_light_gray", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.LIGHT_GRAY_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_LIGHT_GRAY.get()).lootFrom(CANDLE_STICK_LIGHT_GRAY)), new ResourceLocation("light_gray_candle"))); - public static final DeferredHolder CANDLE_STICK_CYAN = BLOCKS.register("candle_stick_cyan", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.CYAN_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("cyan_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_CYAN = BLOCKS.register("wall_candle_stick_cyan", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.CYAN_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_CYAN.get()).lootFrom(CANDLE_STICK_CYAN)), new ResourceLocation("cyan_candle"))); - public static final DeferredHolder CANDLE_STICK_PURPLE = BLOCKS.register("candle_stick_purple", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.PURPLE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("purple_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_PURPLE = BLOCKS.register("wall_candle_stick_purple", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.PURPLE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_PURPLE.get()).lootFrom(CANDLE_STICK_PURPLE)), new ResourceLocation("purple_candle"))); - public static final DeferredHolder CANDLE_STICK_BLUE = BLOCKS.register("candle_stick_blue", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.BLUE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("blue_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_BLUE = BLOCKS.register("wall_candle_stick_blue", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.BLUE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_BLUE.get()).lootFrom(CANDLE_STICK_BLUE)), new ResourceLocation("blue_candle"))); - public static final DeferredHolder CANDLE_STICK_BROWN = BLOCKS.register("candle_stick_brown", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.BROWN_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("brown_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_BROWN = BLOCKS.register("wall_candle_stick_brown", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.BROWN_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_BROWN.get()).lootFrom(CANDLE_STICK_BROWN)), new ResourceLocation("brown_candle"))); - public static final DeferredHolder CANDLE_STICK_GREEN = BLOCKS.register("candle_stick_green", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.GREEN_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("green_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_GREEN = BLOCKS.register("wall_candle_stick_green", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.GREEN_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_GREEN.get()).lootFrom(CANDLE_STICK_GREEN)), new ResourceLocation("green_candle"))); - public static final DeferredHolder CANDLE_STICK_RED = BLOCKS.register("candle_stick_red", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.RED_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("red_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_RED = BLOCKS.register("wall_candle_stick_red", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.RED_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_RED.get()).lootFrom(CANDLE_STICK_RED)), new ResourceLocation("red_candle"))); - public static final DeferredHolder CANDLE_STICK_BLACK = BLOCKS.register("candle_stick_black", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.BLACK_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("black_candle"))); - public static final DeferredHolder WALL_CANDLE_STICK_BLACK = BLOCKS.register("wall_candle_stick_black", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.BLACK_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_BLACK.get()).lootFrom(CANDLE_STICK_BLACK)), new ResourceLocation("black_candle"))); + public static final DeferredBlock MOTHER = BLOCKS.register("mother", MotherBlock::new); + public static final DeferredBlock MOTHER_TROPHY = registerWithItem("mother_trophy", () -> new MotherTrophyBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).strength(3, 9).lightLevel(s -> 1).noOcclusion()), block -> new MotherTrophyItem(block, new Item.Properties().rarity(Rarity.EPIC).stacksTo(1))); + public static final DeferredBlock FOG_DIFFUSER = registerWithItem("fog_diffuser", () -> new FogDiffuserBlock(BlockBehaviour.Properties.of().noOcclusion().mapColor(MapColor.STONE).strength(40.0F, 1200.0F).sound(SoundType.STONE))); + public static final DeferredBlock POTTED_DARK_SPRUCE_SAPLING = BLOCKS.register("potted_dark_spruce_sapling", () -> potted(new FlowerPotBlock(() -> (FlowerPotBlock) Blocks.FLOWER_POT, DARK_SPRUCE_SAPLING, Block.Properties.of().noCollission().isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).instabreak()), DARK_SPRUCE_SAPLING.getId())); + public static final DeferredBlock POTTED_CURSED_SPRUCE_SAPLING = BLOCKS.register("potted_cursed_spruce_sapling", () -> potted(new FlowerPotBlock(() -> (FlowerPotBlock) Blocks.FLOWER_POT, CURSED_SPRUCE_SAPLING, Block.Properties.of().noCollission().isViewBlocking(UtilLib::never).pushReaction(PushReaction.DESTROY).instabreak()), CURSED_SPRUCE_SAPLING.getId())); + public static final DeferredBlock BLOOD_INFUSED_IRON_BLOCK = registerWithItem("blood_infused_iron_block", () -> new Block(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).requiresCorrectToolForDrops().strength(5.0F, 6.0F).sound(SoundType.METAL))); + public static final DeferredBlock BLOOD_INFUSED_ENHANCED_IRON_BLOCK = registerWithItem("blood_infused_enhanced_iron_block", () -> new Block(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).requiresCorrectToolForDrops().strength(5.0F, 6.0F).sound(SoundType.METAL))); + public static final DeferredBlock VAMPIRE_BEACON = registerWithItem("vampire_beacon", () -> new VampireBeaconBlock(BlockBehaviour.Properties.of().mapColor(MapColor.DIAMOND).instrument(NoteBlockInstrument.HAT).strength(3.0F).lightLevel((p_50828_) -> 15).noOcclusion().isRedstoneConductor(UtilLib::never)), new Item.Properties().rarity(Rarity.RARE)); + public static final DeferredBlock PURPLE_STONE_BRICKS = registerWithItem("purple_stone_bricks", () -> new Block(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_PURPLE).requiresCorrectToolForDrops().strength(2f, 10f).sound(SoundType.STONE))); + public static final DeferredBlock PURPLE_STONE_BRICK_STAIRS = registerWithItem("purple_stone_brick_stairs", () -> new StairBlock(() -> PURPLE_STONE_BRICKS.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(PURPLE_STONE_BRICKS.get()))); + public static final DeferredBlock PURPLE_STONE_BRICK_SLAB = registerWithItem("purple_stone_brick_slab", () -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(PURPLE_STONE_BRICKS.get()))); + public static final DeferredBlock PURPLE_STONE_BRICK_WALL = registerWithItem("purple_stone_brick_wall", () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(PURPLE_STONE_BRICKS.get()).forceSolidOn())); + public static final DeferredBlock PURPLE_STONE_TILES = registerWithItem("purple_stone_tiles", () -> new Block(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_PURPLE).requiresCorrectToolForDrops().strength(2f, 10f).sound(SoundType.STONE))); + public static final DeferredBlock PURPLE_STONE_TILES_STAIRS = registerWithItem("purple_stone_tiles_stairs", () -> new StairBlock(() -> PURPLE_STONE_TILES.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(PURPLE_STONE_TILES.get()))); + public static final DeferredBlock PURPLE_STONE_TILES_SLAB = registerWithItem("purple_stone_tiles_slab", () -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(PURPLE_STONE_TILES.get()))); + public static final DeferredBlock PURPLE_STONE_TILES_WALL = registerWithItem("purple_stone_tiles_wall", () -> new WallBlock(BlockBehaviour.Properties.ofFullCopy(PURPLE_STONE_TILES.get()).forceSolidOn())); + public static final DeferredBlock CANDLE_STICK = BLOCKS.register("candle_stick", () -> new StandingCandleStickBlock(null, () -> null, BlockBehaviour.Properties.of().mapColor(MapColor.METAL).noOcclusion().strength(0.5f).sound(SoundType.METAL).pushReaction(PushReaction.DESTROY))); + public static final DeferredBlock WALL_CANDLE_STICK = BLOCKS.register("wall_candle_stick", () -> new WallCandleStickBlock(null, () -> null, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lootFrom(CANDLE_STICK))); + public static final DeferredBlock CANDLE_STICK_NORMAL = BLOCKS.register("candle_stick_normal", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_NORMAL = BLOCKS.register("wall_candle_stick_normal", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_NORMAL.get()).lootFrom(CANDLE_STICK_NORMAL)), new ResourceLocation("candle"))); + public static final DeferredBlock CANDLE_STICK_WHITE = BLOCKS.register("candle_stick_white", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.WHITE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("white_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_WHITE = BLOCKS.register("wall_candle_stick_white", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.WHITE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_WHITE.get()).lootFrom(CANDLE_STICK_WHITE)), new ResourceLocation("white_candle"))); + public static final DeferredBlock CANDLE_STICK_ORANGE = BLOCKS.register("candle_stick_orange", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.ORANGE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("orange_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_ORANGE = BLOCKS.register("wall_candle_stick_orange", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.ORANGE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_ORANGE.get()).lootFrom(CANDLE_STICK_ORANGE)), new ResourceLocation("orange_candle"))); + public static final DeferredBlock CANDLE_STICK_MAGENTA = BLOCKS.register("candle_stick_magenta", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.MAGENTA_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("magenta_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_MAGENTA = BLOCKS.register("wall_candle_stick_magenta", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.MAGENTA_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_MAGENTA.get()).lootFrom(CANDLE_STICK_MAGENTA)), new ResourceLocation("magenta_candle"))); + public static final DeferredBlock CANDLE_STICK_LIGHT_BLUE = BLOCKS.register("candle_stick_light_blue", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.LIGHT_BLUE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("light_blue_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_LIGHT_BLUE = BLOCKS.register("wall_candle_stick_light_blue", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.LIGHT_BLUE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_LIGHT_BLUE.get()).lootFrom(CANDLE_STICK_LIGHT_BLUE)), new ResourceLocation("light_blue_candle"))); + public static final DeferredBlock CANDLE_STICK_YELLOW = BLOCKS.register("candle_stick_yellow", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.YELLOW_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("yellow_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_YELLOW = BLOCKS.register("wall_candle_stick_yellow", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.YELLOW_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_YELLOW.get()).lootFrom(CANDLE_STICK_YELLOW)), new ResourceLocation("yellow_candle"))); + public static final DeferredBlock CANDLE_STICK_LIME = BLOCKS.register("candle_stick_lime", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.LIME_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("lime_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_LIME = BLOCKS.register("wall_candle_stick_lime", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.LIME_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_LIME.get()).lootFrom(CANDLE_STICK_LIME)), new ResourceLocation("lime_candle"))); + public static final DeferredBlock CANDLE_STICK_PINK = BLOCKS.register("candle_stick_pink", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.PINK_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("pink_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_PINK = BLOCKS.register("wall_candle_stick_pink", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.PINK_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_PINK.get()).lootFrom(CANDLE_STICK_PINK)), new ResourceLocation("pink_candle"))); + public static final DeferredBlock CANDLE_STICK_GRAY = BLOCKS.register("candle_stick_gray", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.GRAY_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("gray_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_GRAY = BLOCKS.register("wall_candle_stick_gray", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.GRAY_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_GRAY.get()).lootFrom(CANDLE_STICK_GRAY)), new ResourceLocation("gray_candle"))); + public static final DeferredBlock CANDLE_STICK_LIGHT_GRAY = BLOCKS.register("candle_stick_light_gray", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.LIGHT_GRAY_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("light_gray_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_LIGHT_GRAY = BLOCKS.register("wall_candle_stick_light_gray", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.LIGHT_GRAY_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_LIGHT_GRAY.get()).lootFrom(CANDLE_STICK_LIGHT_GRAY)), new ResourceLocation("light_gray_candle"))); + public static final DeferredBlock CANDLE_STICK_CYAN = BLOCKS.register("candle_stick_cyan", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.CYAN_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("cyan_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_CYAN = BLOCKS.register("wall_candle_stick_cyan", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.CYAN_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_CYAN.get()).lootFrom(CANDLE_STICK_CYAN)), new ResourceLocation("cyan_candle"))); + public static final DeferredBlock CANDLE_STICK_PURPLE = BLOCKS.register("candle_stick_purple", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.PURPLE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("purple_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_PURPLE = BLOCKS.register("wall_candle_stick_purple", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.PURPLE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_PURPLE.get()).lootFrom(CANDLE_STICK_PURPLE)), new ResourceLocation("purple_candle"))); + public static final DeferredBlock CANDLE_STICK_BLUE = BLOCKS.register("candle_stick_blue", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.BLUE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("blue_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_BLUE = BLOCKS.register("wall_candle_stick_blue", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.BLUE_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_BLUE.get()).lootFrom(CANDLE_STICK_BLUE)), new ResourceLocation("blue_candle"))); + public static final DeferredBlock CANDLE_STICK_BROWN = BLOCKS.register("candle_stick_brown", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.BROWN_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("brown_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_BROWN = BLOCKS.register("wall_candle_stick_brown", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.BROWN_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_BROWN.get()).lootFrom(CANDLE_STICK_BROWN)), new ResourceLocation("brown_candle"))); + public static final DeferredBlock CANDLE_STICK_GREEN = BLOCKS.register("candle_stick_green", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.GREEN_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("green_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_GREEN = BLOCKS.register("wall_candle_stick_green", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.GREEN_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_GREEN.get()).lootFrom(CANDLE_STICK_GREEN)), new ResourceLocation("green_candle"))); + public static final DeferredBlock CANDLE_STICK_RED = BLOCKS.register("candle_stick_red", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.RED_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("red_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_RED = BLOCKS.register("wall_candle_stick_red", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.RED_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_RED.get()).lootFrom(CANDLE_STICK_RED)), new ResourceLocation("red_candle"))); + public static final DeferredBlock CANDLE_STICK_BLACK = BLOCKS.register("candle_stick_black", () -> mountedCandle(new StandingCandleStickBlock(CANDLE_STICK, () -> Items.BLACK_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK.get()).lightLevel(CandleStickBlock.LIGHT_EMISSION)), new ResourceLocation("black_candle"))); + public static final DeferredBlock WALL_CANDLE_STICK_BLACK = BLOCKS.register("wall_candle_stick_black", () -> wallMountedCandle(new WallCandleStickBlock(WALL_CANDLE_STICK, () -> Items.BLACK_CANDLE, BlockBehaviour.Properties.ofFullCopy(CANDLE_STICK_BLACK.get()).lootFrom(CANDLE_STICK_BLACK)), new ResourceLocation("black_candle"))); /** * TUTORIAL: @@ -246,19 +247,19 @@ public class ModBlocks { * - Run genData (twice?) */ @SuppressWarnings("JavadocReference") - private static DeferredHolder registerWithItem(String name, Supplier supplier, Item.@NotNull Properties properties) { - DeferredHolder block = BLOCKS.register(name, supplier); + private static DeferredBlock registerWithItem(String name, Supplier supplier, Item.@NotNull Properties properties) { + DeferredBlock block = BLOCKS.register(name, supplier); ModItems.register(name, () -> new BlockItem(block.get(), properties)); return block; } - private static DeferredHolder registerWithItem(String name, Supplier supplier, @NotNull Function itemMaker) { - DeferredHolder block = BLOCKS.register(name, supplier); + private static DeferredBlock registerWithItem(String name, Supplier supplier, @NotNull Function itemMaker) { + DeferredBlock block = BLOCKS.register(name, supplier); ModItems.register(name, () -> itemMaker.apply(block.get())); return block; } - private static DeferredHolder registerWithItem(String name, Supplier supplier) { + private static DeferredBlock registerWithItem(String name, Supplier supplier) { return registerWithItem(name, supplier, new Item.Properties()); } diff --git a/src/main/java/de/teamlapen/vampirism/core/ModItems.java b/src/main/java/de/teamlapen/vampirism/core/ModItems.java index 4f356a793..77bd75c72 100755 --- a/src/main/java/de/teamlapen/vampirism/core/ModItems.java +++ b/src/main/java/de/teamlapen/vampirism/core/ModItems.java @@ -36,6 +36,7 @@ import net.neoforged.neoforge.common.brewing.BrewingRecipeRegistry; import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent; import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredItem; import net.neoforged.neoforge.registries.DeferredRegister; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; @@ -50,7 +51,7 @@ */ @SuppressWarnings("unused") public class ModItems { - public static final DeferredRegister ITEMS = DeferredRegister.create(Registries.ITEM, REFERENCE.MODID); + public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(REFERENCE.MODID); public static final DeferredRegister CREATIVE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, REFERENCE.MODID); private static final Set> VAMPIRISM_TAB_ITEMS = new HashSet<>(); @@ -61,121 +62,121 @@ public class ModItems { public static final EffectCure GARLIC_CURE = EffectCure.get("vampirism:garlic"); //Items - public static final DeferredHolder ARMOR_OF_SWIFTNESS_CHEST_NORMAL = register("armor_of_swiftness_chest_normal", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.CHESTPLATE, ArmorOfSwiftnessItem.NORMAL)); - public static final DeferredHolder ARMOR_OF_SWIFTNESS_CHEST_ENHANCED = register("armor_of_swiftness_chest_enhanced", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.CHESTPLATE, ArmorOfSwiftnessItem.ENHANCED)); - public static final DeferredHolder ARMOR_OF_SWIFTNESS_CHEST_ULTIMATE = register("armor_of_swiftness_chest_ultimate", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.CHESTPLATE, ArmorOfSwiftnessItem.ULTIMATE)); - public static final DeferredHolder ARMOR_OF_SWIFTNESS_FEET_NORMAL = register("armor_of_swiftness_feet_normal", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.BOOTS, ArmorOfSwiftnessItem.NORMAL)); - public static final DeferredHolder ARMOR_OF_SWIFTNESS_FEET_ENHANCED = register("armor_of_swiftness_feet_enhanced", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.BOOTS, ArmorOfSwiftnessItem.ENHANCED)); - public static final DeferredHolder ARMOR_OF_SWIFTNESS_FEET_ULTIMATE = register("armor_of_swiftness_feet_ultimate", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.BOOTS, ArmorOfSwiftnessItem.ULTIMATE)); - public static final DeferredHolder ARMOR_OF_SWIFTNESS_HEAD_NORMAL = register("armor_of_swiftness_head_normal", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.HELMET, ArmorOfSwiftnessItem.NORMAL)); - public static final DeferredHolder ARMOR_OF_SWIFTNESS_HEAD_ENHANCED = register("armor_of_swiftness_head_enhanced", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.HELMET, ArmorOfSwiftnessItem.ENHANCED)); - public static final DeferredHolder ARMOR_OF_SWIFTNESS_HEAD_ULTIMATE = register("armor_of_swiftness_head_ultimate", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.HELMET, ArmorOfSwiftnessItem.ULTIMATE)); - public static final DeferredHolder ARMOR_OF_SWIFTNESS_LEGS_NORMAL = register("armor_of_swiftness_legs_normal", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.LEGGINGS, ArmorOfSwiftnessItem.NORMAL)); - public static final DeferredHolder ARMOR_OF_SWIFTNESS_LEGS_ENHANCED = register("armor_of_swiftness_legs_enhanced", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.LEGGINGS, ArmorOfSwiftnessItem.ENHANCED)); - public static final DeferredHolder ARMOR_OF_SWIFTNESS_LEGS_ULTIMATE = register("armor_of_swiftness_legs_ultimate", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.LEGGINGS, ArmorOfSwiftnessItem.ULTIMATE)); - - public static final DeferredHolder BASIC_CROSSBOW = register("basic_crossbow", () -> new SingleCrossbowItem(props().defaultDurability(465), 1, 20, Tiers.WOOD)); - public static final DeferredHolder BASIC_DOUBLE_CROSSBOW = register("basic_double_crossbow", () -> new DoubleCrossbowItem(props().durability(465), 1, 20, Tiers.WOOD)); - public static final DeferredHolder BASIC_TECH_CROSSBOW = register("basic_tech_crossbow", () -> new TechCrossbowItem(props().durability(930), 1.6F, 40, Tiers.DIAMOND)); - - public static final DeferredHolder BLOOD_BOTTLE = ITEMS.register("blood_bottle", BloodBottleItem::new); - public static final DeferredHolder BLOOD_BUCKET = register("blood_bucket", CreativeModeTabs.TOOLS_AND_UTILITIES, () -> new BucketItem(ModFluids.BLOOD, new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1))); - public static final DeferredHolder BLOOD_INFUSED_IRON_INGOT = register("blood_infused_iron_ingot", () -> new Item(props())); - public static final DeferredHolder BLOOD_INFUSED_ENHANCED_IRON_INGOT = register("blood_infused_enhanced_iron_ingot", () -> new Item(props())); - - public static final DeferredHolder CROSSBOW_ARROW_NORMAL = register("crossbow_arrow_normal", () -> new CrossbowArrowItem(CrossbowArrowItem.EnumArrowType.NORMAL)); - public static final DeferredHolder CROSSBOW_ARROW_SPITFIRE = register("crossbow_arrow_spitfire", () -> new CrossbowArrowItem(CrossbowArrowItem.EnumArrowType.SPITFIRE)); - public static final DeferredHolder CROSSBOW_ARROW_VAMPIRE_KILLER = register("crossbow_arrow_vampire_killer", () -> new CrossbowArrowItem(CrossbowArrowItem.EnumArrowType.VAMPIRE_KILLER)); - public static final DeferredHolder CROSSBOW_ARROW_TELEPORT = register("crossbow_arrow_teleport", () -> new CrossbowArrowItem(CrossbowArrowItem.EnumArrowType.TELEPORT)); - - public static final DeferredHolder ENHANCED_CROSSBOW = register("enhanced_crossbow", () -> new SingleCrossbowItem(props().durability(930), 1.5F, 15, Tiers.IRON)); - public static final DeferredHolder ENHANCED_DOUBLE_CROSSBOW = register("enhanced_double_crossbow", () -> new DoubleCrossbowItem(props().durability(930),1.5F, 15, Tiers.IRON)); - public static final DeferredHolder ENHANCED_TECH_CROSSBOW = register("enhanced_tech_crossbow", () -> new TechCrossbowItem(props().durability(1860), 1.7F, 30, Tiers.DIAMOND)); - - public static final DeferredHolder GARLIC_DIFFUSER_CORE = register("garlic_diffuser_core", () -> new Item(props())); - public static final DeferredHolder GARLIC_DIFFUSER_CORE_IMPROVED = register("garlic_diffuser_core_improved", () -> new Item(props())); - - public static final DeferredHolder HEART_SEEKER_NORMAL = register("heart_seeker_normal", () -> new HeartSeekerItem(HeartSeekerItem.NORMAL)); - public static final DeferredHolder HEART_SEEKER_ENHANCED = register("heart_seeker_enhanced", () -> new HeartSeekerItem(HeartSeekerItem.ENHANCED)); - public static final DeferredHolder HEART_SEEKER_ULTIMATE = register("heart_seeker_ultimate", () -> new HeartSeekerItem(HeartSeekerItem.ULTIMATE)); - - public static final DeferredHolder HEART_STRIKER_NORMAL = register("heart_striker_normal", () -> new HeartStrikerItem(HeartStrikerItem.NORMAL)); - public static final DeferredHolder HEART_STRIKER_ENHANCED = register("heart_striker_enhanced", () -> new HeartStrikerItem(HeartStrikerItem.ENHANCED)); - public static final DeferredHolder HEART_STRIKER_ULTIMATE = register("heart_striker_ultimate", () -> new HeartStrikerItem(HeartStrikerItem.ULTIMATE)); - - public static final DeferredHolder HOLY_WATER_BOTTLE_NORMAL = register("holy_water_bottle_normal", () -> new HolyWaterBottleItem(IItemWithTier.TIER.NORMAL)); - public static final DeferredHolder HOLY_WATER_BOTTLE_ENHANCED = register("holy_water_bottle_enhanced", () -> new HolyWaterBottleItem(IItemWithTier.TIER.ENHANCED)); - public static final DeferredHolder HOLY_WATER_BOTTLE_ULTIMATE = register("holy_water_bottle_ultimate", () -> new HolyWaterBottleItem(IItemWithTier.TIER.ULTIMATE)); - public static final DeferredHolder HOLY_WATER_SPLASH_BOTTLE_NORMAL = register("holy_water_splash_bottle_normal", () -> new HolyWaterSplashBottleItem(IItemWithTier.TIER.NORMAL)); - public static final DeferredHolder HOLY_WATER_SPLASH_BOTTLE_ENHANCED = register("holy_water_splash_bottle_enhanced", () -> new HolyWaterSplashBottleItem(IItemWithTier.TIER.ENHANCED)); - public static final DeferredHolder HOLY_WATER_SPLASH_BOTTLE_ULTIMATE = register("holy_water_splash_bottle_ultimate", () -> new HolyWaterSplashBottleItem(IItemWithTier.TIER.ULTIMATE)); - - public static final DeferredHolder PURE_SALT_WATER = register("pure_salt_water", () -> new BlessableItem(new Item.Properties().stacksTo(1), HOLY_WATER_BOTTLE_NORMAL::get, HOLY_WATER_BOTTLE_ENHANCED::get) { + public static final DeferredItem ARMOR_OF_SWIFTNESS_CHEST_NORMAL = register("armor_of_swiftness_chest_normal", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.CHESTPLATE, ArmorOfSwiftnessItem.NORMAL)); + public static final DeferredItem ARMOR_OF_SWIFTNESS_CHEST_ENHANCED = register("armor_of_swiftness_chest_enhanced", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.CHESTPLATE, ArmorOfSwiftnessItem.ENHANCED)); + public static final DeferredItem ARMOR_OF_SWIFTNESS_CHEST_ULTIMATE = register("armor_of_swiftness_chest_ultimate", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.CHESTPLATE, ArmorOfSwiftnessItem.ULTIMATE)); + public static final DeferredItem ARMOR_OF_SWIFTNESS_FEET_NORMAL = register("armor_of_swiftness_feet_normal", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.BOOTS, ArmorOfSwiftnessItem.NORMAL)); + public static final DeferredItem ARMOR_OF_SWIFTNESS_FEET_ENHANCED = register("armor_of_swiftness_feet_enhanced", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.BOOTS, ArmorOfSwiftnessItem.ENHANCED)); + public static final DeferredItem ARMOR_OF_SWIFTNESS_FEET_ULTIMATE = register("armor_of_swiftness_feet_ultimate", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.BOOTS, ArmorOfSwiftnessItem.ULTIMATE)); + public static final DeferredItem ARMOR_OF_SWIFTNESS_HEAD_NORMAL = register("armor_of_swiftness_head_normal", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.HELMET, ArmorOfSwiftnessItem.NORMAL)); + public static final DeferredItem ARMOR_OF_SWIFTNESS_HEAD_ENHANCED = register("armor_of_swiftness_head_enhanced", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.HELMET, ArmorOfSwiftnessItem.ENHANCED)); + public static final DeferredItem ARMOR_OF_SWIFTNESS_HEAD_ULTIMATE = register("armor_of_swiftness_head_ultimate", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.HELMET, ArmorOfSwiftnessItem.ULTIMATE)); + public static final DeferredItem ARMOR_OF_SWIFTNESS_LEGS_NORMAL = register("armor_of_swiftness_legs_normal", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.LEGGINGS, ArmorOfSwiftnessItem.NORMAL)); + public static final DeferredItem ARMOR_OF_SWIFTNESS_LEGS_ENHANCED = register("armor_of_swiftness_legs_enhanced", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.LEGGINGS, ArmorOfSwiftnessItem.ENHANCED)); + public static final DeferredItem ARMOR_OF_SWIFTNESS_LEGS_ULTIMATE = register("armor_of_swiftness_legs_ultimate", () -> new ArmorOfSwiftnessItem(ArmorItem.Type.LEGGINGS, ArmorOfSwiftnessItem.ULTIMATE)); + + public static final DeferredItem BASIC_CROSSBOW = register("basic_crossbow", () -> new SingleCrossbowItem(props().defaultDurability(465), 1, 20, Tiers.WOOD)); + public static final DeferredItem BASIC_DOUBLE_CROSSBOW = register("basic_double_crossbow", () -> new DoubleCrossbowItem(props().durability(465), 1, 20, Tiers.WOOD)); + public static final DeferredItem BASIC_TECH_CROSSBOW = register("basic_tech_crossbow", () -> new TechCrossbowItem(props().durability(930), 1.6F, 40, Tiers.DIAMOND)); + + public static final DeferredItem BLOOD_BOTTLE = ITEMS.register("blood_bottle", BloodBottleItem::new); + public static final DeferredItem BLOOD_BUCKET = register("blood_bucket", CreativeModeTabs.TOOLS_AND_UTILITIES, () -> new BucketItem(ModFluids.BLOOD, new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1))); + public static final DeferredItem BLOOD_INFUSED_IRON_INGOT = register("blood_infused_iron_ingot", () -> new Item(props())); + public static final DeferredItem BLOOD_INFUSED_ENHANCED_IRON_INGOT = register("blood_infused_enhanced_iron_ingot", () -> new Item(props())); + + public static final DeferredItem CROSSBOW_ARROW_NORMAL = register("crossbow_arrow_normal", () -> new CrossbowArrowItem(CrossbowArrowItem.EnumArrowType.NORMAL)); + public static final DeferredItem CROSSBOW_ARROW_SPITFIRE = register("crossbow_arrow_spitfire", () -> new CrossbowArrowItem(CrossbowArrowItem.EnumArrowType.SPITFIRE)); + public static final DeferredItem CROSSBOW_ARROW_VAMPIRE_KILLER = register("crossbow_arrow_vampire_killer", () -> new CrossbowArrowItem(CrossbowArrowItem.EnumArrowType.VAMPIRE_KILLER)); + public static final DeferredItem CROSSBOW_ARROW_TELEPORT = register("crossbow_arrow_teleport", () -> new CrossbowArrowItem(CrossbowArrowItem.EnumArrowType.TELEPORT)); + + public static final DeferredItem ENHANCED_CROSSBOW = register("enhanced_crossbow", () -> new SingleCrossbowItem(props().durability(930), 1.5F, 15, Tiers.IRON)); + public static final DeferredItem ENHANCED_DOUBLE_CROSSBOW = register("enhanced_double_crossbow", () -> new DoubleCrossbowItem(props().durability(930),1.5F, 15, Tiers.IRON)); + public static final DeferredItem ENHANCED_TECH_CROSSBOW = register("enhanced_tech_crossbow", () -> new TechCrossbowItem(props().durability(1860), 1.7F, 30, Tiers.DIAMOND)); + + public static final DeferredItem GARLIC_DIFFUSER_CORE = register("garlic_diffuser_core", () -> new Item(props())); + public static final DeferredItem GARLIC_DIFFUSER_CORE_IMPROVED = register("garlic_diffuser_core_improved", () -> new Item(props())); + + public static final DeferredItem HEART_SEEKER_NORMAL = register("heart_seeker_normal", () -> new HeartSeekerItem(HeartSeekerItem.NORMAL)); + public static final DeferredItem HEART_SEEKER_ENHANCED = register("heart_seeker_enhanced", () -> new HeartSeekerItem(HeartSeekerItem.ENHANCED)); + public static final DeferredItem HEART_SEEKER_ULTIMATE = register("heart_seeker_ultimate", () -> new HeartSeekerItem(HeartSeekerItem.ULTIMATE)); + + public static final DeferredItem HEART_STRIKER_NORMAL = register("heart_striker_normal", () -> new HeartStrikerItem(HeartStrikerItem.NORMAL)); + public static final DeferredItem HEART_STRIKER_ENHANCED = register("heart_striker_enhanced", () -> new HeartStrikerItem(HeartStrikerItem.ENHANCED)); + public static final DeferredItem HEART_STRIKER_ULTIMATE = register("heart_striker_ultimate", () -> new HeartStrikerItem(HeartStrikerItem.ULTIMATE)); + + public static final DeferredItem HOLY_WATER_BOTTLE_NORMAL = register("holy_water_bottle_normal", () -> new HolyWaterBottleItem(IItemWithTier.TIER.NORMAL)); + public static final DeferredItem HOLY_WATER_BOTTLE_ENHANCED = register("holy_water_bottle_enhanced", () -> new HolyWaterBottleItem(IItemWithTier.TIER.ENHANCED)); + public static final DeferredItem HOLY_WATER_BOTTLE_ULTIMATE = register("holy_water_bottle_ultimate", () -> new HolyWaterBottleItem(IItemWithTier.TIER.ULTIMATE)); + public static final DeferredItem HOLY_WATER_SPLASH_BOTTLE_NORMAL = register("holy_water_splash_bottle_normal", () -> new HolyWaterSplashBottleItem(IItemWithTier.TIER.NORMAL)); + public static final DeferredItem HOLY_WATER_SPLASH_BOTTLE_ENHANCED = register("holy_water_splash_bottle_enhanced", () -> new HolyWaterSplashBottleItem(IItemWithTier.TIER.ENHANCED)); + public static final DeferredItem HOLY_WATER_SPLASH_BOTTLE_ULTIMATE = register("holy_water_splash_bottle_ultimate", () -> new HolyWaterSplashBottleItem(IItemWithTier.TIER.ULTIMATE)); + + public static final DeferredItem PURE_SALT_WATER = register("pure_salt_water", () -> new BlessableItem(new Item.Properties().stacksTo(1), HOLY_WATER_BOTTLE_NORMAL::get, HOLY_WATER_BOTTLE_ENHANCED::get) { @Override public boolean isFoil(ItemStack stack) { return true; } }); - public static final DeferredHolder HUNTER_AXE_NORMAL = register("hunter_axe_normal", () -> new HunterAxeItem(HunterAxeItem.NORMAL)); - public static final DeferredHolder HUNTER_AXE_ENHANCED = register("hunter_axe_enhanced", () -> new HunterAxeItem(HunterAxeItem.ENHANCED)); - public static final DeferredHolder HUNTER_AXE_ULTIMATE = register("hunter_axe_ultimate", () -> new HunterAxeItem(HunterAxeItem.ULTIMATE)); - - public static final DeferredHolder HUNTER_COAT_CHEST_NORMAL = register("hunter_coat_chest_normal", () -> new HunterCoatItem(ArmorItem.Type.CHESTPLATE, HunterCoatItem.NORMAL)); - public static final DeferredHolder HUNTER_COAT_CHEST_ENHANCED = register("hunter_coat_chest_enhanced", () -> new HunterCoatItem(ArmorItem.Type.CHESTPLATE, HunterCoatItem.ENHANCED)); - public static final DeferredHolder HUNTER_COAT_CHEST_ULTIMATE = register("hunter_coat_chest_ultimate", () -> new HunterCoatItem(ArmorItem.Type.CHESTPLATE, HunterCoatItem.ULTIMATE)); - public static final DeferredHolder HUNTER_COAT_FEET_NORMAL = register("hunter_coat_feet_normal", () -> new HunterCoatItem(ArmorItem.Type.BOOTS, HunterCoatItem.NORMAL)); - public static final DeferredHolder HUNTER_COAT_FEET_ENHANCED = register("hunter_coat_feet_enhanced", () -> new HunterCoatItem(ArmorItem.Type.BOOTS, HunterCoatItem.ENHANCED)); - public static final DeferredHolder HUNTER_COAT_FEET_ULTIMATE = register("hunter_coat_feet_ultimate", () -> new HunterCoatItem(ArmorItem.Type.BOOTS, HunterCoatItem.ULTIMATE)); - public static final DeferredHolder HUNTER_COAT_HEAD_NORMAL = register("hunter_coat_head_normal", () -> new HunterCoatItem(ArmorItem.Type.HELMET, HunterCoatItem.NORMAL)); - public static final DeferredHolder HUNTER_COAT_HEAD_ENHANCED = register("hunter_coat_head_enhanced", () -> new HunterCoatItem(ArmorItem.Type.HELMET, HunterCoatItem.ENHANCED)); - public static final DeferredHolder HUNTER_COAT_HEAD_ULTIMATE = register("hunter_coat_head_ultimate", () -> new HunterCoatItem(ArmorItem.Type.HELMET, HunterCoatItem.ULTIMATE)); - public static final DeferredHolder HUNTER_COAT_LEGS_NORMAL = register("hunter_coat_legs_normal", () -> new HunterCoatItem(ArmorItem.Type.LEGGINGS, HunterCoatItem.NORMAL)); - public static final DeferredHolder HUNTER_COAT_LEGS_ENHANCED = register("hunter_coat_legs_enhanced", () -> new HunterCoatItem(ArmorItem.Type.LEGGINGS, HunterCoatItem.ENHANCED)); - public static final DeferredHolder HUNTER_COAT_LEGS_ULTIMATE = register("hunter_coat_legs_ultimate", () -> new HunterCoatItem(ArmorItem.Type.LEGGINGS, HunterCoatItem.ULTIMATE)); - - public static final DeferredHolder HUNTER_HAT_HEAD_0 = register("hunter_hat_head_0", () -> new HunterHatItem(HunterHatItem.HatType.TYPE_1)); - public static final DeferredHolder HUNTER_HAT_HEAD_1 = register("hunter_hat_head_1", () -> new HunterHatItem(HunterHatItem.HatType.TYPE_2)); - - public static final DeferredHolder HUNTER_INTEL_0 = register("hunter_intel_0", () -> new HunterIntelItem(0)); - public static final DeferredHolder HUNTER_INTEL_1 = register("hunter_intel_1", () -> new HunterIntelItem(1)); - public static final DeferredHolder HUNTER_INTEL_2 = register("hunter_intel_2", () -> new HunterIntelItem(2)); - public static final DeferredHolder HUNTER_INTEL_3 = register("hunter_intel_3", () -> new HunterIntelItem(3)); - public static final DeferredHolder HUNTER_INTEL_4 = register("hunter_intel_4", () -> new HunterIntelItem(4)); - public static final DeferredHolder HUNTER_INTEL_5 = register("hunter_intel_5", () -> new HunterIntelItem(5)); - public static final DeferredHolder HUNTER_INTEL_6 = register("hunter_intel_6", () -> new HunterIntelItem(6)); - public static final DeferredHolder HUNTER_INTEL_7 = register("hunter_intel_7", () -> new HunterIntelItem(7)); - public static final DeferredHolder HUNTER_INTEL_8 = register("hunter_intel_8", () -> new HunterIntelItem(8)); - public static final DeferredHolder HUNTER_INTEL_9 = register("hunter_intel_9", () -> new HunterIntelItem(9)); - - public static final DeferredHolder HUMAN_HEART = register("human_heart", () -> new VampirismItemBloodFoodItem((new FoodProperties.Builder()).nutrition(20).saturationMod(1.5F).build(), new FoodProperties.Builder().nutrition(5).saturationMod(1f).build())); - - public static final DeferredHolder INJECTION_EMPTY = register("injection_empty", () -> new InjectionItem(InjectionItem.TYPE.EMPTY)); - public static final DeferredHolder INJECTION_GARLIC = register("injection_garlic", () -> new InjectionItem(InjectionItem.TYPE.GARLIC)); - public static final DeferredHolder INJECTION_SANGUINARE = register("injection_sanguinare", () -> new InjectionItem(InjectionItem.TYPE.SANGUINARE)); - - public static final DeferredHolder IMPURE_BLOOD_BUCKET = register("impure_blood_bucket", CreativeModeTabs.TOOLS_AND_UTILITIES, () -> new BucketItem(ModFluids.IMPURE_BLOOD, new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1))); - public static final DeferredHolder ITEM_GARLIC = register("item_garlic", GarlicItem::new); - public static final DeferredHolder GARLIC_BREAD = register("garlic_bread", GarlicBreadItem::new); - public static final DeferredHolder ITEM_ALCHEMICAL_FIRE = register("item_alchemical_fire", AlchemicalFireItem::new); - - public static final DeferredHolder ITEM_TENT = register("item_tent", () -> new TentItem(false)); - public static final DeferredHolder ITEM_TENT_SPAWNER = register("item_tent_spawner", () -> new TentItem(true)); - - public static final DeferredHolder PITCHFORK = register("pitchfork", PitchforkItem::new); - - public static final DeferredHolder PURE_BLOOD_0 = register("pure_blood_0", () -> new PureBloodItem(0)); - public static final DeferredHolder PURE_BLOOD_1 = register("pure_blood_1", () -> new PureBloodItem(1)); - public static final DeferredHolder PURE_BLOOD_2 = register("pure_blood_2", () -> new PureBloodItem(2)); - public static final DeferredHolder PURE_BLOOD_3 = register("pure_blood_3", () -> new PureBloodItem(3)); - public static final DeferredHolder PURE_BLOOD_4 = register("pure_blood_4", () -> new PureBloodItem(4)); - - public static final DeferredHolder PURIFIED_GARLIC = register("purified_garlic", () -> new Item(props())); - public static final DeferredHolder PURE_SALT = register("pure_salt", () -> new Item(props())); - public static final DeferredHolder SOUL_ORB_VAMPIRE = register("soul_orb_vampire", () -> new Item(props())); - - public static final DeferredHolder STAKE = register("stake", StakeItem::new); - public static final DeferredHolder ARROW_CLIP = register("tech_crossbow_ammo_package", () -> new ArrowContainer(props().stacksTo(1), 12, (stack) -> stack.is(CROSSBOW_ARROW_NORMAL.get())) { + public static final DeferredItem HUNTER_AXE_NORMAL = register("hunter_axe_normal", () -> new HunterAxeItem(HunterAxeItem.NORMAL)); + public static final DeferredItem HUNTER_AXE_ENHANCED = register("hunter_axe_enhanced", () -> new HunterAxeItem(HunterAxeItem.ENHANCED)); + public static final DeferredItem HUNTER_AXE_ULTIMATE = register("hunter_axe_ultimate", () -> new HunterAxeItem(HunterAxeItem.ULTIMATE)); + + public static final DeferredItem HUNTER_COAT_CHEST_NORMAL = register("hunter_coat_chest_normal", () -> new HunterCoatItem(ArmorItem.Type.CHESTPLATE, HunterCoatItem.NORMAL)); + public static final DeferredItem HUNTER_COAT_CHEST_ENHANCED = register("hunter_coat_chest_enhanced", () -> new HunterCoatItem(ArmorItem.Type.CHESTPLATE, HunterCoatItem.ENHANCED)); + public static final DeferredItem HUNTER_COAT_CHEST_ULTIMATE = register("hunter_coat_chest_ultimate", () -> new HunterCoatItem(ArmorItem.Type.CHESTPLATE, HunterCoatItem.ULTIMATE)); + public static final DeferredItem HUNTER_COAT_FEET_NORMAL = register("hunter_coat_feet_normal", () -> new HunterCoatItem(ArmorItem.Type.BOOTS, HunterCoatItem.NORMAL)); + public static final DeferredItem HUNTER_COAT_FEET_ENHANCED = register("hunter_coat_feet_enhanced", () -> new HunterCoatItem(ArmorItem.Type.BOOTS, HunterCoatItem.ENHANCED)); + public static final DeferredItem HUNTER_COAT_FEET_ULTIMATE = register("hunter_coat_feet_ultimate", () -> new HunterCoatItem(ArmorItem.Type.BOOTS, HunterCoatItem.ULTIMATE)); + public static final DeferredItem HUNTER_COAT_HEAD_NORMAL = register("hunter_coat_head_normal", () -> new HunterCoatItem(ArmorItem.Type.HELMET, HunterCoatItem.NORMAL)); + public static final DeferredItem HUNTER_COAT_HEAD_ENHANCED = register("hunter_coat_head_enhanced", () -> new HunterCoatItem(ArmorItem.Type.HELMET, HunterCoatItem.ENHANCED)); + public static final DeferredItem HUNTER_COAT_HEAD_ULTIMATE = register("hunter_coat_head_ultimate", () -> new HunterCoatItem(ArmorItem.Type.HELMET, HunterCoatItem.ULTIMATE)); + public static final DeferredItem HUNTER_COAT_LEGS_NORMAL = register("hunter_coat_legs_normal", () -> new HunterCoatItem(ArmorItem.Type.LEGGINGS, HunterCoatItem.NORMAL)); + public static final DeferredItem HUNTER_COAT_LEGS_ENHANCED = register("hunter_coat_legs_enhanced", () -> new HunterCoatItem(ArmorItem.Type.LEGGINGS, HunterCoatItem.ENHANCED)); + public static final DeferredItem HUNTER_COAT_LEGS_ULTIMATE = register("hunter_coat_legs_ultimate", () -> new HunterCoatItem(ArmorItem.Type.LEGGINGS, HunterCoatItem.ULTIMATE)); + + public static final DeferredItem HUNTER_HAT_HEAD_0 = register("hunter_hat_head_0", () -> new HunterHatItem(HunterHatItem.HatType.TYPE_1)); + public static final DeferredItem HUNTER_HAT_HEAD_1 = register("hunter_hat_head_1", () -> new HunterHatItem(HunterHatItem.HatType.TYPE_2)); + + public static final DeferredItem HUNTER_INTEL_0 = register("hunter_intel_0", () -> new HunterIntelItem(0)); + public static final DeferredItem HUNTER_INTEL_1 = register("hunter_intel_1", () -> new HunterIntelItem(1)); + public static final DeferredItem HUNTER_INTEL_2 = register("hunter_intel_2", () -> new HunterIntelItem(2)); + public static final DeferredItem HUNTER_INTEL_3 = register("hunter_intel_3", () -> new HunterIntelItem(3)); + public static final DeferredItem HUNTER_INTEL_4 = register("hunter_intel_4", () -> new HunterIntelItem(4)); + public static final DeferredItem HUNTER_INTEL_5 = register("hunter_intel_5", () -> new HunterIntelItem(5)); + public static final DeferredItem HUNTER_INTEL_6 = register("hunter_intel_6", () -> new HunterIntelItem(6)); + public static final DeferredItem HUNTER_INTEL_7 = register("hunter_intel_7", () -> new HunterIntelItem(7)); + public static final DeferredItem HUNTER_INTEL_8 = register("hunter_intel_8", () -> new HunterIntelItem(8)); + public static final DeferredItem HUNTER_INTEL_9 = register("hunter_intel_9", () -> new HunterIntelItem(9)); + + public static final DeferredItem HUMAN_HEART = register("human_heart", () -> new VampirismItemBloodFoodItem((new FoodProperties.Builder()).nutrition(20).saturationMod(1.5F).build(), new FoodProperties.Builder().nutrition(5).saturationMod(1f).build())); + + public static final DeferredItem INJECTION_EMPTY = register("injection_empty", () -> new InjectionItem(InjectionItem.TYPE.EMPTY)); + public static final DeferredItem INJECTION_GARLIC = register("injection_garlic", () -> new InjectionItem(InjectionItem.TYPE.GARLIC)); + public static final DeferredItem INJECTION_SANGUINARE = register("injection_sanguinare", () -> new InjectionItem(InjectionItem.TYPE.SANGUINARE)); + + public static final DeferredItem IMPURE_BLOOD_BUCKET = register("impure_blood_bucket", CreativeModeTabs.TOOLS_AND_UTILITIES, () -> new BucketItem(ModFluids.IMPURE_BLOOD, new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1))); + public static final DeferredItem ITEM_GARLIC = register("item_garlic", GarlicItem::new); + public static final DeferredItem GARLIC_BREAD = register("garlic_bread", GarlicBreadItem::new); + public static final DeferredItem ITEM_ALCHEMICAL_FIRE = register("item_alchemical_fire", AlchemicalFireItem::new); + + public static final DeferredItem ITEM_TENT = register("item_tent", () -> new TentItem(false)); + public static final DeferredItem ITEM_TENT_SPAWNER = register("item_tent_spawner", () -> new TentItem(true)); + + public static final DeferredItem PITCHFORK = register("pitchfork", PitchforkItem::new); + + public static final DeferredItem PURE_BLOOD_0 = register("pure_blood_0", () -> new PureBloodItem(0)); + public static final DeferredItem PURE_BLOOD_1 = register("pure_blood_1", () -> new PureBloodItem(1)); + public static final DeferredItem PURE_BLOOD_2 = register("pure_blood_2", () -> new PureBloodItem(2)); + public static final DeferredItem PURE_BLOOD_3 = register("pure_blood_3", () -> new PureBloodItem(3)); + public static final DeferredItem PURE_BLOOD_4 = register("pure_blood_4", () -> new PureBloodItem(4)); + + public static final DeferredItem PURIFIED_GARLIC = register("purified_garlic", () -> new Item(props())); + public static final DeferredItem PURE_SALT = register("pure_salt", () -> new Item(props())); + public static final DeferredItem SOUL_ORB_VAMPIRE = register("soul_orb_vampire", () -> new Item(props())); + + public static final DeferredItem STAKE = register("stake", StakeItem::new); + public static final DeferredItem ARROW_CLIP = register("tech_crossbow_ammo_package", () -> new ArrowContainer(props().stacksTo(1), 12, (stack) -> stack.is(CROSSBOW_ARROW_NORMAL.get())) { @Override public void appendHoverText(@NotNull ItemStack stack, @Nullable Level level, @NotNull List texts, @NotNull TooltipFlag flag) { texts.add(Component.translatable("item.vampirism.tech_crossbow_ammo_package.tooltip", Component.translatable(BASIC_TECH_CROSSBOW.get().getDescriptionId())).withStyle(ChatFormatting.GRAY)); @@ -185,68 +186,68 @@ public void appendHoverText(@NotNull ItemStack stack, @Nullable Level level, @No }); - public static final DeferredHolder VAMPIRE_CLOAK_BLACK_BLUE = register("vampire_cloak_black_blue", () -> new ColoredVampireClothingItem(ArmorItem.Type.CHESTPLATE, ColoredVampireClothingItem.EnumModel.CLOAK, "vampire_cloak", ColoredVampireClothingItem.EnumClothingColor.BLACKBLUE)); - public static final DeferredHolder VAMPIRE_CLOAK_BLACK_RED = register("vampire_cloak_black_red", () -> new ColoredVampireClothingItem(ArmorItem.Type.CHESTPLATE, ColoredVampireClothingItem.EnumModel.CLOAK, "vampire_cloak", ColoredVampireClothingItem.EnumClothingColor.BLACKRED)); - public static final DeferredHolder VAMPIRE_CLOAK_BLACK_WHITE = register("vampire_cloak_black_white", () -> new ColoredVampireClothingItem(ArmorItem.Type.CHESTPLATE, ColoredVampireClothingItem.EnumModel.CLOAK, "vampire_cloak", ColoredVampireClothingItem.EnumClothingColor.BLACKWHITE)); - public static final DeferredHolder VAMPIRE_CLOAK_RED_BLACK = register("vampire_cloak_red_black", () -> new ColoredVampireClothingItem(ArmorItem.Type.CHESTPLATE, ColoredVampireClothingItem.EnumModel.CLOAK, "vampire_cloak", ColoredVampireClothingItem.EnumClothingColor.REDBLACK)); - public static final DeferredHolder VAMPIRE_CLOAK_WHITE_BLACK = register("vampire_cloak_white_black", () -> new ColoredVampireClothingItem(ArmorItem.Type.CHESTPLATE, ColoredVampireClothingItem.EnumModel.CLOAK, "vampire_cloak", ColoredVampireClothingItem.EnumClothingColor.WHITEBLACK)); - - public static final DeferredHolder VAMPIRE_BLOOD_BOTTLE = register("vampire_blood_bottle", VampireBloodBottleItem::new); - public static final DeferredHolder VAMPIRE_BOOK = register("vampire_book", VampireBookItem::new); - public static final DeferredHolder VAMPIRE_FANG = register("vampire_fang", VampireFangItem::new); - public static final DeferredHolder WEAK_HUMAN_HEART = register("weak_human_heart", () -> new VampirismItemBloodFoodItem((new FoodProperties.Builder()).nutrition(10).saturationMod(0.9F).build(), new FoodProperties.Builder().nutrition(3).saturationMod(1f).build())); - - public static final DeferredHolder VAMPIRE_SPAWN_EGG = register("vampire_spawn_egg", CreativeModeTabs.SPAWN_EGGS, () -> new DeferredSpawnEggItem(ModEntities.VAMPIRE, 0x8B15A3, 0xa735e3, new Item.Properties())); - public static final DeferredHolder VAMPIRE_HUNTER_SPAWN_EGG = register("vampire_hunter_spawn_egg", CreativeModeTabs.SPAWN_EGGS, () -> new DeferredSpawnEggItem(ModEntities.HUNTER, 0x2d05f2, 0x2600e0, new Item.Properties())); - public static final DeferredHolder ADVANCED_VAMPIRE_SPAWN_EGG = register("advanced_vampire_spawn_egg", CreativeModeTabs.SPAWN_EGGS, () -> new DeferredSpawnEggItem(ModEntities.ADVANCED_VAMPIRE, 0x8B15A3, 0x560a7e, new Item.Properties())); - public static final DeferredHolder ADVANCED_VAMPIRE_HUNTER_SPAWN_EGG = register("advanced_vampire_hunter_spawn_egg", CreativeModeTabs.SPAWN_EGGS, () -> new DeferredSpawnEggItem(ModEntities.ADVANCED_HUNTER, 0x2d05f2, 0x1a028c, new Item.Properties())); - public static final DeferredHolder VAMPIRE_BARON_SPAWN_EGG = register("vampire_baron_spawn_egg", CreativeModeTabs.SPAWN_EGGS, () -> new DeferredSpawnEggItem(ModEntities.VAMPIRE_BARON, 0x8B15A3, 0x15acda, new Item.Properties())); - public static final DeferredHolder HUNTER_TRAINER_SPAWN_EGG = register("hunter_trainer_spawn_egg", CreativeModeTabs.SPAWN_EGGS, () -> new DeferredSpawnEggItem(ModEntities.HUNTER_TRAINER, 0x2d05f2, 0x1cdb49, new Item.Properties())); - - public static final DeferredHolder UMBRELLA = register("umbrella", UmbrellaItem::new); - - public static final DeferredHolder HUNTER_MINION_EQUIPMENT = register("hunter_minion_equipment", () -> new Item(props())); - public static final DeferredHolder HUNTER_MINION_UPGRADE_SIMPLE = register("hunter_minion_upgrade_simple", () -> new MinionUpgradeItem(1, 2, VReference.HUNTER_FACTION)); - public static final DeferredHolder HUNTER_MINION_UPGRADE_ENHANCED = register("hunter_minion_upgrade_enhanced", () -> new MinionUpgradeItem(3, 4, VReference.HUNTER_FACTION)); - public static final DeferredHolder HUNTER_MINION_UPGRADE_SPECIAL = register("hunter_minion_upgrade_special", () -> new MinionUpgradeItem(5, 6, VReference.HUNTER_FACTION)); - public static final DeferredHolder FEEDING_ADAPTER = register("feeding_adapter", FeedingAdapterItem::new); - public static final DeferredHolder VAMPIRE_MINION_BINDING = register("vampire_minion_binding", () -> new Item(props())); - public static final DeferredHolder VAMPIRE_MINION_UPGRADE_SIMPLE = register("vampire_minion_upgrade_simple", () -> new MinionUpgradeItem(1, 2, VReference.VAMPIRE_FACTION)); - public static final DeferredHolder VAMPIRE_MINION_UPGRADE_ENHANCED = register("vampire_minion_upgrade_enhanced", () -> new MinionUpgradeItem(3, 4, VReference.VAMPIRE_FACTION)); - public static final DeferredHolder VAMPIRE_MINION_UPGRADE_SPECIAL = register("vampire_minion_upgrade_special", () -> new MinionUpgradeItem(5, 6, VReference.VAMPIRE_FACTION)); - - public static final DeferredHolder OBLIVION_POTION = register("oblivion_potion", () -> new OblivionItem(props())); - - public static final DeferredHolder AMULET = register("amulet", () -> new VampireRefinementItem(props(), IRefinementItem.AccessorySlotType.AMULET)); - public static final DeferredHolder RING = register("ring", () -> new VampireRefinementItem(props(), IRefinementItem.AccessorySlotType.RING)); - public static final DeferredHolder OBI_BELT = register("obi_belt", () -> new VampireRefinementItem(props(), IRefinementItem.AccessorySlotType.OBI_BELT)); - - public static final DeferredHolder VAMPIRE_CLOTHING_CROWN = register("vampire_clothing_crown", () -> new VampireClothingItem(ArmorItem.Type.HELMET)); - public static final DeferredHolder VAMPIRE_CLOTHING_LEGS = register("vampire_clothing_legs", () -> new VampireClothingItem(ArmorItem.Type.LEGGINGS)); - public static final DeferredHolder VAMPIRE_CLOTHING_BOOTS = register("vampire_clothing_boots", () -> new VampireClothingItem(ArmorItem.Type.BOOTS)); - public static final DeferredHolder VAMPIRE_CLOTHING_HAT = register("vampire_clothing_hat", () -> new VampireClothingItem(ArmorItem.Type.HELMET)); - - public static final DeferredHolder GARLIC_FINDER = register("garlic_finder", () -> new Item(props().rarity(Rarity.RARE))); - - public static final DeferredHolder ITEM_CANDELABRA = register("item_candelabra", () -> new StandingAndWallBlockItem(ModBlocks.CANDELABRA.get(), ModBlocks.CANDELABRA_WALL.get(), new Item.Properties(), Direction.DOWN)); - public static final DeferredHolder DARK_SPRUCE_SIGN = register("dark_spruce_sign", () -> new SignItem((new Item.Properties()).stacksTo(16), ModBlocks.DARK_SPRUCE_SIGN.get(), ModBlocks.DARK_SPRUCE_WALL_SIGN.get())); - public static final DeferredHolder CURSED_SPRUCE_SIGN = register("cursed_spruce_sign", () -> new SignItem((new Item.Properties()).stacksTo(16), ModBlocks.CURSED_SPRUCE_SIGN.get(), ModBlocks.CURSED_SPRUCE_WALL_SIGN.get())); - - public static final DeferredHolder CRUCIFIX_NORMAL = register("crucifix_normal", () -> new CrucifixItem(IItemWithTier.TIER.NORMAL)); - public static final DeferredHolder CRUCIFIX_ENHANCED = register("crucifix_enhanced", () -> new CrucifixItem(IItemWithTier.TIER.ENHANCED)); - public static final DeferredHolder CRUCIFIX_ULTIMATE = register("crucifix_ultimate", () -> new CrucifixItem(IItemWithTier.TIER.ULTIMATE)); - - public static final DeferredHolder DARK_SPRUCE_BOAT = register("dark_spruce_boat", () -> new VampirismBoatItem(IVampirismBoat.BoatType.DARK_SPRUCE, false, props().stacksTo(1))); - public static final DeferredHolder CURSED_SPRUCE_BOAT = register("cursed_spruce_boat", () -> new VampirismBoatItem(IVampirismBoat.BoatType.CURSED_SPRUCE, false, props().stacksTo(1))); - public static final DeferredHolder DARK_SPRUCE_CHEST_BOAT = register("dark_spruce_chest_boat", () -> new VampirismBoatItem(IVampirismBoat.BoatType.DARK_SPRUCE, true, props().stacksTo(1))); - public static final DeferredHolder CURSED_SPRUCE_CHEST_BOAT = register("cursed_spruce_chest_boat", () -> new VampirismBoatItem(IVampirismBoat.BoatType.CURSED_SPRUCE, true, props().stacksTo(1))); - - public static final DeferredHolder OIL_BOTTLE = register("oil_bottle", () -> new OilBottleItem(props().stacksTo(1))); - public static final DeferredHolder DARK_SPRUCE_HANGING_SIGN = register("dark_spruce_hanging_sign", () -> new HangingSignItem(ModBlocks.DARK_SPRUCE_HANGING_SIGN.get(), ModBlocks.DARK_SPRUCE_WALL_HANGING_SIGN.get(), new Item.Properties().stacksTo(16))); - public static final DeferredHolder CURSED_SPRUCE_HANGING_SIGN = register("cursed_spruce_hanging_sign", () -> new HangingSignItem(ModBlocks.CURSED_SPRUCE_HANGING_SIGN.get(), ModBlocks.CURSED_SPRUCE_WALL_HANGING_SIGN.get(), new Item.Properties().stacksTo(16))); - - public static final DeferredHolder MOTHER_CORE = register("mother_core", () -> new Item(props().rarity(Rarity.UNCOMMON))); - public static final DeferredHolder CANDLE_STICK = register("candle_stick", () -> new StandingAndWallBlockItem(ModBlocks.CANDLE_STICK.get(), ModBlocks.WALL_CANDLE_STICK.get(), new Item.Properties(), Direction.DOWN)); + public static final DeferredItem VAMPIRE_CLOAK_BLACK_BLUE = register("vampire_cloak_black_blue", () -> new ColoredVampireClothingItem(ArmorItem.Type.CHESTPLATE, ColoredVampireClothingItem.EnumModel.CLOAK, "vampire_cloak", ColoredVampireClothingItem.EnumClothingColor.BLACKBLUE)); + public static final DeferredItem VAMPIRE_CLOAK_BLACK_RED = register("vampire_cloak_black_red", () -> new ColoredVampireClothingItem(ArmorItem.Type.CHESTPLATE, ColoredVampireClothingItem.EnumModel.CLOAK, "vampire_cloak", ColoredVampireClothingItem.EnumClothingColor.BLACKRED)); + public static final DeferredItem VAMPIRE_CLOAK_BLACK_WHITE = register("vampire_cloak_black_white", () -> new ColoredVampireClothingItem(ArmorItem.Type.CHESTPLATE, ColoredVampireClothingItem.EnumModel.CLOAK, "vampire_cloak", ColoredVampireClothingItem.EnumClothingColor.BLACKWHITE)); + public static final DeferredItem VAMPIRE_CLOAK_RED_BLACK = register("vampire_cloak_red_black", () -> new ColoredVampireClothingItem(ArmorItem.Type.CHESTPLATE, ColoredVampireClothingItem.EnumModel.CLOAK, "vampire_cloak", ColoredVampireClothingItem.EnumClothingColor.REDBLACK)); + public static final DeferredItem VAMPIRE_CLOAK_WHITE_BLACK = register("vampire_cloak_white_black", () -> new ColoredVampireClothingItem(ArmorItem.Type.CHESTPLATE, ColoredVampireClothingItem.EnumModel.CLOAK, "vampire_cloak", ColoredVampireClothingItem.EnumClothingColor.WHITEBLACK)); + + public static final DeferredItem VAMPIRE_BLOOD_BOTTLE = register("vampire_blood_bottle", VampireBloodBottleItem::new); + public static final DeferredItem VAMPIRE_BOOK = register("vampire_book", VampireBookItem::new); + public static final DeferredItem VAMPIRE_FANG = register("vampire_fang", VampireFangItem::new); + public static final DeferredItem WEAK_HUMAN_HEART = register("weak_human_heart", () -> new VampirismItemBloodFoodItem((new FoodProperties.Builder()).nutrition(10).saturationMod(0.9F).build(), new FoodProperties.Builder().nutrition(3).saturationMod(1f).build())); + + public static final DeferredItem VAMPIRE_SPAWN_EGG = register("vampire_spawn_egg", CreativeModeTabs.SPAWN_EGGS, () -> new DeferredSpawnEggItem(ModEntities.VAMPIRE, 0x8B15A3, 0xa735e3, new Item.Properties())); + public static final DeferredItem VAMPIRE_HUNTER_SPAWN_EGG = register("vampire_hunter_spawn_egg", CreativeModeTabs.SPAWN_EGGS, () -> new DeferredSpawnEggItem(ModEntities.HUNTER, 0x2d05f2, 0x2600e0, new Item.Properties())); + public static final DeferredItem ADVANCED_VAMPIRE_SPAWN_EGG = register("advanced_vampire_spawn_egg", CreativeModeTabs.SPAWN_EGGS, () -> new DeferredSpawnEggItem(ModEntities.ADVANCED_VAMPIRE, 0x8B15A3, 0x560a7e, new Item.Properties())); + public static final DeferredItem ADVANCED_VAMPIRE_HUNTER_SPAWN_EGG = register("advanced_vampire_hunter_spawn_egg", CreativeModeTabs.SPAWN_EGGS, () -> new DeferredSpawnEggItem(ModEntities.ADVANCED_HUNTER, 0x2d05f2, 0x1a028c, new Item.Properties())); + public static final DeferredItem VAMPIRE_BARON_SPAWN_EGG = register("vampire_baron_spawn_egg", CreativeModeTabs.SPAWN_EGGS, () -> new DeferredSpawnEggItem(ModEntities.VAMPIRE_BARON, 0x8B15A3, 0x15acda, new Item.Properties())); + public static final DeferredItem HUNTER_TRAINER_SPAWN_EGG = register("hunter_trainer_spawn_egg", CreativeModeTabs.SPAWN_EGGS, () -> new DeferredSpawnEggItem(ModEntities.HUNTER_TRAINER, 0x2d05f2, 0x1cdb49, new Item.Properties())); + + public static final DeferredItem UMBRELLA = register("umbrella", UmbrellaItem::new); + + public static final DeferredItem HUNTER_MINION_EQUIPMENT = register("hunter_minion_equipment", () -> new Item(props())); + public static final DeferredItem HUNTER_MINION_UPGRADE_SIMPLE = register("hunter_minion_upgrade_simple", () -> new MinionUpgradeItem(1, 2, VReference.HUNTER_FACTION)); + public static final DeferredItem HUNTER_MINION_UPGRADE_ENHANCED = register("hunter_minion_upgrade_enhanced", () -> new MinionUpgradeItem(3, 4, VReference.HUNTER_FACTION)); + public static final DeferredItem HUNTER_MINION_UPGRADE_SPECIAL = register("hunter_minion_upgrade_special", () -> new MinionUpgradeItem(5, 6, VReference.HUNTER_FACTION)); + public static final DeferredItem FEEDING_ADAPTER = register("feeding_adapter", FeedingAdapterItem::new); + public static final DeferredItem VAMPIRE_MINION_BINDING = register("vampire_minion_binding", () -> new Item(props())); + public static final DeferredItem VAMPIRE_MINION_UPGRADE_SIMPLE = register("vampire_minion_upgrade_simple", () -> new MinionUpgradeItem(1, 2, VReference.VAMPIRE_FACTION)); + public static final DeferredItem VAMPIRE_MINION_UPGRADE_ENHANCED = register("vampire_minion_upgrade_enhanced", () -> new MinionUpgradeItem(3, 4, VReference.VAMPIRE_FACTION)); + public static final DeferredItem VAMPIRE_MINION_UPGRADE_SPECIAL = register("vampire_minion_upgrade_special", () -> new MinionUpgradeItem(5, 6, VReference.VAMPIRE_FACTION)); + + public static final DeferredItem OBLIVION_POTION = register("oblivion_potion", () -> new OblivionItem(props())); + + public static final DeferredItem AMULET = register("amulet", () -> new VampireRefinementItem(props(), IRefinementItem.AccessorySlotType.AMULET)); + public static final DeferredItem RING = register("ring", () -> new VampireRefinementItem(props(), IRefinementItem.AccessorySlotType.RING)); + public static final DeferredItem OBI_BELT = register("obi_belt", () -> new VampireRefinementItem(props(), IRefinementItem.AccessorySlotType.OBI_BELT)); + + public static final DeferredItem VAMPIRE_CLOTHING_CROWN = register("vampire_clothing_crown", () -> new VampireClothingItem(ArmorItem.Type.HELMET)); + public static final DeferredItem VAMPIRE_CLOTHING_LEGS = register("vampire_clothing_legs", () -> new VampireClothingItem(ArmorItem.Type.LEGGINGS)); + public static final DeferredItem VAMPIRE_CLOTHING_BOOTS = register("vampire_clothing_boots", () -> new VampireClothingItem(ArmorItem.Type.BOOTS)); + public static final DeferredItem VAMPIRE_CLOTHING_HAT = register("vampire_clothing_hat", () -> new VampireClothingItem(ArmorItem.Type.HELMET)); + + public static final DeferredItem GARLIC_FINDER = register("garlic_finder", () -> new Item(props().rarity(Rarity.RARE))); + + public static final DeferredItem ITEM_CANDELABRA = register("item_candelabra", () -> new StandingAndWallBlockItem(ModBlocks.CANDELABRA.get(), ModBlocks.CANDELABRA_WALL.get(), new Item.Properties(), Direction.DOWN)); + public static final DeferredItem DARK_SPRUCE_SIGN = register("dark_spruce_sign", () -> new SignItem((new Item.Properties()).stacksTo(16), ModBlocks.DARK_SPRUCE_SIGN.get(), ModBlocks.DARK_SPRUCE_WALL_SIGN.get())); + public static final DeferredItem CURSED_SPRUCE_SIGN = register("cursed_spruce_sign", () -> new SignItem((new Item.Properties()).stacksTo(16), ModBlocks.CURSED_SPRUCE_SIGN.get(), ModBlocks.CURSED_SPRUCE_WALL_SIGN.get())); + + public static final DeferredItem CRUCIFIX_NORMAL = register("crucifix_normal", () -> new CrucifixItem(IItemWithTier.TIER.NORMAL)); + public static final DeferredItem CRUCIFIX_ENHANCED = register("crucifix_enhanced", () -> new CrucifixItem(IItemWithTier.TIER.ENHANCED)); + public static final DeferredItem CRUCIFIX_ULTIMATE = register("crucifix_ultimate", () -> new CrucifixItem(IItemWithTier.TIER.ULTIMATE)); + + public static final DeferredItem DARK_SPRUCE_BOAT = register("dark_spruce_boat", () -> new VampirismBoatItem(IVampirismBoat.BoatType.DARK_SPRUCE, false, props().stacksTo(1))); + public static final DeferredItem CURSED_SPRUCE_BOAT = register("cursed_spruce_boat", () -> new VampirismBoatItem(IVampirismBoat.BoatType.CURSED_SPRUCE, false, props().stacksTo(1))); + public static final DeferredItem DARK_SPRUCE_CHEST_BOAT = register("dark_spruce_chest_boat", () -> new VampirismBoatItem(IVampirismBoat.BoatType.DARK_SPRUCE, true, props().stacksTo(1))); + public static final DeferredItem CURSED_SPRUCE_CHEST_BOAT = register("cursed_spruce_chest_boat", () -> new VampirismBoatItem(IVampirismBoat.BoatType.CURSED_SPRUCE, true, props().stacksTo(1))); + + public static final DeferredItem OIL_BOTTLE = register("oil_bottle", () -> new OilBottleItem(props().stacksTo(1))); + public static final DeferredItem DARK_SPRUCE_HANGING_SIGN = register("dark_spruce_hanging_sign", () -> new HangingSignItem(ModBlocks.DARK_SPRUCE_HANGING_SIGN.get(), ModBlocks.DARK_SPRUCE_WALL_HANGING_SIGN.get(), new Item.Properties().stacksTo(16))); + public static final DeferredItem CURSED_SPRUCE_HANGING_SIGN = register("cursed_spruce_hanging_sign", () -> new HangingSignItem(ModBlocks.CURSED_SPRUCE_HANGING_SIGN.get(), ModBlocks.CURSED_SPRUCE_WALL_HANGING_SIGN.get(), new Item.Properties().stacksTo(16))); + + public static final DeferredItem MOTHER_CORE = register("mother_core", () -> new Item(props().rarity(Rarity.UNCOMMON))); + public static final DeferredItem CANDLE_STICK = register("candle_stick", () -> new StandingAndWallBlockItem(ModBlocks.CANDLE_STICK.get(), ModBlocks.WALL_CANDLE_STICK.get(), new Item.Properties(), Direction.DOWN)); static void registerCraftingRecipes() { // Brewing @@ -274,8 +275,8 @@ public boolean isInput(@NotNull ItemStack stack) { }); } - static DeferredHolder register(final String name, ResourceKey tab, final Supplier sup) { - DeferredHolder item = ITEMS.register(name, sup); + static DeferredItem register(final String name, ResourceKey tab, final Supplier sup) { + DeferredItem item = ITEMS.register(name, sup); if (tab == VAMPIRISM_TAB_KEY) { VAMPIRISM_TAB_ITEMS.add(item); } else { @@ -284,7 +285,7 @@ static DeferredHolder register(final String name, Reso return item; } - static DeferredHolder register(final String name, final Supplier sup) { + static DeferredItem register(final String name, final Supplier sup) { return register(name, VAMPIRISM_TAB_KEY, sup); } @@ -293,8 +294,8 @@ public static void register(IEventBus bus) { CREATIVE_TABS.register(bus); ITEMS.register(bus); if (VampirismMod.inDataGen) { - DeferredRegister DUMMY_ITEMS = DeferredRegister.create(Registries.ITEM, "guideapi_vp"); - DeferredHolder dummy_item = DUMMY_ITEMS.register("vampirism-guidebook", DummyItem::new); + DeferredRegister.Items DUMMY_ITEMS = DeferredRegister.createItems("guideapi_vp"); + DeferredItem dummy_item = DUMMY_ITEMS.register("vampirism-guidebook", DummyItem::new); DUMMY_ITEMS.register(bus); VAMPIRISM_TAB_ITEMS.add(dummy_item); }