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

55 lines
2.2 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
2021-02-28 18:48:39 +00:00
import net.shadowfacts.phycon.block.extractor.ExtractorBlock
import net.shadowfacts.phycon.block.extractor.ExtractorBlockEntity
2021-02-28 22:56:25 +00:00
import net.shadowfacts.phycon.block.inserter.InserterBlock
import net.shadowfacts.phycon.block.inserter.InserterBlockEntity
2021-02-28 18:48:39 +00:00
import net.shadowfacts.phycon.block.miner.MinerBlock
import net.shadowfacts.phycon.block.miner.MinerBlockEntity
import net.shadowfacts.phycon.block.netinterface.InterfaceBlock
import net.shadowfacts.phycon.block.netinterface.InterfaceBlockEntity
import net.shadowfacts.phycon.block.netswitch.SwitchBlock
import net.shadowfacts.phycon.block.netswitch.SwitchBlockEntity
import net.shadowfacts.phycon.block.redstone.RedstoneControllerBlock
import net.shadowfacts.phycon.block.redstone.RedstoneControllerBlockEntity
import net.shadowfacts.phycon.block.terminal.TerminalBlock
import net.shadowfacts.phycon.block.terminal.TerminalBlockEntity
2021-02-13 23:24:36 +00:00
2019-10-27 01:36:31 +00:00
/**
* @author shadowfacts
*/
object PhyBlockEntities {
val INTERFACE = create(::InterfaceBlockEntity, PhyBlocks.INTERFACE)
val TERMINAL = create(::TerminalBlockEntity, PhyBlocks.TERMINAL)
2019-10-27 03:13:26 +00:00
val SWITCH = create(::SwitchBlockEntity, PhyBlocks.SWITCH)
2021-02-15 01:01:33 +00:00
val EXTRACTOR = create(::ExtractorBlockEntity, PhyBlocks.EXTRACTOR)
2021-02-28 22:56:25 +00:00
val INSERTER = create(::InserterBlockEntity, PhyBlocks.INSERTER)
2021-02-15 04:42:19 +00:00
val MINER = create(::MinerBlockEntity, PhyBlocks.MINER)
2021-02-24 03:05:05 +00:00
val REDSTONE_CONTROLLER = create(::RedstoneControllerBlockEntity, PhyBlocks.REDSTONE_CONTROLLER)
2021-02-15 01:01:33 +00:00
2019-10-27 01:36:31 +00:00
private fun <T: BlockEntity> create(builder: () -> T, block: Block): BlockEntityType<T> {
2021-02-13 23:24:36 +00:00
return BlockEntityType.Builder.create(builder, block).build(null)
2019-10-27 01:36:31 +00:00
}
fun init() {
register(InterfaceBlock.ID, INTERFACE)
register(TerminalBlock.ID, TERMINAL)
2019-10-27 03:13:26 +00:00
register(SwitchBlock.ID, SWITCH)
2021-02-15 01:01:33 +00:00
register(ExtractorBlock.ID, EXTRACTOR)
2021-02-28 22:56:25 +00:00
register(InserterBlock.ID, INSERTER)
2021-02-15 04:42:19 +00:00
register(MinerBlock.ID, MINER)
2021-02-24 03:05:05 +00:00
register(RedstoneControllerBlock.ID, REDSTONE_CONTROLLER)
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
}
}