/* SPDX-License-Identifier: MIT */ package li.cil.oc2.common.blockentity; import li.cil.oc2.common.block.Blocks; import li.cil.oc2.common.util.RegistryUtils; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; public final class BlockEntities { private static final DeferredRegister> BLOCK_ENTITIES = RegistryUtils.create(ForgeRegistries.BLOCK_ENTITIES); /////////////////////////////////////////////////////////////////// public static final RegistryObject> BUS_CABLE = register(Blocks.BUS_CABLE, BusCableBlockEntity::new); public static final RegistryObject> CHARGER = register(Blocks.CHARGER, ChargerBlockEntity::new); public static final RegistryObject> COMPUTER = register(Blocks.COMPUTER, ComputerBlockEntity::new); public static final RegistryObject> CREATIVE_ENERGY = register(Blocks.CREATIVE_ENERGY, CreativeEnergyBlockEntity::new); public static final RegistryObject> DISK_DRIVE = register(Blocks.DISK_DRIVE, DiskDriveBlockEntity::new); public static final RegistryObject> KEYBOARD = register(Blocks.KEYBOARD, KeyboardBlockEntity::new); public static final RegistryObject> NETWORK_CONNECTOR = register(Blocks.NETWORK_CONNECTOR, NetworkConnectorBlockEntity::new); public static final RegistryObject> NETWORK_HUB = register(Blocks.NETWORK_HUB, NetworkHubBlockEntity::new); public static final RegistryObject> PROJECTOR = register(Blocks.PROJECTOR, ProjectorBlockEntity::new); public static final RegistryObject> REDSTONE_INTERFACE = register(Blocks.REDSTONE_INTERFACE, RedstoneInterfaceBlockEntity::new); public static final RegistryObject> VXLAN_HUB = register(Blocks.VXLAN_HUB, VxlanBlockEntity::new); /////////////////////////////////////////////////////////////////// public static void initialize() { } /////////////////////////////////////////////////////////////////// @SuppressWarnings("ConstantConditions") // .build(null) is fine private static RegistryObject> register(final RegistryObject block, final BlockEntityType.BlockEntitySupplier factory) { return BLOCK_ENTITIES.register(block.getId().getPath(), () -> BlockEntityType.Builder.of(factory, block.get()).build(null)); } }