BlockEntities fixes

This commit is contained in:
Aleksey 2021-06-03 17:00:32 +03:00
parent 7ce25e1bd3
commit d3c3e88614
7 changed files with 386 additions and 372 deletions

View file

@ -1,58 +1,54 @@
package ru.bclib.registry;
import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import ru.bclib.BCLib;
import ru.bclib.blockentities.BaseBarrelBlockEntity;
import ru.bclib.blockentities.BaseChestBlockEntity;
import ru.bclib.blockentities.BaseFurnaceBlockEntity;
import ru.bclib.blockentities.BaseSignBlockEntity;
import ru.bclib.blocks.BaseBarrelBlock;
import ru.bclib.blocks.BaseChestBlock;
import ru.bclib.blocks.BaseFurnaceBlock;
import ru.bclib.blocks.BaseSignBlock;
public class BaseBlockEntities {
public static final BlockEntityType<BaseChestBlockEntity> CHEST = registerBlockEntityType(BCLib.makeID("chest"),
BlockEntityType.Builder.of(BaseChestBlockEntity::new, getChests()));
public static final BlockEntityType<BaseBarrelBlockEntity> BARREL = registerBlockEntityType(BCLib.makeID("barrel"),
BlockEntityType.Builder.of(BaseBarrelBlockEntity::new, getBarrels()));
public static final BlockEntityType<BaseSignBlockEntity> SIGN = registerBlockEntityType(BCLib.makeID("sign"),
BlockEntityType.Builder.of(BaseSignBlockEntity::new, getSigns()));
public static final BlockEntityType<BaseFurnaceBlockEntity> FURNACE = registerBlockEntityType(BCLib.makeID("furnace"),
BlockEntityType.Builder.of(BaseFurnaceBlockEntity::new, getFurnaces()));
public static <T extends BlockEntity> BlockEntityType<T> registerBlockEntityType(ResourceLocation blockId, BlockEntityType.Builder<T> builder) {
return Registry.register(Registry.BLOCK_ENTITY_TYPE, blockId, builder.build(null));
}
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);
}
private 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);
}
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);
}
private 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);
}
}
package ru.bclib.registry;
import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import ru.bclib.BCLib;
import ru.bclib.blockentities.*;
import ru.bclib.blocks.BaseBarrelBlock;
import ru.bclib.blocks.BaseChestBlock;
import ru.bclib.blocks.BaseFurnaceBlock;
import ru.bclib.blocks.BaseSignBlock;
import java.util.Arrays;
import java.util.function.Supplier;
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 <T extends BlockEntity> DynamicBlockEntityType<T> registerBlockEntityType(ResourceLocation typeId, Supplier<? extends T> supplier) {
return Registry.register(Registry.BLOCK_ENTITY_TYPE, typeId, new DynamicBlockEntityType<>(supplier));
}
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);
}
private 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);
}
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);
}
private 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);
}
}