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 import net.shadowfacts.extrahoppers.block.gold.GoldHopperBlock import net.shadowfacts.extrahoppers.block.gold.GoldHopperBlockEntity import net.shadowfacts.extrahoppers.block.gold.InvertedGoldHopperBlock import net.shadowfacts.extrahoppers.block.wood.WoodHopperBlock import net.shadowfacts.extrahoppers.block.wood.WoodHopperBlockEntity object EHBlockEntities { val WOOD_HOPPER = create(::WoodHopperBlockEntity, EHBlocks.WOOD_HOPPER) val GOLD_HOPPER = create({ GoldHopperBlockEntity(false) }, EHBlocks.GOLD_HOPPER) val INVERTED_GOLD_HOPPER = create({ GoldHopperBlockEntity(true) }, EHBlocks.INVERTED_GOLD_HOPPER) // val INVERTED_GOLD_HOPPER = create(::InvertedGoldHopperBlockEntity, EHBlocks.INVERTED_GOLD_HOPPER) fun init() { register(WoodHopperBlock.ID, WOOD_HOPPER) register(GoldHopperBlock.ID, GOLD_HOPPER) register(InvertedGoldHopperBlock.ID, INVERTED_GOLD_HOPPER) } private fun create(builder: () -> T, block: Block): BlockEntityType { return BlockEntityType.Builder.create(builder, arrayOf(block)).build(null) } fun register(id: Identifier, type: BlockEntityType<*>) { Registry.register(Registry.BLOCK_ENTITY_TYPE, id, type) } }