PhysicalConnectivity/src/main/kotlin/net/shadowfacts/phycon/init/PhyBlockEntities.kt

39 lines
1.3 KiB
Kotlin
Raw Normal View History

2019-10-27 01:36:31 +00:00
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
2019-10-27 02:12:02 +00:00
import net.shadowfacts.phycon.network.block.netinterface.InterfaceBlock
import net.shadowfacts.phycon.network.block.netinterface.InterfaceBlockEntity
2019-10-27 03:13:26 +00:00
import net.shadowfacts.phycon.network.block.netswitch.SwitchBlock
import net.shadowfacts.phycon.network.block.netswitch.SwitchBlockEntity
2019-10-27 01:36:31 +00:00
import net.shadowfacts.phycon.network.block.terminal.TerminalBlock
import net.shadowfacts.phycon.network.block.terminal.TerminalBlockEntity
/**
* @author shadowfacts
*/
object PhyBlockEntities {
2019-10-27 02:12:02 +00:00
val INTERFACE = create(::InterfaceBlockEntity, PhyBlocks.INTERFACE)
2019-10-27 01:36:31 +00:00
val TERMINAL = create(::TerminalBlockEntity, PhyBlocks.TERMINAL)
2019-10-27 03:13:26 +00:00
val SWITCH = create(::SwitchBlockEntity, PhyBlocks.SWITCH)
2019-10-27 01:36:31 +00:00
private fun <T: BlockEntity> create(builder: () -> T, block: Block): BlockEntityType<T> {
return BlockEntityType.Builder.create(builder, arrayOf(block)).build(null)
}
fun init() {
2019-10-27 02:12:02 +00:00
register(InterfaceBlock.ID, INTERFACE)
2019-10-27 01:36:31 +00:00
register(TerminalBlock.ID, TERMINAL)
2019-10-27 03:13:26 +00:00
register(SwitchBlock.ID, SWITCH)
2019-10-27 01:36:31 +00:00
}
private fun register(id: Identifier, type: BlockEntityType<*>) {
2021-02-10 23:55:49 +00:00
Registry.register(Registry.BLOCK_ENTITY_TYPE, id, type)
2019-10-27 01:36:31 +00:00
}
}