Entites fixes

This commit is contained in:
paulevsGitch 2021-07-23 18:35:13 +03:00
parent ec61f22682
commit 0c73d69a93
2 changed files with 35 additions and 55 deletions

View file

@ -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);
}
}
}

View file

@ -18,16 +18,10 @@ import ru.bclib.blocks.BaseFurnaceBlock;
import ru.bclib.blocks.BaseSignBlock;
public class BaseBlockEntities {
public static final DynamicBlockEntityType<BaseChestBlockEntity> CHEST = registerBlockEntityType(BCLib.makeID(
"chest"), BaseChestBlockEntity::new);
public static final DynamicBlockEntityType<BaseBarrelBlockEntity> BARREL = registerBlockEntityType(BCLib.makeID(
"barrel"), BaseBarrelBlockEntity::new);
public static final DynamicBlockEntityType<BaseSignBlockEntity> SIGN = registerBlockEntityType(
BCLib.makeID("sign"),
BaseSignBlockEntity::new
);
public static final DynamicBlockEntityType<BaseFurnaceBlockEntity> FURNACE = registerBlockEntityType(BCLib.makeID(
"furnace"), BaseFurnaceBlockEntity::new);
public static final DynamicBlockEntityType<BaseChestBlockEntity> CHEST = registerBlockEntityType(BCLib.makeID("chest"), BaseChestBlockEntity::new);
public static final DynamicBlockEntityType<BaseBarrelBlockEntity> BARREL = registerBlockEntityType(BCLib.makeID("barrel"), BaseBarrelBlockEntity::new);
public static final DynamicBlockEntityType<BaseSignBlockEntity> SIGN = registerBlockEntityType(BCLib.makeID("sign"), BaseSignBlockEntity::new);
public static final DynamicBlockEntityType<BaseFurnaceBlockEntity> FURNACE = registerBlockEntityType(BCLib.makeID("furnace"), BaseFurnaceBlockEntity::new);
public static <T extends BlockEntity> DynamicBlockEntityType<T> registerBlockEntityType(ResourceLocation typeId, BlockEntitySupplier<? extends T> 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()
return Registry.BLOCK
.stream()
.filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseChestBlock)
.map(item -> ((BlockItem) item).getBlock())
.filter(block -> block instanceof BaseChestBlock)
.toArray(Block[]::new);
}
public static Block[] getBarrels() {
return BaseRegistry.getRegisteredBlocks()
.values()
return Registry.BLOCK
.stream()
.filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseBarrelBlock)
.map(item -> ((BlockItem) item).getBlock())
.filter(block -> block instanceof BaseBarrelBlock)
.toArray(Block[]::new);
}
public static Block[] getSigns() {
return BaseRegistry.getRegisteredBlocks()
.values()
return Registry.BLOCK
.stream()
.filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseSignBlock)
.map(item -> ((BlockItem) item).getBlock())
.filter(block -> block instanceof BaseSignBlock)
.toArray(Block[]::new);
}
public static Block[] getFurnaces() {
return BaseRegistry.getRegisteredBlocks()
.values()
return Registry.BLOCK
.stream()
.filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseFurnaceBlock)
.map(item -> ((BlockItem) item).getBlock())
.filter(block -> block instanceof BaseFurnaceBlock)
.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;
}
}