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

65 lines
2.9 KiB
Kotlin
Raw Normal View History

2019-10-27 01:36:31 +00:00
package net.shadowfacts.phycon.init
import net.minecraft.block.Block
2021-12-22 23:59:51 +00:00
import net.minecraft.block.BlockState
2019-10-27 01:36:31 +00:00
import net.minecraft.block.entity.BlockEntity
import net.minecraft.block.entity.BlockEntityType
import net.minecraft.util.Identifier
2021-12-22 23:59:51 +00:00
import net.minecraft.util.math.BlockPos
2019-10-27 01:36:31 +00:00
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
2021-03-01 03:03:29 +00:00
import net.shadowfacts.phycon.block.redstone_controller.RedstoneControllerBlock
import net.shadowfacts.phycon.block.redstone_controller.RedstoneControllerBlockEntity
2021-03-03 03:20:25 +00:00
import net.shadowfacts.phycon.block.redstone_emitter.RedstoneEmitterBlock
import net.shadowfacts.phycon.block.redstone_emitter.RedstoneEmitterBlockEntity
2021-03-28 17:50:11 +00:00
import net.shadowfacts.phycon.block.terminal.CraftingTerminalBlock
import net.shadowfacts.phycon.block.terminal.CraftingTerminalBlockEntity
2021-02-28 18:48:39 +00:00
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)
2021-03-28 17:50:11 +00:00
val CRAFTING_TERMINAL = create(::CraftingTerminalBlockEntity, PhyBlocks.CRAFTING_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-03-03 03:20:25 +00:00
val REDSTONE_EMITTER = create(::RedstoneEmitterBlockEntity, PhyBlocks.REDSTONE_EMITTER)
2021-02-15 01:01:33 +00:00
2021-12-22 23:59:51 +00:00
private fun <T: BlockEntity> create(builder: (BlockPos, BlockState) -> 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)
2021-03-28 17:50:11 +00:00
register(CraftingTerminalBlock.ID, CRAFTING_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)
2021-03-03 03:20:25 +00:00
register(RedstoneEmitterBlock.ID, REDSTONE_EMITTER)
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
}
}