package net.shadowfacts.phycon.init import net.minecraft.item.BlockItem import net.minecraft.item.Item import net.minecraft.util.Identifier import net.minecraft.util.registry.Registry import net.shadowfacts.phycon.PhysicalConnectivity import net.shadowfacts.phycon.item.ConsoleItem import net.shadowfacts.phycon.item.ScrewdriverItem import net.shadowfacts.phycon.block.extractor.ExtractorBlock import net.shadowfacts.phycon.block.inserter.InserterBlock import net.shadowfacts.phycon.block.miner.MinerBlock import net.shadowfacts.phycon.block.netinterface.InterfaceBlock import net.shadowfacts.phycon.block.netswitch.SwitchBlock import net.shadowfacts.phycon.block.p2p.P2PInterfaceBlock import net.shadowfacts.phycon.block.p2p.P2PReceiverBlock import net.shadowfacts.phycon.block.redstone_controller.RedstoneControllerBlock import net.shadowfacts.phycon.block.redstone_emitter.RedstoneEmitterBlock import net.shadowfacts.phycon.block.terminal.CraftingTerminalBlock import net.shadowfacts.phycon.block.terminal.TerminalBlock import net.shadowfacts.phycon.item.DeviceBlockItem import net.shadowfacts.phycon.item.FaceDeviceBlockItem import net.shadowfacts.phycon.util.text /** * @author shadowfacts */ object PhyItems { val CABLES = PhyBlocks.CABLES.map { (color, block) -> color to BlockItem(block, Item.Settings()) }.toMap() val INTERFACE = FaceDeviceBlockItem(PhyBlocks.INTERFACE, Item.Settings()) val TERMINAL = DeviceBlockItem(PhyBlocks.TERMINAL, Item.Settings()) val CRAFTING_TERMINAL = DeviceBlockItem(PhyBlocks.CRAFTING_TERMINAL, Item.Settings()) val SWITCH = BlockItem(PhyBlocks.SWITCH, Item.Settings()) val EXTRACTOR = FaceDeviceBlockItem(PhyBlocks.EXTRACTOR, Item.Settings()) val INSERTER = FaceDeviceBlockItem(PhyBlocks.INSERTER, Item.Settings()) val MINER = DeviceBlockItem(PhyBlocks.MINER, Item.Settings()) val REDSTONE_CONTROLLER = FaceDeviceBlockItem(PhyBlocks.REDSTONE_CONTROLLER, Item.Settings()) val REDSTONE_EMITTER = FaceDeviceBlockItem(PhyBlocks.REDSTONE_EMITTER, Item.Settings()) val P2P_INTERFACE = FaceDeviceBlockItem(PhyBlocks.P2P_INTERFACE, Item.Settings()) val P2P_RECEIVER = FaceDeviceBlockItem(PhyBlocks.P2P_RECEIVER, Item.Settings()) val SCREWDRIVER = ScrewdriverItem() val CONSOLE = ConsoleItem() val TWISTED_PAIR = Item(Item.Settings()) val SCREEN = Item(Item.Settings()) val SERIAL_CABLE = Item(Item.Settings()) val SILICON_WAFER = Item(Item.Settings()) val ITEM_PROCESSOR = Item(Item.Settings()) val REDSTONE_PROCESSOR = Item(Item.Settings()) fun init() { for ((color, item) in CABLES) { register(Identifier(PhysicalConnectivity.MODID, "cable_${color.getName()}"), item) } register(InterfaceBlock.ID, INTERFACE) register(TerminalBlock.ID, TERMINAL) register(CraftingTerminalBlock.ID, CRAFTING_TERMINAL) register(SwitchBlock.ID, SWITCH) register(ExtractorBlock.ID, EXTRACTOR) register(InserterBlock.ID, INSERTER) register(MinerBlock.ID, MINER) register(RedstoneControllerBlock.ID, REDSTONE_CONTROLLER) register(RedstoneEmitterBlock.ID, REDSTONE_EMITTER) register(P2PInterfaceBlock.ID, P2P_INTERFACE) P2P_INTERFACE.addTooltip(text { withStyle(darkGray) { +translate("tooltip.phycon.p2p_interface") } }) register(P2PReceiverBlock.ID, P2P_RECEIVER) P2P_RECEIVER.addTooltip(text { withStyle(darkGray) { +translate("tooltip.phycon.p2p_receiver") } }) register(ScrewdriverItem.ID, SCREWDRIVER) register(ConsoleItem.ID, CONSOLE) register(Identifier(PhysicalConnectivity.MODID, "twisted_pair"), TWISTED_PAIR) register(Identifier(PhysicalConnectivity.MODID, "screen"), SCREEN) register(Identifier(PhysicalConnectivity.MODID, "serial_cable"), SERIAL_CABLE) register(Identifier(PhysicalConnectivity.MODID, "silicon_wafer"), SILICON_WAFER) register(Identifier(PhysicalConnectivity.MODID, "item_processor"), ITEM_PROCESSOR) register(Identifier(PhysicalConnectivity.MODID, "redstone_processor"), REDSTONE_PROCESSOR) } private fun register(id: Identifier, item: Item) { Registry.register(Registry.ITEM, id, item) } }