diff --git a/src/main/java/ru/bclib/api/PostInitAPI.java b/src/main/java/ru/bclib/api/PostInitAPI.java index fe9de248..5dae1dd7 100644 --- a/src/main/java/ru/bclib/api/PostInitAPI.java +++ b/src/main/java/ru/bclib/api/PostInitAPI.java @@ -7,13 +7,16 @@ import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; import net.minecraft.client.renderer.RenderType; import net.minecraft.core.Registry; import net.minecraft.world.level.block.Block; +import ru.bclib.blocks.BaseBarrelBlock; import ru.bclib.blocks.BaseChestBlock; +import ru.bclib.blocks.BaseFurnaceBlock; import ru.bclib.blocks.BaseSignBlock; import ru.bclib.client.render.BCLRenderLayer; import ru.bclib.client.render.BaseChestBlockEntityRenderer; import ru.bclib.client.render.BaseSignBlockEntityRenderer; import ru.bclib.interfaces.PostInitable; import ru.bclib.interfaces.RenderLayerProvider; +import ru.bclib.registry.BaseBlockEntities; import java.util.List; import java.util.function.Consumer; @@ -66,5 +69,17 @@ public class PostInitAPI { if (block instanceof PostInitable) { ((PostInitable) block).postInit(); } + if (block instanceof BaseChestBlock) { + BaseBlockEntities.CHEST.registerBlock(block); + } + else if (block instanceof BaseSignBlock) { + BaseBlockEntities.SIGN.registerBlock(block); + } + else if (block instanceof BaseBarrelBlock) { + BaseBlockEntities.BARREL.registerBlock(block); + } + else if (block instanceof BaseFurnaceBlock) { + BaseBlockEntities.FURNACE.registerBlock(block); + } } } diff --git a/src/main/java/ru/bclib/registry/BaseBlockEntities.java b/src/main/java/ru/bclib/registry/BaseBlockEntities.java index 7e3c0bcb..b369eda1 100644 --- a/src/main/java/ru/bclib/registry/BaseBlockEntities.java +++ b/src/main/java/ru/bclib/registry/BaseBlockEntities.java @@ -18,16 +18,10 @@ import ru.bclib.blocks.BaseFurnaceBlock; import ru.bclib.blocks.BaseSignBlock; public class BaseBlockEntities { - public static final DynamicBlockEntityType CHEST = registerBlockEntityType(BCLib.makeID( - "chest"), BaseChestBlockEntity::new); - public static final DynamicBlockEntityType BARREL = registerBlockEntityType(BCLib.makeID( - "barrel"), BaseBarrelBlockEntity::new); - public static final DynamicBlockEntityType SIGN = registerBlockEntityType( - BCLib.makeID("sign"), - BaseSignBlockEntity::new - ); - public static final DynamicBlockEntityType FURNACE = registerBlockEntityType(BCLib.makeID( - "furnace"), BaseFurnaceBlockEntity::new); + public static final DynamicBlockEntityType CHEST = registerBlockEntityType(BCLib.makeID("chest"), BaseChestBlockEntity::new); + public static final DynamicBlockEntityType BARREL = registerBlockEntityType(BCLib.makeID("barrel"), BaseBarrelBlockEntity::new); + public static final DynamicBlockEntityType SIGN = registerBlockEntityType(BCLib.makeID("sign"), BaseSignBlockEntity::new); + public static final DynamicBlockEntityType FURNACE = registerBlockEntityType(BCLib.makeID("furnace"), BaseFurnaceBlockEntity::new); public static DynamicBlockEntityType registerBlockEntityType(ResourceLocation typeId, BlockEntitySupplier supplier) { return Registry.register(Registry.BLOCK_ENTITY_TYPE, typeId, new DynamicBlockEntityType<>(supplier)); @@ -36,59 +30,30 @@ public class BaseBlockEntities { public static void register() {} public static Block[] getChests() { - return BaseRegistry.getRegisteredBlocks() - .values() - .stream() - .filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseChestBlock) - .map(item -> ((BlockItem) item).getBlock()) - .toArray(Block[]::new); + return Registry.BLOCK + .stream() + .filter(block -> block instanceof BaseChestBlock) + .toArray(Block[]::new); } public static Block[] getBarrels() { - return BaseRegistry.getRegisteredBlocks() - .values() - .stream() - .filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseBarrelBlock) - .map(item -> ((BlockItem) item).getBlock()) - .toArray(Block[]::new); + return Registry.BLOCK + .stream() + .filter(block -> block instanceof BaseBarrelBlock) + .toArray(Block[]::new); } public static Block[] getSigns() { - return BaseRegistry.getRegisteredBlocks() - .values() - .stream() - .filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseSignBlock) - .map(item -> ((BlockItem) item).getBlock()) - .toArray(Block[]::new); + return Registry.BLOCK + .stream() + .filter(block -> block instanceof BaseSignBlock) + .toArray(Block[]::new); } public static Block[] getFurnaces() { - return BaseRegistry.getRegisteredBlocks() - .values() - .stream() - .filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseFurnaceBlock) - .map(item -> ((BlockItem) item).getBlock()) - .toArray(Block[]::new); - } - - public static boolean registerSpecialBlock(Block block) { - if (block instanceof BaseChestBlock) { - BaseBlockEntities.CHEST.registerBlock(block); - return true; - } - if (block instanceof BaseSignBlock) { - BaseBlockEntities.SIGN.registerBlock(block); - return true; - } - if (block instanceof BaseBarrelBlock) { - BaseBlockEntities.BARREL.registerBlock(block); - return true; - } - if (block instanceof BaseFurnaceBlock) { - BaseBlockEntities.FURNACE.registerBlock(block); - return true; - } - - return false; + return Registry.BLOCK + .stream() + .filter(block -> block instanceof BaseFurnaceBlock) + .toArray(Block[]::new); } }