package net.shadowfacts.phycon.init import net.minecraft.block.Block import net.minecraft.block.entity.BlockEntity import net.minecraft.block.entity.BlockEntityType import net.minecraft.util.Identifier import net.minecraft.util.registry.Registry import net.shadowfacts.phycon.network.block.networkinterface.NetworkInterfaceBlock import net.shadowfacts.phycon.network.block.networkinterface.NetworkInterfaceBlockEntity import net.shadowfacts.phycon.network.block.terminal.TerminalBlock import net.shadowfacts.phycon.network.block.terminal.TerminalBlockEntity /** * @author shadowfacts */ object PhyBlockEntities { val NETWORK_INTERFACE = create(::NetworkInterfaceBlockEntity, PhyBlocks.NETWORK_INTERFACE) val TERMINAL = create(::TerminalBlockEntity, PhyBlocks.TERMINAL) private fun create(builder: () -> T, block: Block): BlockEntityType { return BlockEntityType.Builder.create(builder, arrayOf(block)).build(null) } fun init() { register(NetworkInterfaceBlock.ID, NETWORK_INTERFACE) register(TerminalBlock.ID, TERMINAL) } private fun register(id: Identifier, type: BlockEntityType<*>) { Registry.register(Registry.BLOCK_ENTITY, id, type) } }