35 lines
1.2 KiB
Kotlin
35 lines
1.2 KiB
Kotlin
|
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 <T: BlockEntity> create(builder: () -> T, block: Block): BlockEntityType<T> {
|
||
|
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)
|
||
|
}
|
||
|
|
||
|
}
|