ExtraHoppers/src/main/kotlin/net/shadowfacts/extrahoppers/init/EHBlockEntities.kt

39 lines
1.6 KiB
Kotlin
Raw Permalink Normal View History

2020-03-28 00:00:48 +00:00
package net.shadowfacts.extrahoppers.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
2020-03-28 18:26:39 +00:00
import net.shadowfacts.extrahoppers.block.gold.GoldHopperBlock
import net.shadowfacts.extrahoppers.block.gold.GoldHopperBlockEntity
2020-03-28 22:29:00 +00:00
import net.shadowfacts.extrahoppers.block.gold.InvertedGoldHopperBlock
2020-03-29 03:31:21 +00:00
import net.shadowfacts.extrahoppers.block.grate.GrateBlock
import net.shadowfacts.extrahoppers.block.grate.GrateBlockEntity
2020-03-28 00:00:48 +00:00
import net.shadowfacts.extrahoppers.block.wood.WoodHopperBlock
import net.shadowfacts.extrahoppers.block.wood.WoodHopperBlockEntity
object EHBlockEntities {
val WOOD_HOPPER = create(::WoodHopperBlockEntity, EHBlocks.WOOD_HOPPER)
2020-03-28 22:29:00 +00:00
val GOLD_HOPPER = create({ GoldHopperBlockEntity(false) }, EHBlocks.GOLD_HOPPER)
val INVERTED_GOLD_HOPPER = create({ GoldHopperBlockEntity(true) }, EHBlocks.INVERTED_GOLD_HOPPER)
2020-03-29 03:31:21 +00:00
val GRATE = create(::GrateBlockEntity, EHBlocks.GRATE)
2020-03-28 00:00:48 +00:00
fun init() {
register(WoodHopperBlock.ID, WOOD_HOPPER)
2020-03-28 18:26:39 +00:00
register(GoldHopperBlock.ID, GOLD_HOPPER)
2020-03-28 22:29:00 +00:00
register(InvertedGoldHopperBlock.ID, INVERTED_GOLD_HOPPER)
2020-03-29 03:31:21 +00:00
register(GrateBlock.ID, GRATE)
2020-03-28 00:00:48 +00:00
}
private fun <T: BlockEntity> create(builder: () -> T, block: Block): BlockEntityType<T> {
return BlockEntityType.Builder.create(builder, arrayOf(block)).build(null)
}
fun register(id: Identifier, type: BlockEntityType<*>) {
Registry.register(Registry.BLOCK_ENTITY_TYPE, id, type)
}
2020-03-28 18:26:39 +00:00
}