From 76282102994b1e7e4351315cb02c03c8e904e819 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Wed, 11 Feb 2015 15:58:11 +0100 Subject: [PATCH 1/7] Pulling a bunch of constants (item and block names for now) into a single class. Minor rendering adjustments after updating Forge version. (cherry picked from commit 707a5c728c9a7eba2648c2f3b89f6138e99c878a) Conflicts: build.properties src/main/scala/li/cil/oc/CreativeTab.scala src/main/scala/li/cil/oc/client/Proxy.scala src/main/scala/li/cil/oc/client/renderer/HighlightRenderer.scala src/main/scala/li/cil/oc/client/renderer/block/ExtendedBlockModel.scala src/main/scala/li/cil/oc/client/renderer/item/ItemRenderer.scala src/main/scala/li/cil/oc/common/EventHandler.scala src/main/scala/li/cil/oc/common/Loot.scala src/main/scala/li/cil/oc/common/PacketHandler.scala src/main/scala/li/cil/oc/common/Proxy.scala src/main/scala/li/cil/oc/common/block/Item.scala src/main/scala/li/cil/oc/common/block/RobotAfterimage.scala src/main/scala/li/cil/oc/common/block/RobotProxy.scala src/main/scala/li/cil/oc/common/block/Screen.scala src/main/scala/li/cil/oc/common/component/Terminal.scala src/main/scala/li/cil/oc/common/component/TextBuffer.scala src/main/scala/li/cil/oc/common/entity/Drone.scala src/main/scala/li/cil/oc/common/init/Blocks.scala src/main/scala/li/cil/oc/common/init/Items.scala src/main/scala/li/cil/oc/common/item/Analyzer.scala src/main/scala/li/cil/oc/common/item/Tablet.scala src/main/scala/li/cil/oc/common/recipe/ExtendedRecipe.scala src/main/scala/li/cil/oc/common/recipe/Recipes.scala src/main/scala/li/cil/oc/common/template/DroneTemplate.scala src/main/scala/li/cil/oc/common/template/MicrocontrollerTemplate.scala src/main/scala/li/cil/oc/common/template/NavigationUpgradeTemplate.scala src/main/scala/li/cil/oc/common/template/RobotTemplate.scala src/main/scala/li/cil/oc/common/template/ServerTemplate.scala src/main/scala/li/cil/oc/common/template/TabletTemplate.scala src/main/scala/li/cil/oc/common/tileentity/Keyboard.scala src/main/scala/li/cil/oc/common/tileentity/traits/TextBuffer.scala src/main/scala/li/cil/oc/integration/opencomputers/DriverBlockEnvironments.scala src/main/scala/li/cil/oc/integration/opencomputers/DriverFileSystem.scala src/main/scala/li/cil/oc/integration/opencomputers/DriverLootDisk.scala src/main/scala/li/cil/oc/integration/opencomputers/ModOpenComputers.scala src/main/scala/li/cil/oc/util/ItemCosts.scala --- src/main/scala/li/cil/oc/Constants.scala | 145 +++++++++++++++++ src/main/scala/li/cil/oc/CreativeTab.scala | 11 +- .../client/renderer/HighlightRenderer.scala | 3 +- .../client/renderer/item/ItemRenderer.scala | 17 +- .../renderer/tileentity/RobotRenderer.scala | 3 +- .../renderer/tileentity/ScreenRenderer.scala | 6 +- .../scala/li/cil/oc/common/EventHandler.scala | 21 ++- .../li/cil/oc/common/PacketHandler.scala | 5 +- .../scala/li/cil/oc/common/block/Item.scala | 3 +- .../cil/oc/common/block/RobotAfterimage.scala | 3 +- .../li/cil/oc/common/block/RobotProxy.scala | 3 +- .../scala/li/cil/oc/common/block/Screen.scala | 3 +- .../li/cil/oc/common/component/Terminal.scala | 5 +- .../cil/oc/common/component/TextBuffer.scala | 3 +- .../scala/li/cil/oc/common/entity/Drone.scala | 3 +- .../scala/li/cil/oc/common/init/Blocks.scala | 78 ++++----- .../scala/li/cil/oc/common/init/Items.scala | 105 ++++++------ .../li/cil/oc/common/item/Analyzer.scala | 3 +- .../scala/li/cil/oc/common/item/Present.scala | 153 +++++++++--------- .../scala/li/cil/oc/common/item/Tablet.scala | 3 +- .../item/data/MicrocontrollerData.scala | 3 +- .../li/cil/oc/common/item/data/RaidData.scala | 4 +- .../cil/oc/common/item/data/RobotData.scala | 3 +- .../cil/oc/common/recipe/ExtendedRecipe.scala | 23 +-- .../li/cil/oc/common/recipe/Recipes.scala | 14 +- .../oc/common/template/DroneTemplate.scala | 15 +- .../template/MicrocontrollerTemplate.scala | 14 +- .../template/NavigationUpgradeTemplate.scala | 3 +- .../oc/common/template/RobotTemplate.scala | 16 +- .../oc/common/template/ServerTemplate.scala | 7 +- .../oc/common/template/TabletTemplate.scala | 21 +-- .../li/cil/oc/common/template/Template.scala | 9 +- .../cil/oc/common/tileentity/Keyboard.scala | 3 +- .../li/cil/oc/common/tileentity/Robot.scala | 4 +- .../cil/oc/common/tileentity/ServerRack.scala | 8 +- .../common/tileentity/traits/TextBuffer.scala | 3 +- .../DriverBlockEnvironments.scala | 21 +-- .../integration/opencomputers/DriverCPU.scala | 7 +- .../opencomputers/DriverComponentBus.scala | 6 +- .../opencomputers/DriverContainerCard.scala | 7 +- .../opencomputers/DriverContainerFloppy.scala | 5 +- .../DriverContainerUpgrade.scala | 7 +- .../opencomputers/DriverDebugCard.scala | 5 +- .../opencomputers/DriverEEPROM.scala | 5 +- .../opencomputers/DriverFileSystem.scala | 10 +- .../opencomputers/DriverGeolyzer.scala | 5 +- .../opencomputers/DriverGraphicsCard.scala | 7 +- .../opencomputers/DriverInternetCard.scala | 5 +- .../opencomputers/DriverKeyboard.scala | 5 +- .../opencomputers/DriverLinkedCard.scala | 5 +- .../opencomputers/DriverLootDisk.scala | 1 + .../opencomputers/DriverMemory.scala | 10 +- .../opencomputers/DriverNetworkCard.scala | 5 +- .../opencomputers/DriverRedstoneCard.scala | 5 +- .../opencomputers/DriverScreen.scala | 5 +- .../opencomputers/DriverTablet.scala | 5 +- .../opencomputers/DriverUpgradeAngel.scala | 5 +- .../opencomputers/DriverUpgradeBattery.scala | 7 +- .../DriverUpgradeChunkloader.scala | 5 +- .../opencomputers/DriverUpgradeCrafting.scala | 5 +- .../opencomputers/DriverUpgradeDatabase.scala | 7 +- .../DriverUpgradeExperience.scala | 5 +- .../DriverUpgradeGenerator.scala | 5 +- .../DriverUpgradeInventory.scala | 5 +- .../DriverUpgradeInventoryController.scala | 5 +- .../opencomputers/DriverUpgradeLeash.scala | 5 +- .../DriverUpgradeNavigation.scala | 5 +- .../opencomputers/DriverUpgradePiston.scala | 5 +- .../opencomputers/DriverUpgradeSign.scala | 5 +- .../DriverUpgradeSolarGenerator.scala | 5 +- .../opencomputers/DriverUpgradeTank.scala | 5 +- .../DriverUpgradeTankController.scala | 5 +- .../DriverUpgradeTractorBeam.scala | 5 +- .../DriverWirelessNetworkCard.scala | 5 +- .../opencomputers/ModOpenComputers.scala | 139 ++++++++-------- src/main/scala/li/cil/oc/util/ItemCosts.scala | 5 +- src/main/scala/li/cil/oc/util/ItemUtils.scala | 35 ++-- 77 files changed, 680 insertions(+), 450 deletions(-) create mode 100644 src/main/scala/li/cil/oc/Constants.scala diff --git a/src/main/scala/li/cil/oc/Constants.scala b/src/main/scala/li/cil/oc/Constants.scala new file mode 100644 index 000000000..3dfca7e08 --- /dev/null +++ b/src/main/scala/li/cil/oc/Constants.scala @@ -0,0 +1,145 @@ +package li.cil.oc + +import li.cil.oc.util.ItemUtils + +object Constants { + + object BlockName { + final val AccessPoint = "accessPoint" + final val Adapter = "adapter" + final val Assembler = "assembler" + final val Cable = "cable" + final val Capacitor = "capacitor" + final val CaseCreative = "caseCreative" + final val CaseTier1 = "case1" + final val CaseTier2 = "case2" + final val CaseTier3 = "case3" + final val Charger = "charger" + final val Disassembler = "disassembler" + final val DiskDrive = "diskDrive" + final val Geolyzer = "geolyzer" + final val HologramTier1 = "hologram1" + final val HologramTier2 = "hologram2" + final val Keyboard = "keyboard" + final val Microcontroller = "microcontroller" + final val MotionSensor = "motionSensor" + final val PowerConverter = "powerConverter" + final val PowerDistributor = "powerDistributor" + final val Raid = "raid" + final val Redstone = "redstone" + final val Robot = "robot" + final val RobotAfterimage = "robotAfterimage" + final val ScreenTier1 = "screen1" + final val ScreenTier2 = "screen2" + final val ScreenTier3 = "screen3" + final val ServerRack = "serverRack" + final val Switch = "switch" + + def Case(tier: Int) = ItemUtils.caseNameWithTierSuffix("case", tier) + } + + object ItemName { + final val AbstractBusCard = "abstractBusCard" + final val Acid = "acid" + final val Alu = "alu" + final val Analyzer = "analyzer" + final val AngelUpgrade = "angelUpgrade" + final val ArrowKeys = "arrowKeys" + final val BatteryUpgradeTier1 = "batteryUpgrade1" + final val BatteryUpgradeTier2 = "batteryUpgrade2" + final val BatteryUpgradeTier3 = "batteryUpgrade3" + final val ButtonGroup = "buttonGroup" + final val Card = "card" + final val CardContainerTier1 = "cardContainer1" + final val CardContainerTier2 = "cardContainer2" + final val CardContainerTier3 = "cardContainer3" + final val Chip1 = "chip1" + final val Chip2 = "chip2" + final val Chip3 = "chip3" + final val ChunkloaderUpgrade = "chunkloaderUpgrade" + final val CircuitBoard = "circuitBoard" + final val ComponentBusTier1 = "componentBus1" + final val ComponentBusTier2 = "componentBus2" + final val ComponentBusTier3 = "componentBus3" + final val CPUTier1 = "cpu1" + final val CPUTier2 = "cpu2" + final val CPUTier3 = "cpu3" + final val CraftingUpgrade = "craftingUpgrade" + final val ControlUnit = "cu" + final val CuttingWire = "cuttingWire" + final val DatabaseUpgradeTier1 = "databaseUpgrade1" + final val DatabaseUpgradeTier2 = "databaseUpgrade2" + final val DatabaseUpgradeTier3 = "databaseUpgrade3" + final val DebugCard = "debugCard" + final val Debugger = "debugger" + final val Disk = "disk" + final val Drone = "drone" + final val DroneCaseCreative = "droneCaseCreative" + final val DroneCaseTier1 = "droneCase1" + final val DroneCaseTier2 = "droneCase2" + final val EEPROM = "eeprom" + final val ExperienceUpgrade = "experienceUpgrade" + final val Floppy = "floppy" + final val GeneratorUpgrade = "generatorUpgrade" + final val GraphicsCardTier1 = "graphicsCard1" + final val GraphicsCardTier2 = "graphicsCard2" + final val GraphicsCardTier3 = "graphicsCard3" + final val HDDTier1 = "hdd1" + final val HDDTier2 = "hdd2" + final val HDDTier3 = "hdd3" + final val InternetCard = "internetCard" + final val Interweb = "interweb" + final val InventoryControllerUpgrade = "inventoryControllerUpgrade" + final val InventoryUpgrade = "inventoryUpgrade" + final val IronNugget = "nuggetIron" + final val LeashUpgrade = "leashUpgrade" + final val LinkedCard = "linkedCard" + final val LuaBios = "luaBios" + final val MicrocontrollerCaseCreative = "microcontrollerCaseCreative" + final val MicrocontrollerCaseTier1 = "microcontrollerCase1" + final val MicrocontrollerCaseTier2 = "microcontrollerCase2" + final val NavigationUpgrade = "navigationUpgrade" + final val NetworkCard = "lanCard" + final val NumPad = "numPad" + final val OpenOS = "openOS" + final val PistonUpgrade = "pistonUpgrade" + final val Present = "present" + final val PrintedCircuitBoard = "printedCircuitBoard" + final val RAMTier1 = "ram1" + final val RAMTier2 = "ram2" + final val RAMTier3 = "ram3" + final val RAMTier4 = "ram4" + final val RAMTier5 = "ram5" + final val RAMTier6 = "ram6" + final val RawCircuitBoard = "rawCircuitBoard" + final val RedstoneCardTier1 = "redstoneCard1" + final val RedstoneCardTier2 = "redstoneCard2" + final val ServerCreative = "serverCreative" + final val ServerTier1 = "server1" + final val ServerTier2 = "server2" + final val ServerTier3 = "server3" + final val SignUpgrade = "signUpgrade" + final val SolarGeneratorUpgrade = "solarGeneratorUpgrade" + final val Tablet = "tablet" + final val TabletCaseCreative = "tabletCaseCreative" + final val TabletCaseTier1 = "tabletCase1" + final val TabletCaseTier2 = "tabletCase2" + final val TankControllerUpgrade = "tankControllerUpgrade" + final val TankUpgrade = "tankUpgrade" + final val Terminal = "terminal" + final val TractorBeamUpgrade = "tractorBeamUpgrade" + final val Transistor = "transistor" + final val UpgradeContainerTier1 = "upgradeContainer1" + final val UpgradeContainerTier2 = "upgradeContainer2" + final val UpgradeContainerTier3 = "upgradeContainer3" + final val WirelessNetworkCard = "wlanCard" + final val WorldSensorCard = "worldSensorCard" + + def DroneCase(tier: Int) = ItemUtils.caseNameWithTierSuffix("droneCase", tier) + + def MicrocontrollerCase(tier: Int) = ItemUtils.caseNameWithTierSuffix("microcontrollerCase", tier) + + def TabletCase(tier: Int) = ItemUtils.caseNameWithTierSuffix("tabletCase", tier) + } + +} diff --git a/src/main/scala/li/cil/oc/CreativeTab.scala b/src/main/scala/li/cil/oc/CreativeTab.scala index 1a2503aaa..36976b4cd 100644 --- a/src/main/scala/li/cil/oc/CreativeTab.scala +++ b/src/main/scala/li/cil/oc/CreativeTab.scala @@ -1,12 +1,13 @@ package li.cil.oc -import li.cil.oc.common.init.Items import net.minecraft.creativetab.CreativeTabs -object CreativeTab extends CreativeTabs(CreativeTabs.getNextID, "OpenComputers") { - override def getTabIconItem = Items.multi +object CreativeTab extends CreativeTabs(CreativeTabs.getNextID, OpenComputers.Name) { + private lazy val stack = api.Items.get(Constants.BlockName.CaseTier1).createItemStack(1) - override def getIconItemStack = Items.get("case1").createItemStack(1) + override def getTabIconItem = stack.getItem + + override def getIconItemStack = stack override def getTranslatedTabLabel = getTabLabel -} \ No newline at end of file +} diff --git a/src/main/scala/li/cil/oc/client/renderer/HighlightRenderer.scala b/src/main/scala/li/cil/oc/client/renderer/HighlightRenderer.scala index 55342a82a..eaf067fe5 100644 --- a/src/main/scala/li/cil/oc/client/renderer/HighlightRenderer.scala +++ b/src/main/scala/li/cil/oc/client/renderer/HighlightRenderer.scala @@ -1,6 +1,7 @@ package li.cil.oc.client.renderer import cpw.mods.fml.common.eventhandler.SubscribeEvent +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.client.Textures @@ -24,7 +25,7 @@ import scala.util.Random object HighlightRenderer { private val random = new Random() - lazy val tablet = api.Items.get("tablet") + lazy val tablet = api.Items.get(Constants.ItemName.Tablet) @SubscribeEvent def onDrawBlockHighlight(e: DrawBlockHighlightEvent): Unit = { diff --git a/src/main/scala/li/cil/oc/client/renderer/item/ItemRenderer.scala b/src/main/scala/li/cil/oc/client/renderer/item/ItemRenderer.scala index a7b75a106..ef519b464 100644 --- a/src/main/scala/li/cil/oc/client/renderer/item/ItemRenderer.scala +++ b/src/main/scala/li/cil/oc/client/renderer/item/ItemRenderer.scala @@ -1,5 +1,6 @@ package li.cil.oc.client.renderer.item +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.api.detail.ItemInfo @@ -31,12 +32,12 @@ object ItemRenderer extends IItemRenderer { val renderItem = new RenderItem() renderItem.setRenderManager(RenderManager.instance) - lazy val craftingUpgrade = api.Items.get("craftingUpgrade") - lazy val generatorUpgrade = api.Items.get("generatorUpgrade") - lazy val inventoryUpgrade = api.Items.get("inventoryUpgrade") - lazy val drone = api.Items.get("drone") + lazy val craftingUpgrade = api.Items.get(Constants.ItemName.CraftingUpgrade) + lazy val generatorUpgrade = api.Items.get(Constants.ItemName.GeneratorUpgrade) + lazy val inventoryUpgrade = api.Items.get(Constants.ItemName.InventoryUpgrade) + lazy val drone = api.Items.get(Constants.ItemName.Drone) - lazy val floppy = api.Items.get("floppy") + lazy val floppy = api.Items.get(Constants.ItemName.Floppy) lazy val lootDisk = api.Items.get("lootDisk") lazy val print = api.Items.get("print") @@ -79,21 +80,21 @@ object ItemRenderer extends IItemRenderer { // Revert offset introduced by the render "helper". GL11.glTranslatef(0.5f, 0.5f, 0.5f) - if (descriptor == api.Items.get("craftingUpgrade")) { + if (descriptor == api.Items.get(Constants.ItemName.CraftingUpgrade)) { tm.bindTexture(Textures.upgradeCrafting) drawSimpleBlock() RenderState.checkError(getClass.getName + ".renderItem: crafting upgrade") } - else if (descriptor == api.Items.get("generatorUpgrade")) { + else if (descriptor == api.Items.get(Constants.ItemName.GeneratorUpgrade)) { tm.bindTexture(Textures.upgradeGenerator) drawSimpleBlock(if (Item.dataTag(stack).getInteger("remainingTicks") > 0) 0.5f else 0) RenderState.checkError(getClass.getName + ".renderItem: generator upgrade") } - else if (descriptor == api.Items.get("inventoryUpgrade")) { + else if (descriptor == api.Items.get(Constants.ItemName.InventoryUpgrade)) { tm.bindTexture(Textures.upgradeInventory) drawSimpleBlock() diff --git a/src/main/scala/li/cil/oc/client/renderer/tileentity/RobotRenderer.scala b/src/main/scala/li/cil/oc/client/renderer/tileentity/RobotRenderer.scala index b15eb774f..a223b60e5 100644 --- a/src/main/scala/li/cil/oc/client/renderer/tileentity/RobotRenderer.scala +++ b/src/main/scala/li/cil/oc/client/renderer/tileentity/RobotRenderer.scala @@ -19,6 +19,7 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer import net.minecraft.init.Items import net.minecraft.item.ItemBlock import net.minecraft.tileentity.TileEntity +import net.minecraft.util.EnumChatFormatting import net.minecraft.util.Vec3 import net.minecraftforge.client.IItemRenderer.ItemRenderType import net.minecraftforge.client.IItemRenderer.ItemRenderType._ @@ -459,7 +460,7 @@ object RobotRenderer extends TileEntitySpecialRenderer { t.draw GL11.glEnable(GL11.GL_TEXTURE_2D) // For the font. - f.drawString(name, -halfWidth, 0, 0xFFFFFFFF) + f.drawString((if (EventHandler.isItTime) EnumChatFormatting.OBFUSCATED.toString else "") + name, -halfWidth, 0, 0xFFFFFFFF) GL11.glDepthMask(true) GL11.glEnable(GL11.GL_LIGHTING) diff --git a/src/main/scala/li/cil/oc/client/renderer/tileentity/ScreenRenderer.scala b/src/main/scala/li/cil/oc/client/renderer/tileentity/ScreenRenderer.scala index 0d9ce2429..f6c735851 100644 --- a/src/main/scala/li/cil/oc/client/renderer/tileentity/ScreenRenderer.scala +++ b/src/main/scala/li/cil/oc/client/renderer/tileentity/ScreenRenderer.scala @@ -1,5 +1,6 @@ package li.cil.oc.client.renderer.tileentity +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.client.Textures @@ -24,7 +25,10 @@ object ScreenRenderer extends TileEntitySpecialRenderer { private var screen: Screen = null - private lazy val screens = Set(api.Items.get("screen1"), api.Items.get("screen2"), api.Items.get("screen3")) + private lazy val screens = Set( + api.Items.get(Constants.BlockName.ScreenTier1), + api.Items.get(Constants.BlockName.ScreenTier2), + api.Items.get(Constants.BlockName.ScreenTier3)) private val canUseBlendColor = GLContext.getCapabilities.OpenGL14 diff --git a/src/main/scala/li/cil/oc/common/EventHandler.scala b/src/main/scala/li/cil/oc/common/EventHandler.scala index ea38c731c..eaf3223a8 100644 --- a/src/main/scala/li/cil/oc/common/EventHandler.scala +++ b/src/main/scala/li/cil/oc/common/EventHandler.scala @@ -227,12 +227,12 @@ object EventHandler { keyboards.foreach(_.releasePressedKeys(e.player)) } - lazy val drone = api.Items.get("drone") - lazy val eeprom = api.Items.get("eeprom") - lazy val mcu = api.Items.get("microcontroller") - lazy val navigationUpgrade = api.Items.get("navigationUpgrade") - lazy val robot = api.Items.get("robot") - lazy val tablet = api.Items.get("tablet") + lazy val drone = api.Items.get(Constants.ItemName.Drone) + lazy val eeprom = api.Items.get(Constants.ItemName.EEPROM) + lazy val mcu = api.Items.get(Constants.BlockName.Microcontroller) + lazy val navigationUpgrade = api.Items.get(Constants.ItemName.NavigationUpgrade) + lazy val robot = api.Items.get(Constants.BlockName.Robot) + lazy val tablet = api.Items.get(Constants.ItemName.Tablet) @SubscribeEvent def onCrafting(e: ItemCraftedEvent) = { @@ -274,7 +274,7 @@ object EventHandler { if (Settings.get.presentChance > 0 && !didRecraft && api.Items.get(e.crafting) != null && e.player.getRNG.nextFloat() < Settings.get.presentChance && timeForPresents) { // Presents! - val present = api.Items.get("present").createItemStack(1) + val present = api.Items.get(Constants.ItemName.Present).createItemStack(1) e.player.worldObj.playSoundAtEntity(e.player, "note.pling", 0.2f, 1f) InventoryUtils.addToPlayerInventory(present, e.player) } @@ -297,6 +297,13 @@ object EventHandler { (month == Calendar.DECEMBER && dayOfMonth == 14) } + def isItTime = { + val now = Calendar.getInstance() + val month = now.get(Calendar.MONTH) + val dayOfMonth = now.get(Calendar.DAY_OF_MONTH) + month == Calendar.APRIL && dayOfMonth == 1 + } + private def recraft(e: ItemCraftedEvent, item: ItemInfo, callback: ItemStack => Option[ItemStack]): Boolean = { if (api.Items.get(e.crafting) == item) { for (slot <- 0 until e.craftMatrix.getSizeInventory) { diff --git a/src/main/scala/li/cil/oc/common/PacketHandler.scala b/src/main/scala/li/cil/oc/common/PacketHandler.scala index cff654487..5ef7ef4d0 100644 --- a/src/main/scala/li/cil/oc/common/PacketHandler.scala +++ b/src/main/scala/li/cil/oc/common/PacketHandler.scala @@ -6,6 +6,7 @@ import java.util.zip.GZIPInputStream import io.netty.buffer.ByteBuf import io.netty.buffer.ByteBufInputStream +import li.cil.oc.Constants import li.cil.oc.OpenComputers import li.cil.oc.api import li.cil.oc.common.block.RobotAfterimage @@ -43,7 +44,7 @@ abstract class PacketHandler { */ protected def world(player: EntityPlayer, dimension: Int): Option[World] - protected def dispatch(p: PacketParser) + protected def dispatch(p: PacketParser): Unit protected class PacketParser(stream: InputStream, val player: EntityPlayer) extends DataInputStream(stream) { val packetType = PacketType(readByte()) @@ -58,7 +59,7 @@ abstract class PacketHandler { // In case a robot moved away before the packet arrived. This is // mostly used when the robot *starts* moving while the client sends // a request to the server. - api.Items.get("robotAfterimage").block match { + api.Items.get(Constants.BlockName.RobotAfterimage).block match { case afterimage: RobotAfterimage => afterimage.findMovingRobot(world, x, y, z) match { case Some(robot) if classTag[T].runtimeClass.isAssignableFrom(robot.proxy.getClass) => return Some(robot.proxy.asInstanceOf[T]) diff --git a/src/main/scala/li/cil/oc/common/block/Item.scala b/src/main/scala/li/cil/oc/common/block/Item.scala index 42a121d6b..b9ba7195b 100644 --- a/src/main/scala/li/cil/oc/common/block/Item.scala +++ b/src/main/scala/li/cil/oc/common/block/Item.scala @@ -2,6 +2,7 @@ package li.cil.oc.common.block import java.util +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.client.KeyBindings @@ -67,7 +68,7 @@ class Item(value: Block) extends ItemBlock(value) { // When placing robots in creative mode, we have to copy the stack // manually before it's placed to ensure different component addresses // in the different robots, to avoid interference of screens e.g. - val needsCopying = player.capabilities.isCreativeMode && api.Items.get(stack) == api.Items.get("robot") + val needsCopying = player.capabilities.isCreativeMode && api.Items.get(stack) == api.Items.get(Constants.BlockName.Robot) val stackToUse = if (needsCopying) new RobotData(stack).copyItemStack() else stack if (super.placeBlockAt(stackToUse, player, world, x, y, z, side, hitX, hitY, hitZ, metadata)) { // If it's a rotatable block try to make it face the player. diff --git a/src/main/scala/li/cil/oc/common/block/RobotAfterimage.scala b/src/main/scala/li/cil/oc/common/block/RobotAfterimage.scala index 981199ffb..4ee62195c 100644 --- a/src/main/scala/li/cil/oc/common/block/RobotAfterimage.scala +++ b/src/main/scala/li/cil/oc/common/block/RobotAfterimage.scala @@ -4,6 +4,7 @@ import java.util.Random import cpw.mods.fml.relauncher.Side import cpw.mods.fml.relauncher.SideOnly +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.common.item.data.RobotData @@ -102,7 +103,7 @@ class RobotAfterimage extends SimpleBlock with traits.SpecialBlock { override def onBlockActivated(world: World, x: Int, y: Int, z: Int, player: EntityPlayer, side: ForgeDirection, hitX: Float, hitY: Float, hitZ: Float) = { findMovingRobot(world, x, y, z) match { - case Some(robot) => api.Items.get("robot").block.onBlockActivated(world, robot.x, robot.y, robot.z, player, side.ordinal, hitX, hitY, hitZ) + case Some(robot) => api.Items.get(Constants.BlockName.Robot).block.onBlockActivated(world, robot.x, robot.y, robot.z, player, side.ordinal, hitX, hitY, hitZ) case _ => world.setBlockToAir(x, y, z) } } diff --git a/src/main/scala/li/cil/oc/common/block/RobotProxy.scala b/src/main/scala/li/cil/oc/common/block/RobotProxy.scala index 2ec184b1f..52e06a8f1 100644 --- a/src/main/scala/li/cil/oc/common/block/RobotProxy.scala +++ b/src/main/scala/li/cil/oc/common/block/RobotProxy.scala @@ -4,6 +4,7 @@ import java.util import cpw.mods.fml.relauncher.Side import cpw.mods.fml.relauncher.SideOnly +import li.cil.oc.Constants import li.cil.oc.OpenComputers import li.cil.oc.Settings import li.cil.oc.api @@ -255,7 +256,7 @@ class RobotProxy extends RedstoneAware with traits.SpecialBlock with traits.Stat robot.saveComponents() dropBlockAsItem(world, x, y, z, robot.info.createItemStack()) } - if (world.getBlock(robot.moveFromX, robot.moveFromY, robot.moveFromZ) == api.Items.get("robotAfterimage").block) { + if (world.getBlock(robot.moveFromX, robot.moveFromY, robot.moveFromZ) == api.Items.get(Constants.BlockName.RobotAfterimage).block) { world.setBlock(robot.moveFromX, robot.moveFromY, robot.moveFromZ, net.minecraft.init.Blocks.air, 0, 1) } case _ => diff --git a/src/main/scala/li/cil/oc/common/block/Screen.scala b/src/main/scala/li/cil/oc/common/block/Screen.scala index 7944f269c..5685f70ea 100644 --- a/src/main/scala/li/cil/oc/common/block/Screen.scala +++ b/src/main/scala/li/cil/oc/common/block/Screen.scala @@ -4,6 +4,7 @@ import java.util import cpw.mods.fml.relauncher.Side import cpw.mods.fml.relauncher.SideOnly +import li.cil.oc.Constants import li.cil.oc.OpenComputers import li.cil.oc.Settings import li.cil.oc.api @@ -334,7 +335,7 @@ class Screen(val tier: Int) extends RedstoneAware { def rightClick(world: World, x: Int, y: Int, z: Int, player: EntityPlayer, side: ForgeDirection, hitX: Float, hitY: Float, hitZ: Float, force: Boolean) = { if (Wrench.holdsApplicableWrench(player, BlockPosition(x, y, z)) && getValidRotations(world, x, y, z).contains(side) && !force) false - else if (api.Items.get(player.getHeldItem) == api.Items.get("analyzer")) false + else if (api.Items.get(player.getHeldItem) == api.Items.get(Constants.ItemName.Analyzer)) false else world.getTileEntity(x, y, z) match { case screen: tileentity.Screen if screen.hasKeyboard && (force || player.isSneaking == screen.invertTouchMode) => // Yep, this GUI is actually purely client side. We could skip this diff --git a/src/main/scala/li/cil/oc/common/component/Terminal.scala b/src/main/scala/li/cil/oc/common/component/Terminal.scala index d24c6ed75..961eb1653 100644 --- a/src/main/scala/li/cil/oc/common/component/Terminal.scala +++ b/src/main/scala/li/cil/oc/common/component/Terminal.scala @@ -2,6 +2,7 @@ package li.cil.oc.common.component import cpw.mods.fml.relauncher.Side import cpw.mods.fml.relauncher.SideOnly +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.api.component.Keyboard.UsabilityChecker @@ -22,7 +23,7 @@ import scala.collection.mutable class Terminal(val rack: tileentity.ServerRack, val number: Int) { val buffer = { - val screenItem = api.Items.get("screen1").createItemStack(1) + val screenItem = api.Items.get(Constants.BlockName.ScreenTier1).createItemStack(1) val buffer = api.Driver.driverFor(screenItem, rack.getClass).createEnvironment(screenItem, rack).asInstanceOf[api.component.TextBuffer] val (maxWidth, maxHeight) = Settings.screenResolutionsByTier(Tier.Three) buffer.setMaximumResolution(maxWidth, maxHeight) @@ -31,7 +32,7 @@ class Terminal(val rack: tileentity.ServerRack, val number: Int) { } val keyboard = { - val keyboardItem = api.Items.get("keyboard").createItemStack(1) + val keyboardItem = api.Items.get(Constants.BlockName.Keyboard).createItemStack(1) val keyboard = api.Driver.driverFor(keyboardItem, rack.getClass).createEnvironment(keyboardItem, rack).asInstanceOf[api.component.Keyboard] keyboard.setUsableOverride(new UsabilityChecker { override def isUsableByPlayer(keyboard: api.component.Keyboard, player: EntityPlayer) = { diff --git a/src/main/scala/li/cil/oc/common/component/TextBuffer.scala b/src/main/scala/li/cil/oc/common/component/TextBuffer.scala index 221b98e0d..61180803e 100644 --- a/src/main/scala/li/cil/oc/common/component/TextBuffer.scala +++ b/src/main/scala/li/cil/oc/common/component/TextBuffer.scala @@ -4,6 +4,7 @@ import com.google.common.base.Strings import cpw.mods.fml.common.eventhandler.SubscribeEvent import cpw.mods.fml.relauncher.Side import cpw.mods.fml.relauncher.SideOnly +import li.cil.oc.Constants import li.cil.oc.OpenComputers import li.cil.oc.Settings import li.cil.oc.api @@ -684,7 +685,7 @@ object TextBuffer { ClientPacketSender.sendCopyToAnalyzer(nodeAddress, line) } - private lazy val Debugger = api.Items.get("debugger") + private lazy val Debugger = api.Items.get(Constants.ItemName.Debugger) private def debug(message: String) { if (Minecraft.getMinecraft != null && Minecraft.getMinecraft.thePlayer != null && api.Items.get(Minecraft.getMinecraft.thePlayer.getHeldItem) == Debugger) { diff --git a/src/main/scala/li/cil/oc/common/entity/Drone.scala b/src/main/scala/li/cil/oc/common/entity/Drone.scala index 899a9848f..697a8e301 100644 --- a/src/main/scala/li/cil/oc/common/entity/Drone.scala +++ b/src/main/scala/li/cil/oc/common/entity/Drone.scala @@ -5,6 +5,7 @@ import java.util.UUID import cpw.mods.fml.relauncher.Side import cpw.mods.fml.relauncher.SideOnly +import li.cil.oc.Constants import li.cil.oc.Localization import li.cil.oc.OpenComputers import li.cil.oc.Settings @@ -352,7 +353,7 @@ class Drone(val world: World) extends Entity(world) with MachineHost with intern machine.node.remove() components.disconnectComponents() components.saveComponents() - val stack = api.Items.get("drone").createItemStack(1) + val stack = api.Items.get(Constants.ItemName.Drone).createItemStack(1) info.storedEnergy = control.node.localBuffer.toInt info.save(stack) val entity = new EntityItem(world, posX, posY, posZ, stack) diff --git a/src/main/scala/li/cil/oc/common/init/Blocks.scala b/src/main/scala/li/cil/oc/common/init/Blocks.scala index 40857c986..90bf30df0 100644 --- a/src/main/scala/li/cil/oc/common/init/Blocks.scala +++ b/src/main/scala/li/cil/oc/common/init/Blocks.scala @@ -1,6 +1,7 @@ package li.cil.oc.common.init import cpw.mods.fml.common.registry.GameRegistry +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.common.Tier import li.cil.oc.common.block._ @@ -34,55 +35,36 @@ object Blocks { GameRegistry.registerTileEntity(classOf[tileentity.Screen], Settings.namespace + "screen") GameRegistry.registerTileEntity(classOf[tileentity.ServerRack], Settings.namespace + "serverRack") - // IMPORTANT: the multi block must come first, since the sub blocks will - // try to register with it. Also, the order the sub blocks are created in - // must not be changed since that order determines their actual IDs. - Recipes.addBlock(new Adapter(), "adapter", "oc:adapter") - Recipes.addBlock(new Cable(), "cable", "oc:cable") - Recipes.addBlock(new Capacitor(), "capacitor", "oc:capacitor") - Recipes.addBlock(new Case(Tier.One), "case1", "oc:case1") - Recipes.addBlock(new Case(Tier.Two), "case2", "oc:case2") - Recipes.addBlock(new Case(Tier.Three), "case3", "oc:case3") - Recipes.addBlock(new Charger(), "charger", "oc:charger") - Recipes.addBlock(new DiskDrive(), "diskDrive", "oc:diskDrive") - Recipes.addBlock(new PowerDistributor(), "powerDistributor", "oc:powerDistributor") - Recipes.addBlock(new PowerConverter(), "powerConverter", "oc:powerConverter") - Recipes.addBlock(new Redstone(), "redstone", "oc:redstone") - Items.registerBlock(new RobotAfterimage(), "robotAfterimage") - Items.registerBlock(new RobotProxy(), "robot") - Recipes.addBlock(new Switch(), "switch", "oc:switch") + Recipes.addBlock(new AccessPoint(), Constants.BlockName.AccessPoint, "oc:accessPoint") + Recipes.addBlock(new Adapter(), Constants.BlockName.Adapter, "oc:adapter") + Recipes.addBlock(new Assembler(), Constants.BlockName.Assembler, "oc:assembler") + Recipes.addBlock(new Cable(), Constants.BlockName.Cable, "oc:cable") + Recipes.addBlock(new Capacitor(), Constants.BlockName.Capacitor, "oc:capacitor") + Recipes.addBlock(new Case(Tier.One), Constants.BlockName.CaseTier1, "oc:case1") + Recipes.addBlock(new Case(Tier.Three), Constants.BlockName.CaseTier3, "oc:case3") + Recipes.addBlock(new Case(Tier.Two), Constants.BlockName.CaseTier2, "oc:case2") + Recipes.addBlock(new Charger(), Constants.BlockName.Charger, "oc:charger") + Recipes.addBlock(new Disassembler(), Constants.BlockName.Disassembler, "oc:disassembler") + Recipes.addBlock(new DiskDrive(), Constants.BlockName.DiskDrive, "oc:diskDrive") + Recipes.addBlock(new Geolyzer(), Constants.BlockName.Geolyzer, "oc:geolyzer") + Recipes.addBlock(new Hologram(Tier.One), Constants.BlockName.HologramTier1, "oc:hologram1") + Recipes.addBlock(new Hologram(Tier.Two), Constants.BlockName.HologramTier2, "oc:hologram2") + Recipes.addBlock(new Keyboard(), Constants.BlockName.Keyboard, "oc:keyboard") + Recipes.addBlock(new MotionSensor(), Constants.BlockName.MotionSensor, "oc:motionSensor") + Recipes.addBlock(new PowerConverter(), Constants.BlockName.PowerConverter, "oc:powerConverter") + Recipes.addBlock(new PowerDistributor(), Constants.BlockName.PowerDistributor, "oc:powerDistributor") + Recipes.addBlock(new Raid(), Constants.BlockName.Raid, "oc:raid") + Recipes.addBlock(new Redstone(), Constants.BlockName.Redstone, "oc:redstone") + Recipes.addBlock(new Screen(Tier.One), Constants.BlockName.ScreenTier1, "oc:screen1") + Recipes.addBlock(new Screen(Tier.Three), Constants.BlockName.ScreenTier3, "oc:screen3") + Recipes.addBlock(new Screen(Tier.Two), Constants.BlockName.ScreenTier2, "oc:screen2") + Recipes.addBlock(new ServerRack(), Constants.BlockName.ServerRack, "oc:serverRack") + Recipes.addBlock(new Switch(), Constants.BlockName.Switch, "oc:switch") - // Copied to simple block for automatic conversion from old format (when - // screens did not take redstone inputs) to keep save format compatible. - Recipes.addBlock(new Screen(Tier.One), "screen1", "oc:screen1") - Recipes.addBlock(new Screen(Tier.Two), "screen2", "oc:screen2") - Recipes.addBlock(new Screen(Tier.Three), "screen3", "oc:screen3") - - // v1.2.0 - Recipes.addBlock(new ServerRack(), "serverRack", "oc:serverRack") - - // MC 1.7 - Recipes.addBlock(new Keyboard(), "keyboard", "oc:keyboard") - - // v1.2.2 - Recipes.addBlock(new Hologram(Tier.One), "hologram1", "oc:hologram1") - Recipes.addBlock(new AccessPoint(), "accessPoint", "oc:accessPoint") - - // v1.2.6 - Items.registerBlock(new Case(Tier.Four), "caseCreative") - - // v1.3.0 - Recipes.addBlock(new Hologram(Tier.Two), "hologram2", "oc:hologram2") - Recipes.addBlock(new Geolyzer(), "geolyzer", "oc:geolyzer") - Recipes.addBlock(new Assembler(), "assembler", "oc:assembler") - Recipes.addBlock(new Disassembler(), "disassembler", "oc:disassembler") - - // v1.3.2 - Recipes.addBlock(new MotionSensor(), "motionSensor", "oc:motionSensor") - - // v1.4.2 - Recipes.addBlock(new Raid(), "raid", "oc:raid") - Items.registerBlock(new Microcontroller(), "microcontroller") + Items.registerBlock(new Case(Tier.Four), Constants.BlockName.CaseCreative) + Items.registerBlock(new Microcontroller(), Constants.BlockName.Microcontroller) + Items.registerBlock(new RobotAfterimage(), Constants.BlockName.RobotAfterimage) + Items.registerBlock(new RobotProxy(), Constants.BlockName.Robot) // v1.5.4 Items.registerBlock(new Print(), "print") diff --git a/src/main/scala/li/cil/oc/common/init/Items.scala b/src/main/scala/li/cil/oc/common/init/Items.scala index e6ac8bdd1..c560c8723 100644 --- a/src/main/scala/li/cil/oc/common/init/Items.scala +++ b/src/main/scala/li/cil/oc/common/init/Items.scala @@ -1,6 +1,7 @@ package li.cil.oc.common.init import cpw.mods.fml.common.registry.GameRegistry +import li.cil.oc.Constants import li.cil.oc.OpenComputers import li.cil.oc.Settings import li.cil.oc.api.detail.ItemAPI @@ -137,7 +138,7 @@ object Items extends ItemAPI { val nbt = new NBTTagCompound() nbt.setTag(Settings.namespace + "data", data) - val stack = get("eeprom").createItemStack(amount) + val stack = get(Constants.ItemName.EEPROM).createItemStack(amount) stack.setTagCompound(nbt) stack @@ -150,21 +151,21 @@ object Items extends ItemAPI { data.tier = Tier.Four data.storedEnergy = Settings.get.bufferDrone.toInt data.components = Array( - get("inventoryUpgrade").createItemStack(1), - get("inventoryUpgrade").createItemStack(1), - get("inventoryControllerUpgrade").createItemStack(1), - get("tankUpgrade").createItemStack(1), - get("tankControllerUpgrade").createItemStack(1), - get("leashUpgrade").createItemStack(1), + get(Constants.ItemName.InventoryUpgrade).createItemStack(1), + get(Constants.ItemName.InventoryUpgrade).createItemStack(1), + get(Constants.ItemName.InventoryControllerUpgrade).createItemStack(1), + get(Constants.ItemName.TankUpgrade).createItemStack(1), + get(Constants.ItemName.TankControllerUpgrade).createItemStack(1), + get(Constants.ItemName.LeashUpgrade).createItemStack(1), - get("wlanCard").createItemStack(1), + get(Constants.ItemName.WirelessNetworkCard).createItemStack(1), - get("cpu3").createItemStack(1), - get("ram6").createItemStack(1), - get("ram6").createItemStack(1) + get(Constants.ItemName.CPUTier3).createItemStack(1), + get(Constants.ItemName.RAMTier6).createItemStack(1), + get(Constants.ItemName.RAMTier6).createItemStack(1) ) - val stack = get("drone").createItemStack(1) + val stack = get(Constants.ItemName.Drone).createItemStack(1) data.save(stack) stack @@ -176,18 +177,18 @@ object Items extends ItemAPI { data.tier = Tier.Four data.storedEnergy = Settings.get.bufferMicrocontroller.toInt data.components = Array( - get("signUpgrade").createItemStack(1), - get("pistonUpgrade").createItemStack(1), + get(Constants.ItemName.SignUpgrade).createItemStack(1), + get(Constants.ItemName.PistonUpgrade).createItemStack(1), - get("redstoneCard2").createItemStack(1), - get("wlanCard").createItemStack(1), + get(Constants.ItemName.RedstoneCardTier2).createItemStack(1), + get(Constants.ItemName.WirelessNetworkCard).createItemStack(1), - get("cpu3").createItemStack(1), - get("ram6").createItemStack(1), - get("ram6").createItemStack(1) + get(Constants.ItemName.CPUTier3).createItemStack(1), + get(Constants.ItemName.RAMTier6).createItemStack(1), + get(Constants.ItemName.RAMTier6).createItemStack(1) ) - val stack = get("microcontroller").createItemStack(1) + val stack = get(Constants.BlockName.Microcontroller).createItemStack(1) data.save(stack) stack @@ -201,33 +202,33 @@ object Items extends ItemAPI { data.robotEnergy = Settings.get.bufferRobot.toInt data.totalEnergy = data.robotEnergy data.components = Array( - get("screen1").createItemStack(1), - get("keyboard").createItemStack(1), - get("inventoryUpgrade").createItemStack(1), - get("inventoryUpgrade").createItemStack(1), - get("inventoryUpgrade").createItemStack(1), - get("inventoryUpgrade").createItemStack(1), - get("inventoryControllerUpgrade").createItemStack(1), - get("tankUpgrade").createItemStack(1), - get("tankControllerUpgrade").createItemStack(1), - get("craftingUpgrade").createItemStack(1), + get(Constants.BlockName.ScreenTier1).createItemStack(1), + get(Constants.BlockName.Keyboard).createItemStack(1), + get(Constants.ItemName.InventoryUpgrade).createItemStack(1), + get(Constants.ItemName.InventoryUpgrade).createItemStack(1), + get(Constants.ItemName.InventoryUpgrade).createItemStack(1), + get(Constants.ItemName.InventoryUpgrade).createItemStack(1), + get(Constants.ItemName.InventoryControllerUpgrade).createItemStack(1), + get(Constants.ItemName.TankUpgrade).createItemStack(1), + get(Constants.ItemName.TankControllerUpgrade).createItemStack(1), + get(Constants.ItemName.CraftingUpgrade).createItemStack(1), - get("graphicsCard3").createItemStack(1), - get("redstoneCard2").createItemStack(1), - get("wlanCard").createItemStack(1), - get("internetCard").createItemStack(1), + get(Constants.ItemName.GraphicsCardTier3).createItemStack(1), + get(Constants.ItemName.RedstoneCardTier2).createItemStack(1), + get(Constants.ItemName.WirelessNetworkCard).createItemStack(1), + get(Constants.ItemName.InternetCard).createItemStack(1), - get("cpu3").createItemStack(1), - get("ram6").createItemStack(1), - get("ram6").createItemStack(1), + get(Constants.ItemName.CPUTier3).createItemStack(1), + get(Constants.ItemName.RAMTier6).createItemStack(1), + get(Constants.ItemName.RAMTier6).createItemStack(1), createLuaBios(), createOpenOS(), - get("hdd3").createItemStack(1) + get(Constants.ItemName.HDDTier3).createItemStack(1) ) data.containers = Array( - get("cardContainer3").createItemStack(1), - get("upgradeContainer3").createItemStack(1), + get(Constants.ItemName.CardContainerTier3).createItemStack(1), + get(Constants.ItemName.UpgradeContainerTier3).createItemStack(1), get("diskDrive").createItemStack(1) ) @@ -244,27 +245,27 @@ object Items extends ItemAPI { data.energy = Settings.get.bufferTablet data.maxEnergy = data.energy data.items = Array( - Option(get("screen1").createItemStack(1)), - Option(get("keyboard").createItemStack(1)), + Option(get(Constants.BlockName.ScreenTier1).createItemStack(1)), + Option(get(Constants.BlockName.Keyboard).createItemStack(1)), - Option(get("signUpgrade").createItemStack(1)), - Option(get("pistonUpgrade").createItemStack(1)), + Option(get(Constants.ItemName.SignUpgrade).createItemStack(1)), + Option(get(Constants.ItemName.PistonUpgrade).createItemStack(1)), - Option(get("graphicsCard2").createItemStack(1)), - Option(get("redstoneCard2").createItemStack(1)), - Option(get("wlanCard").createItemStack(1)), + Option(get(Constants.ItemName.GraphicsCardTier2).createItemStack(1)), + Option(get(Constants.ItemName.RedstoneCardTier2).createItemStack(1)), + Option(get(Constants.ItemName.WirelessNetworkCard).createItemStack(1)), - Option(get("cpu3").createItemStack(1)), - Option(get("ram6").createItemStack(1)), - Option(get("ram6").createItemStack(1)), + Option(get(Constants.ItemName.CPUTier3).createItemStack(1)), + Option(get(Constants.ItemName.RAMTier6).createItemStack(1)), + Option(get(Constants.ItemName.RAMTier6).createItemStack(1)), Option(createLuaBios()), Option(createOpenOS()), - Option(get("hdd3").createItemStack(1)) + Option(get(Constants.ItemName.HDDTier3).createItemStack(1)) ) data.container = Option(get("diskDrive").createItemStack(1)) - val stack = get("tablet").createItemStack(1) + val stack = get(Constants.ItemName.Tablet).createItemStack(1) data.save(stack) stack diff --git a/src/main/scala/li/cil/oc/common/item/Analyzer.scala b/src/main/scala/li/cil/oc/common/item/Analyzer.scala index b12b871d5..0fd0be0be 100644 --- a/src/main/scala/li/cil/oc/common/item/Analyzer.scala +++ b/src/main/scala/li/cil/oc/common/item/Analyzer.scala @@ -1,6 +1,7 @@ package li.cil.oc.common.item import cpw.mods.fml.common.eventhandler.SubscribeEvent +import li.cil.oc.Constants import li.cil.oc.Localization import li.cil.oc.Settings import li.cil.oc.api @@ -18,7 +19,7 @@ import net.minecraftforge.common.util.ForgeDirection import net.minecraftforge.event.entity.player.EntityInteractEvent object Analyzer { - private lazy val analyzer = api.Items.get("analyzer") + private lazy val analyzer = api.Items.get(Constants.ItemName.Analyzer) @SubscribeEvent def onInteract(e: EntityInteractEvent): Unit = { diff --git a/src/main/scala/li/cil/oc/common/item/Present.scala b/src/main/scala/li/cil/oc/common/item/Present.scala index 8b921790d..943d50f95 100644 --- a/src/main/scala/li/cil/oc/common/item/Present.scala +++ b/src/main/scala/li/cil/oc/common/item/Present.scala @@ -2,6 +2,7 @@ package li.cil.oc.common.item import java.util.Random +import li.cil.oc.Constants import li.cil.oc.OpenComputers import li.cil.oc.api import li.cil.oc.util.InventoryUtils @@ -46,82 +47,82 @@ object Present { } } - add("arrowKeys", 520) - add("buttonGroup", 460) - add("numPad", 410) - add("disk", 370) - add("transistor", 350) - add("floppy", 340) - add("printedCircuitBoard", 320) - add("chip1", 290) - add("eeprom", 250) - add("interweb", 220) - add("card", 190) - add("analyzer", 170) - add("signUpgrade", 150) - add("inventoryUpgrade", 130) - add("craftingUpgrade", 110) - add("tankUpgrade", 90) - add("pistonUpgrade", 80) - add("leashUpgrade", 70) - add("angelUpgrade", 55) - add("redstoneCard1", 50) - add("ram1", 48) - add("cu", 46) - add("alu", 45) - add("batteryUpgrade1", 43) - add("lanCard", 38) - add("hdd1", 36) - add("generatorUpgrade", 35) - add("cpu1", 31) - add("microcontrollerCase1", 30) - add("droneCase1", 25) - add("upgradeContainer1", 23) - add("cardContainer1", 23) - add("graphicsCard1", 19) - add("redstoneCard2", 17) - add("ram2", 15) - add("databaseUpgrade1", 15) - add("chip2", 15) - add("componentBus1", 13) - add("batteryUpgrade2", 12) - add("wlanCard", 11) - add("ram3", 10) - add("server1", 10) - add("internetCard", 9) - add("terminal", 9) - add("solarGeneratorUpgrade", 9) - add("hdd2", 7) - add("navigationUpgrade", 7) - add("inventoryControllerUpgrade", 7) - add("tankControllerUpgrade", 7) - add("cpu2", 6) - add("microcontrollerCase2", 6) - add("componentBus2", 6) - add("tabletCase1", 5) - add("upgradeContainer2", 5) - add("cardContainer2", 5) - add("graphicsCard2", 4) - add("ram4", 4) - add("droneCase2", 4) - add("databaseUpgrade2", 4) - add("server2", 4) - add("chip3", 3) - add("componentBus3", 3) - add("tractorBeamUpgrade", 3) - add("batteryUpgrade3", 3) - add("experienceUpgrade", 2) - add("ram5", 2) - add("upgradeContainer3", 2) - add("cardContainer3", 2) - add("tabletCase2", 1) - add("hdd3", 1) - add("chunkloaderUpgrade", 1) - add("cpu3", 1) - add("graphicsCard3", 1) - add("server3", 1) - add("databaseUpgrade3", 1) - add("ram6", 1) + add(Constants.ItemName.ArrowKeys, 520) + add(Constants.ItemName.ButtonGroup, 460) + add(Constants.ItemName.NumPad, 410) + add(Constants.ItemName.Disk, 370) + add(Constants.ItemName.Transistor, 350) + add(Constants.ItemName.Floppy, 340) + add(Constants.ItemName.PrintedCircuitBoard, 320) + add(Constants.ItemName.Chip1, 290) + add(Constants.ItemName.EEPROM, 250) + add(Constants.ItemName.Interweb, 220) + add(Constants.ItemName.Card, 190) + add(Constants.ItemName.Analyzer, 170) + add(Constants.ItemName.SignUpgrade, 150) + add(Constants.ItemName.InventoryUpgrade, 130) + add(Constants.ItemName.CraftingUpgrade, 110) + add(Constants.ItemName.TankUpgrade, 90) + add(Constants.ItemName.PistonUpgrade, 80) + add(Constants.ItemName.LeashUpgrade, 70) + add(Constants.ItemName.AngelUpgrade, 55) + add(Constants.ItemName.RedstoneCardTier1, 50) + add(Constants.ItemName.RAMTier1, 48) + add(Constants.ItemName.ControlUnit, 46) + add(Constants.ItemName.Alu, 45) + add(Constants.ItemName.BatteryUpgradeTier1, 43) + add(Constants.ItemName.NetworkCard, 38) + add(Constants.ItemName.HDDTier1, 36) + add(Constants.ItemName.GeneratorUpgrade, 35) + add(Constants.ItemName.CPUTier1, 31) + add(Constants.ItemName.MicrocontrollerCaseTier1, 30) + add(Constants.ItemName.DroneCaseTier1, 25) + add(Constants.ItemName.UpgradeContainerTier1, 23) + add(Constants.ItemName.CardContainerTier1, 23) + add(Constants.ItemName.GraphicsCardTier1, 19) + add(Constants.ItemName.RedstoneCardTier2, 17) + add(Constants.ItemName.RAMTier2, 15) + add(Constants.ItemName.DatabaseUpgradeTier1, 15) + add(Constants.ItemName.Chip2, 15) + add(Constants.ItemName.ComponentBusTier1, 13) + add(Constants.ItemName.BatteryUpgradeTier2, 12) + add(Constants.ItemName.WirelessNetworkCard, 11) + add(Constants.ItemName.RAMTier3, 10) + add(Constants.ItemName.ServerTier1, 10) + add(Constants.ItemName.InternetCard, 9) + add(Constants.ItemName.Terminal, 9) + add(Constants.ItemName.SolarGeneratorUpgrade, 9) + add(Constants.ItemName.HDDTier2, 7) + add(Constants.ItemName.NavigationUpgrade, 7) + add(Constants.ItemName.InventoryControllerUpgrade, 7) + add(Constants.ItemName.TankControllerUpgrade, 7) + add(Constants.ItemName.CPUTier2, 6) + add(Constants.ItemName.MicrocontrollerCaseTier2, 6) + add(Constants.ItemName.ComponentBusTier2, 6) + add(Constants.ItemName.TabletCaseTier1, 5) + add(Constants.ItemName.UpgradeContainerTier2, 5) + add(Constants.ItemName.CardContainerTier2, 5) + add(Constants.ItemName.GraphicsCardTier2, 4) + add(Constants.ItemName.RAMTier4, 4) + add(Constants.ItemName.DroneCaseTier2, 4) + add(Constants.ItemName.DatabaseUpgradeTier2, 4) + add(Constants.ItemName.ServerTier2, 4) + add(Constants.ItemName.Chip3, 3) + add(Constants.ItemName.ComponentBusTier3, 3) + add(Constants.ItemName.TractorBeamUpgrade, 3) + add(Constants.ItemName.BatteryUpgradeTier3, 3) + add(Constants.ItemName.ExperienceUpgrade, 2) + add(Constants.ItemName.RAMTier5, 2) + add(Constants.ItemName.UpgradeContainerTier3, 2) + add(Constants.ItemName.CardContainerTier3, 2) + add(Constants.ItemName.TabletCaseTier2, 1) + add(Constants.ItemName.HDDTier3, 1) + add(Constants.ItemName.ChunkloaderUpgrade, 1) + add(Constants.ItemName.CPUTier3, 1) + add(Constants.ItemName.GraphicsCardTier3, 1) + add(Constants.ItemName.ServerTier3, 1) + add(Constants.ItemName.DatabaseUpgradeTier3, 1) + add(Constants.ItemName.RAMTier6, 1) result.toArray } diff --git a/src/main/scala/li/cil/oc/common/item/Tablet.scala b/src/main/scala/li/cil/oc/common/item/Tablet.scala index f6316cc48..419b3068c 100644 --- a/src/main/scala/li/cil/oc/common/item/Tablet.scala +++ b/src/main/scala/li/cil/oc/common/item/Tablet.scala @@ -14,6 +14,7 @@ import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent import cpw.mods.fml.common.gameevent.TickEvent.ServerTickEvent import cpw.mods.fml.relauncher.Side import cpw.mods.fml.relauncher.SideOnly +import li.cil.oc.Constants import li.cil.oc.Localization import li.cil.oc.OpenComputers import li.cil.oc.Settings @@ -125,7 +126,7 @@ class Tablet(val parent: Delegator) extends Delegate { entity match { case player: EntityPlayer => // Play an audio cue to let players know when they finished analyzing a block. - if (world.isRemote && player.getItemInUseDuration == TimeToAnalyze && api.Items.get(player.getItemInUse) == api.Items.get("tablet")) { + if (world.isRemote && player.getItemInUseDuration == TimeToAnalyze && api.Items.get(player.getItemInUse) == api.Items.get(Constants.ItemName.Tablet)) { Audio.play(player.posX.toFloat, player.posY.toFloat + 2, player.posZ.toFloat, ".") } Tablet.get(stack, player).update(world, player, slot, selected) diff --git a/src/main/scala/li/cil/oc/common/item/data/MicrocontrollerData.scala b/src/main/scala/li/cil/oc/common/item/data/MicrocontrollerData.scala index b61ec4aba..03ea3f7bd 100644 --- a/src/main/scala/li/cil/oc/common/item/data/MicrocontrollerData.scala +++ b/src/main/scala/li/cil/oc/common/item/data/MicrocontrollerData.scala @@ -1,5 +1,6 @@ package li.cil.oc.common.item.data +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.common.Tier @@ -41,7 +42,7 @@ class MicrocontrollerData extends ItemData { } def createItemStack() = { - val stack = api.Items.get("microcontroller").createItemStack(1) + val stack = api.Items.get(Constants.BlockName.Microcontroller).createItemStack(1) save(stack) stack } diff --git a/src/main/scala/li/cil/oc/common/item/data/RaidData.scala b/src/main/scala/li/cil/oc/common/item/data/RaidData.scala index b98f7b19d..ec222f4c8 100644 --- a/src/main/scala/li/cil/oc/common/item/data/RaidData.scala +++ b/src/main/scala/li/cil/oc/common/item/data/RaidData.scala @@ -1,8 +1,8 @@ package li.cil.oc.common.item.data +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api -import li.cil.oc.common.tileentity import li.cil.oc.util.ExtendedNBT._ import li.cil.oc.util.ItemUtils import net.minecraft.item.ItemStack @@ -37,7 +37,7 @@ class RaidData extends ItemData { } def createItemStack() = { - val stack = api.Items.get("raid").createItemStack(1) + val stack = api.Items.get(Constants.BlockName.Raid).createItemStack(1) save(stack) stack } diff --git a/src/main/scala/li/cil/oc/common/item/data/RobotData.scala b/src/main/scala/li/cil/oc/common/item/data/RobotData.scala index 50d46acd5..b79b1f5b8 100644 --- a/src/main/scala/li/cil/oc/common/item/data/RobotData.scala +++ b/src/main/scala/li/cil/oc/common/item/data/RobotData.scala @@ -2,6 +2,7 @@ package li.cil.oc.common.item.data import com.google.common.base.Charsets import com.google.common.base.Strings +import li.cil.oc.Constants import li.cil.oc.OpenComputers import li.cil.oc.Settings import li.cil.oc.api @@ -86,7 +87,7 @@ class RobotData extends ItemData { } def createItemStack() = { - val stack = api.Items.get("robot").createItemStack(1) + val stack = api.Items.get(Constants.BlockName.Robot).createItemStack(1) save(stack) stack } diff --git a/src/main/scala/li/cil/oc/common/recipe/ExtendedRecipe.scala b/src/main/scala/li/cil/oc/common/recipe/ExtendedRecipe.scala index ced4dfc83..a76367cbe 100644 --- a/src/main/scala/li/cil/oc/common/recipe/ExtendedRecipe.scala +++ b/src/main/scala/li/cil/oc/common/recipe/ExtendedRecipe.scala @@ -2,6 +2,7 @@ package li.cil.oc.common.recipe import java.util.UUID +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.api.detail.ItemInfo @@ -23,20 +24,20 @@ import scala.collection.convert.WrapAsScala._ import scala.util.control.Breaks._ object ExtendedRecipe { - private lazy val drone = api.Items.get("drone") - private lazy val eeprom = api.Items.get("eeprom") + private lazy val drone = api.Items.get(Constants.ItemName.Drone) + private lazy val eeprom = api.Items.get(Constants.ItemName.EEPROM) private lazy val luaBios = Items.createLuaBios() - private lazy val mcu = api.Items.get("microcontroller") - private lazy val navigationUpgrade = api.Items.get("navigationUpgrade") - private lazy val linkedCard = api.Items.get("linkedCard") - private lazy val floppy = api.Items.get("floppy") + private lazy val mcu = api.Items.get(Constants.BlockName.Microcontroller) + private lazy val navigationUpgrade = api.Items.get(Constants.ItemName.NavigationUpgrade) + private lazy val linkedCard = api.Items.get(Constants.ItemName.LinkedCard) + private lazy val floppy = api.Items.get(Constants.ItemName.Floppy) private lazy val hdds = Array( - api.Items.get("hdd1"), - api.Items.get("hdd2"), - api.Items.get("hdd3") + api.Items.get(Constants.ItemName.HDDTier1), + api.Items.get(Constants.ItemName.HDDTier2), + api.Items.get(Constants.ItemName.HDDTier3) ) - private lazy val robot = api.Items.get("robot") - private lazy val tablet = api.Items.get("tablet") + private lazy val robot = api.Items.get(Constants.BlockName.Robot) + private lazy val tablet = api.Items.get(Constants.ItemName.Tablet) private lazy val print = api.Items.get("print") private lazy val disabled = { val stack = new ItemStack(Blocks.dirt) diff --git a/src/main/scala/li/cil/oc/common/recipe/Recipes.scala b/src/main/scala/li/cil/oc/common/recipe/Recipes.scala index f7ea0e809..6997a52d2 100644 --- a/src/main/scala/li/cil/oc/common/recipe/Recipes.scala +++ b/src/main/scala/li/cil/oc/common/recipe/Recipes.scala @@ -122,14 +122,14 @@ object Recipes { } // Recrafting operations. - val navigationUpgrade = api.Items.get("navigationUpgrade") - val mcu = api.Items.get("microcontroller") - val floppy = api.Items.get("floppy") + val navigationUpgrade = api.Items.get(Constants.ItemName.NavigationUpgrade) + val mcu = api.Items.get(Constants.BlockName.Microcontroller) + val floppy = api.Items.get(Constants.ItemName.Floppy) val lootDisk = api.Items.get("lootDisk") - val drone = api.Items.get("drone") - val eeprom = api.Items.get("eeprom") - val robot = api.Items.get("robot") - val tablet = api.Items.get("tablet") + val drone = api.Items.get(Constants.ItemName.Drone) + val eeprom = api.Items.get(Constants.ItemName.EEPROM) + val robot = api.Items.get(Constants.BlockName.Robot) + val tablet = api.Items.get(Constants.ItemName.Tablet) val chamelium = api.Items.get("chamelium") val chameliumBlock = api.Items.get("chameliumBlock") val print = api.Items.get("print") diff --git a/src/main/scala/li/cil/oc/common/template/DroneTemplate.scala b/src/main/scala/li/cil/oc/common/template/DroneTemplate.scala index 0a0b5ef86..0b064cb49 100644 --- a/src/main/scala/li/cil/oc/common/template/DroneTemplate.scala +++ b/src/main/scala/li/cil/oc/common/template/DroneTemplate.scala @@ -1,6 +1,7 @@ package li.cil.oc.common.template import cpw.mods.fml.common.event.FMLInterModComms +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.api.internal @@ -18,15 +19,15 @@ import net.minecraft.nbt.NBTTagList object DroneTemplate extends Template { override protected val suggestedComponents = Array( - "BIOS" -> hasComponent("eeprom") _) + "BIOS" -> hasComponent(Constants.ItemName.EEPROM) _) override protected def hostClass = classOf[internal.Drone] - def selectTier1(stack: ItemStack) = api.Items.get(stack) == api.Items.get("droneCase1") + def selectTier1(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.ItemName.DroneCaseTier1) - def selectTier2(stack: ItemStack) = api.Items.get(stack) == api.Items.get("droneCase2") + def selectTier2(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.ItemName.DroneCaseTier2) - def selectTierCreative(stack: ItemStack) = api.Items.get(stack) == api.Items.get("droneCaseCreative") + def selectTierCreative(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.ItemName.DroneCaseCreative) def validate(inventory: IInventory): Array[AnyRef] = validateComputer(inventory) @@ -37,18 +38,18 @@ object DroneTemplate extends Template { data.name = RobotData.randomName data.components = items.drop(1).filter(_ != null).toArray data.storedEnergy = Settings.get.bufferDrone.toInt - val stack = api.Items.get("drone").createItemStack(1) + val stack = api.Items.get(Constants.ItemName.Drone).createItemStack(1) data.save(stack) val energy = Settings.get.droneBaseCost + complexity(inventory) * Settings.get.droneComplexityCost Array(stack, double2Double(energy)) } - def selectDisassembler(stack: ItemStack) = api.Items.get(stack) == api.Items.get("drone") + def selectDisassembler(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.ItemName.Drone) def disassemble(stack: ItemStack, ingredients: Array[ItemStack]) = { val info = new MicrocontrollerData(stack) - val itemName = ItemUtils.caseNameWithTierSuffix("droneCase", info.tier) + val itemName = Constants.ItemName.DroneCase(info.tier) Array(api.Items.get(itemName).createItemStack(1)) ++ info.components } diff --git a/src/main/scala/li/cil/oc/common/template/MicrocontrollerTemplate.scala b/src/main/scala/li/cil/oc/common/template/MicrocontrollerTemplate.scala index 4bbfe4080..6a6e3ab1f 100644 --- a/src/main/scala/li/cil/oc/common/template/MicrocontrollerTemplate.scala +++ b/src/main/scala/li/cil/oc/common/template/MicrocontrollerTemplate.scala @@ -1,6 +1,7 @@ package li.cil.oc.common.template import cpw.mods.fml.common.event.FMLInterModComms +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.api.internal @@ -20,11 +21,11 @@ object MicrocontrollerTemplate extends Template { override protected def hostClass = classOf[internal.Microcontroller] - def selectTier1(stack: ItemStack) = api.Items.get(stack) == api.Items.get("microcontrollerCase1") + def selectTier1(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.ItemName.MicrocontrollerCaseTier1) - def selectTier2(stack: ItemStack) = api.Items.get(stack) == api.Items.get("microcontrollerCase2") + def selectTier2(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.ItemName.MicrocontrollerCaseTier2) - def selectTierCreative(stack: ItemStack) = api.Items.get(stack) == api.Items.get("microcontrollerCaseCreative") + def selectTierCreative(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.ItemName.MicrocontrollerCaseCreative) def validate(inventory: IInventory): Array[AnyRef] = validateComputer(inventory) @@ -34,18 +35,17 @@ object MicrocontrollerTemplate extends Template { data.tier = caseTier(inventory) data.components = items.drop(1).filter(_ != null).toArray data.storedEnergy = Settings.get.bufferMicrocontroller.toInt - val stack = api.Items.get("microcontroller").createItemStack(1) - data.save(stack) + val stack = data.createItemStack() val energy = Settings.get.microcontrollerBaseCost + complexity(inventory) * Settings.get.microcontrollerComplexityCost Array(stack, double2Double(energy)) } - def selectDisassembler(stack: ItemStack) = api.Items.get(stack) == api.Items.get("microcontroller") + def selectDisassembler(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.BlockName.Microcontroller) def disassemble(stack: ItemStack, ingredients: Array[ItemStack]) = { val info = new MicrocontrollerData(stack) - val itemName = ItemUtils.caseNameWithTierSuffix("microcontrollerCase", info.tier) + val itemName = Constants.ItemName.MicrocontrollerCase(info.tier) Array(api.Items.get(itemName).createItemStack(1)) ++ info.components } diff --git a/src/main/scala/li/cil/oc/common/template/NavigationUpgradeTemplate.scala b/src/main/scala/li/cil/oc/common/template/NavigationUpgradeTemplate.scala index a98635f02..42f374f37 100644 --- a/src/main/scala/li/cil/oc/common/template/NavigationUpgradeTemplate.scala +++ b/src/main/scala/li/cil/oc/common/template/NavigationUpgradeTemplate.scala @@ -1,6 +1,7 @@ package li.cil.oc.common.template import cpw.mods.fml.common.event.FMLInterModComms +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.common.item.data.NavigationUpgradeData import net.minecraft.item.ItemStack @@ -9,7 +10,7 @@ import net.minecraft.nbt.NBTTagCompound import scala.language.postfixOps object NavigationUpgradeTemplate { - def selectDisassembler(stack: ItemStack) = api.Items.get(stack) == api.Items.get("navigationUpgrade") + def selectDisassembler(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.ItemName.NavigationUpgrade) def disassemble(stack: ItemStack, ingredients: Array[ItemStack]) = { val info = new NavigationUpgradeData(stack) diff --git a/src/main/scala/li/cil/oc/common/template/RobotTemplate.scala b/src/main/scala/li/cil/oc/common/template/RobotTemplate.scala index 58d450366..e61dc41ba 100644 --- a/src/main/scala/li/cil/oc/common/template/RobotTemplate.scala +++ b/src/main/scala/li/cil/oc/common/template/RobotTemplate.scala @@ -1,6 +1,7 @@ package li.cil.oc.common.template import cpw.mods.fml.common.event.FMLInterModComms +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.api.internal @@ -17,13 +18,13 @@ import net.minecraft.nbt.NBTTagList object RobotTemplate extends Template { override protected def hostClass = classOf[internal.Robot] - def selectTier1(stack: ItemStack) = api.Items.get(stack) == api.Items.get("case1") + def selectTier1(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.BlockName.CaseTier1) - def selectTier2(stack: ItemStack) = api.Items.get(stack) == api.Items.get("case2") + def selectTier2(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.BlockName.CaseTier2) - def selectTier3(stack: ItemStack) = api.Items.get(stack) == api.Items.get("case3") + def selectTier3(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.BlockName.CaseTier3) - def selectCreative(stack: ItemStack) = api.Items.get(stack) == api.Items.get("caseCreative") + def selectCreative(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.BlockName.CaseCreative) def validate(inventory: IInventory): Array[AnyRef] = validateComputer(inventory) @@ -36,18 +37,17 @@ object RobotTemplate extends Template { data.totalEnergy = data.robotEnergy data.containers = items.take(3).filter(_ != null).toArray data.components = items.drop(3).filter(_ != null).toArray - val stack = api.Items.get("robot").createItemStack(1) - data.save(stack) + val stack = data.createItemStack() val energy = Settings.get.robotBaseCost + complexity(inventory) * Settings.get.robotComplexityCost Array(stack, double2Double(energy)) } - def selectDisassembler(stack: ItemStack) = api.Items.get(stack) == api.Items.get("robot") + def selectDisassembler(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.BlockName.Robot) def disassemble(stack: ItemStack, ingredients: Array[ItemStack]) = { val info = new RobotData(stack) - val itemName = ItemUtils.caseNameWithTierSuffix("case", info.tier) + val itemName = Constants.BlockName.Case(info.tier) Array(api.Items.get(itemName).createItemStack(1)) ++ info.containers ++ info.components } diff --git a/src/main/scala/li/cil/oc/common/template/ServerTemplate.scala b/src/main/scala/li/cil/oc/common/template/ServerTemplate.scala index 557d33649..2c00361c4 100644 --- a/src/main/scala/li/cil/oc/common/template/ServerTemplate.scala +++ b/src/main/scala/li/cil/oc/common/template/ServerTemplate.scala @@ -1,6 +1,7 @@ package li.cil.oc.common.template import cpw.mods.fml.common.event.FMLInterModComms +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.common.inventory.ServerInventory import li.cil.oc.util.ItemUtils @@ -11,9 +12,9 @@ import scala.language.postfixOps object ServerTemplate { def selectDisassembler(stack: ItemStack) = - api.Items.get(stack) == api.Items.get("server1") || - api.Items.get(stack) == api.Items.get("server2") || - api.Items.get(stack) == api.Items.get("server3") + api.Items.get(stack) == api.Items.get(Constants.ItemName.ServerTier1) || + api.Items.get(stack) == api.Items.get(Constants.ItemName.ServerTier2) || + api.Items.get(stack) == api.Items.get(Constants.ItemName.ServerTier3) def disassemble(stack: ItemStack, ingredients: Array[ItemStack]) = { val info = new ServerInventory { diff --git a/src/main/scala/li/cil/oc/common/template/TabletTemplate.scala b/src/main/scala/li/cil/oc/common/template/TabletTemplate.scala index 0e437489e..9c12be9a0 100644 --- a/src/main/scala/li/cil/oc/common/template/TabletTemplate.scala +++ b/src/main/scala/li/cil/oc/common/template/TabletTemplate.scala @@ -1,6 +1,7 @@ package li.cil.oc.common.template import cpw.mods.fml.common.event.FMLInterModComms +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.api.internal @@ -16,18 +17,18 @@ import net.minecraft.nbt.NBTTagList object TabletTemplate extends Template { override protected val suggestedComponents = Array( - "BIOS" -> hasComponent("eeprom") _, - "Keyboard" -> hasComponent("keyboard") _, - "GraphicsCard" -> ((inventory: IInventory) => Array("graphicsCard1", "graphicsCard2", "graphicsCard3").exists(name => hasComponent(name)(inventory))), + "BIOS" -> hasComponent(Constants.ItemName.EEPROM) _, + "Keyboard" -> hasComponent(Constants.BlockName.Keyboard) _, + "GraphicsCard" -> ((inventory: IInventory) => Array(Constants.ItemName.GraphicsCardTier1, Constants.ItemName.GraphicsCardTier2, Constants.ItemName.GraphicsCardTier3).exists(name => hasComponent(name)(inventory))), "OS" -> hasFileSystem _) override protected def hostClass = classOf[internal.Tablet] - def selectTier1(stack: ItemStack) = api.Items.get(stack) == api.Items.get("tabletCase1") + def selectTier1(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.ItemName.TabletCaseTier1) - def selectTier2(stack: ItemStack) = api.Items.get(stack) == api.Items.get("tabletCase2") + def selectTier2(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.ItemName.TabletCaseTier2) - def selectCreative(stack: ItemStack) = api.Items.get(stack) == api.Items.get("tabletCaseCreative") + def selectCreative(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.ItemName.TabletCaseCreative) def validate(inventory: IInventory): Array[AnyRef] = validateComputer(inventory) @@ -36,21 +37,21 @@ object TabletTemplate extends Template { val data = new TabletData() data.tier = ItemUtils.caseTier(inventory.getStackInSlot(0)) data.container = items.headOption.getOrElse(None) - data.items = Array(Option(api.Items.get("screen1").createItemStack(1))) ++ items.drop(if (data.tier == Tier.One) 0 else 1).filter(_.isDefined) + data.items = Array(Option(api.Items.get(Constants.BlockName.ScreenTier1).createItemStack(1))) ++ items.drop(if (data.tier == Tier.One) 0 else 1).filter(_.isDefined) data.energy = Settings.get.bufferTablet data.maxEnergy = data.energy - val stack = api.Items.get("tablet").createItemStack(1) + val stack = api.Items.get(Constants.ItemName.Tablet).createItemStack(1) data.save(stack) val energy = Settings.get.tabletBaseCost + complexity(inventory) * Settings.get.tabletComplexityCost Array(stack, double2Double(energy)) } - def selectDisassembler(stack: ItemStack) = api.Items.get(stack) == api.Items.get("tablet") + def selectDisassembler(stack: ItemStack) = api.Items.get(stack) == api.Items.get(Constants.ItemName.Tablet) def disassemble(stack: ItemStack, ingredients: Array[ItemStack]) = { val info = new TabletData(stack) - val itemName = ItemUtils.caseNameWithTierSuffix("tabletCase", info.tier) + val itemName = Constants.ItemName.TabletCase(info.tier) Array(api.Items.get(itemName).createItemStack(1)) ++ info.items.collect { case Some(item) => item }.drop(1) // Screen. diff --git a/src/main/scala/li/cil/oc/common/template/Template.scala b/src/main/scala/li/cil/oc/common/template/Template.scala index eaa2f4680..3901b8052 100644 --- a/src/main/scala/li/cil/oc/common/template/Template.scala +++ b/src/main/scala/li/cil/oc/common/template/Template.scala @@ -1,5 +1,6 @@ package li.cil.oc.common.template +import li.cil.oc.Constants import li.cil.oc.Localization import li.cil.oc.Settings import li.cil.oc.api @@ -18,10 +19,10 @@ import scala.collection.mutable abstract class Template { protected val suggestedComponents = Array( - "BIOS" -> hasComponent("eeprom") _, - "Screen" -> hasComponent("screen1") _, - "Keyboard" -> hasComponent("keyboard") _, - "GraphicsCard" -> ((inventory: IInventory) => Array("graphicsCard1", "graphicsCard2", "graphicsCard3").exists(name => hasComponent(name)(inventory))), + "BIOS" -> hasComponent(Constants.ItemName.EEPROM) _, + "Screen" -> hasComponent(Constants.BlockName.ScreenTier1) _, + "Keyboard" -> hasComponent(Constants.BlockName.Keyboard) _, + "GraphicsCard" -> ((inventory: IInventory) => Array(Constants.ItemName.GraphicsCardTier1, Constants.ItemName.GraphicsCardTier2, Constants.ItemName.GraphicsCardTier3).exists(name => hasComponent(name)(inventory))), "Inventory" -> hasInventory _, "OS" -> hasFileSystem _) diff --git a/src/main/scala/li/cil/oc/common/tileentity/Keyboard.scala b/src/main/scala/li/cil/oc/common/tileentity/Keyboard.scala index 8f92ab193..3b62db841 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Keyboard.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Keyboard.scala @@ -2,6 +2,7 @@ package li.cil.oc.common.tileentity import cpw.mods.fml.relauncher.Side import cpw.mods.fml.relauncher.SideOnly +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.api.network.Analyzable @@ -15,7 +16,7 @@ class Keyboard extends traits.Environment with traits.Rotatable with traits.Immi override def validFacings = ForgeDirection.VALID_DIRECTIONS val keyboard = { - val keyboardItem = api.Items.get("keyboard").createItemStack(1) + val keyboardItem = api.Items.get(Constants.BlockName.Keyboard).createItemStack(1) api.Driver.driverFor(keyboardItem, getClass).createEnvironment(keyboardItem, this) } diff --git a/src/main/scala/li/cil/oc/common/tileentity/Robot.scala b/src/main/scala/li/cil/oc/common/tileentity/Robot.scala index 845b50831..4c1d23e00 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Robot.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Robot.scala @@ -239,8 +239,8 @@ class Robot extends traits.Computer with traits.PowerInformation with IFluidHand if (event.isCanceled) return false } - val blockRobotProxy = api.Items.get("robot").block.asInstanceOf[common.block.RobotProxy] - val blockRobotAfterImage = api.Items.get("robotAfterimage").block.asInstanceOf[common.block.RobotAfterimage] + val blockRobotProxy = api.Items.get(Constants.BlockName.Robot).block.asInstanceOf[common.block.RobotProxy] + val blockRobotAfterImage = api.Items.get(Constants.BlockName.RobotAfterimage).block.asInstanceOf[common.block.RobotAfterimage] val wasAir = world.isAirBlock(newPosition) val block = world.getBlock(newPosition) val metadata = world.getBlockMetadata(newPosition) diff --git a/src/main/scala/li/cil/oc/common/tileentity/ServerRack.scala b/src/main/scala/li/cil/oc/common/tileentity/ServerRack.scala index a2e76b55c..feb1897a4 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/ServerRack.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/ServerRack.scala @@ -203,10 +203,10 @@ class ServerRack extends traits.PowerAcceptor with traits.Hub with traits.PowerB override def isItemValidForSlot(i: Int, stack: ItemStack) = { val descriptor = api.Items.get(stack) - descriptor == api.Items.get("server1") || - descriptor == api.Items.get("server2") || - descriptor == api.Items.get("server3") || - descriptor == api.Items.get("serverCreative") + descriptor == api.Items.get(Constants.ItemName.ServerTier1) || + descriptor == api.Items.get(Constants.ItemName.ServerTier2) || + descriptor == api.Items.get(Constants.ItemName.ServerTier3) || + descriptor == api.Items.get(Constants.ItemName.ServerCreative) } // ----------------------------------------------------------------------- // diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/TextBuffer.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/TextBuffer.scala index a877af081..eda4dde8b 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/TextBuffer.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/TextBuffer.scala @@ -2,13 +2,14 @@ package li.cil.oc.common.tileentity.traits import cpw.mods.fml.relauncher.Side import cpw.mods.fml.relauncher.SideOnly +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import net.minecraft.nbt.NBTTagCompound trait TextBuffer extends Environment { lazy val buffer = { - val screenItem = api.Items.get("screen1").createItemStack(1) + val screenItem = api.Items.get(Constants.BlockName.ScreenTier1).createItemStack(1) val buffer = api.Driver.driverFor(screenItem, getClass).createEnvironment(screenItem, this).asInstanceOf[api.component.TextBuffer] val (maxWidth, maxHeight) = Settings.screenResolutionsByTier(tier) buffer.setMaximumResolution(maxWidth, maxHeight) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverBlockEnvironments.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverBlockEnvironments.scala index 06ae90958..e5b7f9be9 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverBlockEnvironments.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverBlockEnvironments.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver import li.cil.oc.api.driver.EnvironmentAware @@ -27,18 +28,18 @@ object DriverBlockEnvironments extends driver.Block with EnvironmentAware { override def providedEnvironment(stack: ItemStack): Class[_ <: Environment] = stack.getItem match { case block: ItemBlock if block.field_150939_a != null => - if (isOneOf(block.field_150939_a, "accessPoint")) classOf[tileentity.AccessPoint] - else if (isOneOf(block.field_150939_a, "assembler")) classOf[tileentity.Assembler] - else if (isOneOf(block.field_150939_a, "case1", "case2", "case3", "caseCreative", "microcontroller")) classOf[Machine] - else if (isOneOf(block.field_150939_a, "hologram1", "hologram2")) classOf[tileentity.Hologram] - else if (isOneOf(block.field_150939_a, "motionSensor")) classOf[tileentity.MotionSensor] - else if (isOneOf(block.field_150939_a, "redstone")) if (BundledRedstone.isAvailable) classOf[component.Redstone.Bundled] else classOf[component.Redstone.Vanilla] - else if (isOneOf(block.field_150939_a, "screen1")) classOf[common.component.TextBuffer]: Class[_ <: Environment] - else if (isOneOf(block.field_150939_a, "screen2", "screen3")) classOf[common.component.Screen] - else if (isOneOf(block.field_150939_a, "robot")) classOf[component.Robot]: Class[_ <: Environment] + if (isOneOf(block.field_150939_a, Constants.BlockName.AccessPoint)) classOf[tileentity.AccessPoint] + else if (isOneOf(block.field_150939_a, Constants.BlockName.Assembler)) classOf[tileentity.Assembler] + else if (isOneOf(block.field_150939_a, Constants.BlockName.CaseTier1, Constants.BlockName.CaseTier2, Constants.BlockName.CaseTier3, Constants.BlockName.CaseCreative, Constants.BlockName.Microcontroller)) classOf[Machine] + else if (isOneOf(block.field_150939_a, Constants.BlockName.HologramTier1, Constants.BlockName.HologramTier2)) classOf[tileentity.Hologram] + else if (isOneOf(block.field_150939_a, Constants.BlockName.MotionSensor)) classOf[tileentity.MotionSensor] + else if (isOneOf(block.field_150939_a, Constants.BlockName.Redstone)) if (BundledRedstone.isAvailable) classOf[component.Redstone.Bundled] else classOf[component.Redstone.Vanilla] + else if (isOneOf(block.field_150939_a, Constants.BlockName.ScreenTier1)) classOf[common.component.TextBuffer]: Class[_ <: Environment] + else if (isOneOf(block.field_150939_a, Constants.BlockName.ScreenTier2, Constants.BlockName.ScreenTier3)) classOf[common.component.Screen] + else if (isOneOf(block.field_150939_a, Constants.BlockName.Robot)) classOf[component.Robot]: Class[_ <: Environment] else null case _ => - if (api.Items.get(stack) == api.Items.get("drone")) classOf[component.Drone]: Class[_ <: Environment] + if (api.Items.get(stack) == api.Items.get(Constants.ItemName.Drone)) classOf[component.Drone]: Class[_ <: Environment] else null } diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverCPU.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverCPU.scala index 19ac79f0a..0b49d01e6 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverCPU.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverCPU.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.OpenComputers import li.cil.oc.Settings import li.cil.oc.api @@ -15,8 +16,10 @@ import net.minecraft.item.ItemStack import scala.collection.convert.WrapAsScala._ object DriverCPU extends Item with Processor { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("cpu1"), api.Items.get("cpu2"), api.Items.get("cpu3")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.CPUTier1), + api.Items.get(Constants.ItemName.CPUTier2), + api.Items.get(Constants.ItemName.CPUTier3)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = null diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverComponentBus.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverComponentBus.scala index 2e358b76c..0209631d8 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverComponentBus.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverComponentBus.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentHost @@ -11,7 +12,10 @@ import li.cil.oc.common.item import net.minecraft.item.ItemStack object DriverComponentBus extends Item with Processor { - override def worksWith(stack: ItemStack) = isOneOf(stack, api.Items.get("componentBus1"), api.Items.get("componentBus2"), api.Items.get("componentBus3")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.ComponentBusTier1), + api.Items.get(Constants.ItemName.ComponentBusTier2), + api.Items.get(Constants.ItemName.ComponentBusTier3)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = null diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerCard.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerCard.scala index 3ff32b1b7..e382fbe6d 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerCard.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerCard.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentHost import li.cil.oc.api.driver.item.Container @@ -10,8 +11,10 @@ import li.cil.oc.common.item import net.minecraft.item.ItemStack object DriverContainerCard extends Item with Container { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("cardContainer1"), api.Items.get("cardContainer2"), api.Items.get("cardContainer3")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.CardContainerTier1), + api.Items.get(Constants.ItemName.CardContainerTier2), + api.Items.get(Constants.ItemName.CardContainerTier3)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = null diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerFloppy.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerFloppy.scala index c1fdc0270..e4045b5af 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerFloppy.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerFloppy.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentHost import li.cil.oc.api.driver.item.Container @@ -8,8 +9,8 @@ import li.cil.oc.common.Tier import net.minecraft.item.ItemStack object DriverContainerFloppy extends Item with Container { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("diskDrive")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.BlockName.DiskDrive)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = null diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerUpgrade.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerUpgrade.scala index f666eb849..9fdd2d702 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerUpgrade.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerUpgrade.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentHost import li.cil.oc.api.driver.item.Container @@ -10,8 +11,10 @@ import li.cil.oc.common.item import net.minecraft.item.ItemStack object DriverContainerUpgrade extends Item with Container { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("upgradeContainer1"), api.Items.get("upgradeContainer2"), api.Items.get("upgradeContainer3")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.UpgradeContainerTier1), + api.Items.get(Constants.ItemName.UpgradeContainerTier2), + api.Items.get(Constants.ItemName.UpgradeContainerTier3)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = null diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverDebugCard.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverDebugCard.scala index c3d2ca4eb..cb0efbd23 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverDebugCard.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverDebugCard.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -8,8 +9,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverDebugCard extends Item with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("debugCard")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.DebugCard)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = new component.DebugCard(host) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverEEPROM.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverEEPROM.scala index 33748b149..cb08babda 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverEEPROM.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverEEPROM.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -9,8 +10,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverEEPROM extends Item with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("eeprom")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.EEPROM)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = new component.EEPROM() diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverFileSystem.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverFileSystem.scala index 831b9dffc..9656799bc 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverFileSystem.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverFileSystem.scala @@ -1,6 +1,7 @@ package li.cil.oc.integration.opencomputers import li.cil.oc +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentHost @@ -13,8 +14,11 @@ import net.minecraft.item.ItemStack import net.minecraft.nbt.NBTTagCompound object DriverFileSystem extends Item { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("hdd1"), api.Items.get("hdd2"), api.Items.get("hdd3"), api.Items.get("floppy")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.HDDTier1), + api.Items.get(Constants.ItemName.HDDTier2), + api.Items.get(Constants.ItemName.HDDTier3), + api.Items.get(Constants.ItemName.Floppy)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = Items.multi.subItem(stack) match { @@ -41,7 +45,7 @@ object DriverFileSystem extends Item { // node's address as the folder name... so we generate the address here, // if necessary. No one will know, right? Right!? val address = addressFromTag(dataTag(stack)) - val isFloppy = api.Items.get(stack) == api.Items.get("floppy") + val isFloppy = api.Items.get(stack) == api.Items.get(Constants.ItemName.Floppy) val fs = oc.api.FileSystem.fromSaveDirectory(address, capacity, Settings.get.bufferChanges) val environment = oc.api.FileSystem.asManagedEnvironment(fs, new ReadWriteItemLabel(stack), host, Settings.resourceDomain + ":" + (if (isFloppy) "floppy_access" else "hdd_access")) if (environment != null && environment.node != null) { diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverGeolyzer.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverGeolyzer.scala index a9abeb255..cb47a273d 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverGeolyzer.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverGeolyzer.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -9,8 +10,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverGeolyzer extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("geolyzer")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.BlockName.Geolyzer)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = new component.Geolyzer(host) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverGraphicsCard.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverGraphicsCard.scala index 27b3122a9..cfe423a48 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverGraphicsCard.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverGraphicsCard.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -12,8 +13,10 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverGraphicsCard extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("graphicsCard1"), api.Items.get("graphicsCard2"), api.Items.get("graphicsCard3")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.GraphicsCardTier1), + api.Items.get(Constants.ItemName.GraphicsCardTier2), + api.Items.get(Constants.ItemName.GraphicsCardTier3)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = tier(stack) match { diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverInternetCard.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverInternetCard.scala index b2c84d4a8..324edcabc 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverInternetCard.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverInternetCard.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -9,8 +10,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverInternetCard extends Item with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("internetCard")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.InternetCard)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = new component.InternetCard() diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverKeyboard.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverKeyboard.scala index 8a268c0f2..98a86c58d 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverKeyboard.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverKeyboard.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentHost import li.cil.oc.api.driver.item.HostAware @@ -8,8 +9,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverKeyboard extends Item with HostAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("keyboard")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.BlockName.Keyboard)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = new component.Keyboard(host) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverLinkedCard.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverLinkedCard.scala index d2f6b7acc..b21895d19 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverLinkedCard.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverLinkedCard.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -9,8 +10,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverLinkedCard extends Item with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("linkedCard")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.LinkedCard)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = new component.LinkedCard() diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverLootDisk.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverLootDisk.scala index cff364556..60a7ea24c 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverLootDisk.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverLootDisk.scala @@ -2,6 +2,7 @@ package li.cil.oc.integration.opencomputers import java.io +import li.cil.oc.Constants import li.cil.oc.OpenComputers import li.cil.oc.Settings import li.cil.oc.api diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverMemory.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverMemory.scala index ea7bf66b1..425c2cd91 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverMemory.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverMemory.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver import li.cil.oc.common.Slot @@ -14,8 +15,13 @@ object DriverMemory extends Item with driver.item.Memory { case _ => 0.0 } - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("ram1"), api.Items.get("ram2"), api.Items.get("ram3"), api.Items.get("ram4"), api.Items.get("ram5"), api.Items.get("ram6")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.RAMTier1), + api.Items.get(Constants.ItemName.RAMTier2), + api.Items.get(Constants.ItemName.RAMTier3), + api.Items.get(Constants.ItemName.RAMTier4), + api.Items.get(Constants.ItemName.RAMTier5), + api.Items.get(Constants.ItemName.RAMTier6)) override def createEnvironment(stack: ItemStack, host: driver.EnvironmentHost) = null diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverNetworkCard.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverNetworkCard.scala index 4a541ad00..c93fc0544 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverNetworkCard.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverNetworkCard.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -9,8 +10,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverNetworkCard extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("lanCard")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.NetworkCard)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = new component.NetworkCard(host) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverRedstoneCard.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverRedstoneCard.scala index 8ccfda205..14e7495a9 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverRedstoneCard.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverRedstoneCard.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -17,7 +18,9 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverRedstoneCard extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = isOneOf(stack, api.Items.get("redstoneCard1"), api.Items.get("redstoneCard2")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.RedstoneCardTier1), + api.Items.get(Constants.ItemName.RedstoneCardTier2)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = { val isAdvanced = tier(stack) == Tier.Two diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverScreen.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverScreen.scala index 0d9f3f879..63cf3f45d 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverScreen.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverScreen.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -10,8 +11,8 @@ import li.cil.oc.common.tileentity import net.minecraft.item.ItemStack object DriverScreen extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("screen1")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.BlockName.ScreenTier1)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = host match { case screen: tileentity.Screen if screen.tier > 0 => new component.Screen(screen) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverTablet.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverTablet.scala index e451197e3..4a1689d16 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverTablet.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverTablet.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentHost @@ -10,8 +11,8 @@ import net.minecraft.nbt.NBTTagCompound import net.minecraftforge.common.util.Constants.NBT object DriverTablet extends Item { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("tablet")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.Tablet)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = { val data = new TabletData(stack) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeAngel.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeAngel.scala index 4fc50591e..99e84b22e 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeAngel.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeAngel.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentHost import li.cil.oc.api.driver.item.HostAware @@ -9,8 +10,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverUpgradeAngel extends Item with HostAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("angelUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.AngelUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = new component.UpgradeAngel() diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeBattery.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeBattery.scala index b8fdd513d..f3149ed00 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeBattery.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeBattery.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentHost import li.cil.oc.api.driver.item.HostAware @@ -11,8 +12,10 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverUpgradeBattery extends Item with HostAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("batteryUpgrade1"), api.Items.get("batteryUpgrade2"), api.Items.get("batteryUpgrade3")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.BatteryUpgradeTier1), + api.Items.get(Constants.ItemName.BatteryUpgradeTier2), + api.Items.get(Constants.ItemName.BatteryUpgradeTier3)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = new component.UpgradeBattery(tier(stack)) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeChunkloader.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeChunkloader.scala index 263d76f46..2ec216b4b 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeChunkloader.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeChunkloader.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -10,8 +11,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverUpgradeChunkloader extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("chunkloaderUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.ChunkloaderUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = new component.UpgradeChunkloader(host) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeCrafting.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeCrafting.scala index 9bd08370e..35725b62c 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeCrafting.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeCrafting.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -11,8 +12,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverUpgradeCrafting extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("craftingUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.CraftingUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = host match { diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeDatabase.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeDatabase.scala index b17a84304..2e587d447 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeDatabase.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeDatabase.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver import li.cil.oc.api.driver.EnvironmentAware @@ -14,8 +15,10 @@ import net.minecraft.entity.player.EntityPlayer import net.minecraft.item.ItemStack object DriverUpgradeDatabase extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("databaseUpgrade1"), api.Items.get("databaseUpgrade2"), api.Items.get("databaseUpgrade3")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.DatabaseUpgradeTier1), + api.Items.get(Constants.ItemName.DatabaseUpgradeTier2), + api.Items.get(Constants.ItemName.DatabaseUpgradeTier3)) override def createEnvironment(stack: ItemStack, host: driver.EnvironmentHost) = new component.UpgradeDatabase(new DatabaseInventory { diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeExperience.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeExperience.scala index 63a19af23..e1336b0be 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeExperience.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeExperience.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -10,8 +11,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverUpgradeExperience extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("experienceUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.ExperienceUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = new component.UpgradeExperience() diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeGenerator.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeGenerator.scala index d5ee0f51c..9f5eb2a5a 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeGenerator.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeGenerator.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -11,8 +12,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverUpgradeGenerator extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("generatorUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.GeneratorUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = host match { diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeInventory.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeInventory.scala index 601189bb8..b200ea2af 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeInventory.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeInventory.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentHost import li.cil.oc.api.driver.item.HostAware @@ -8,8 +9,8 @@ import li.cil.oc.common.Slot import net.minecraft.item.ItemStack object DriverUpgradeInventory extends Item with Inventory with HostAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("inventoryUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.InventoryUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = null diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeInventoryController.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeInventoryController.scala index 950ae1464..cafe6a61d 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeInventoryController.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeInventoryController.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -13,8 +14,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverUpgradeInventoryController extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("inventoryControllerUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.InventoryControllerUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = host match { case host: EnvironmentHost with Adapter => new component.UpgradeInventoryController.Adapter(host) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeLeash.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeLeash.scala index 15154b02a..6f1b7b9f2 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeLeash.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeLeash.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -11,8 +12,8 @@ import net.minecraft.entity.Entity import net.minecraft.item.ItemStack object DriverUpgradeLeash extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("leashUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.LeashUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = host match { case entity: Entity => new component.UpgradeLeash(entity) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeNavigation.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeNavigation.scala index 2dc04f766..d8102d738 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeNavigation.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeNavigation.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -11,8 +12,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverUpgradeNavigation extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("navigationUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.NavigationUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = host match { diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradePiston.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradePiston.scala index 86eb52943..3ffb00733 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradePiston.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradePiston.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -10,8 +11,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverUpgradePiston extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("pistonUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.PistonUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = host match { case rotatable: Rotatable with EnvironmentHost => new component.UpgradePiston(rotatable) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeSign.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeSign.scala index d36777fb3..63846d308 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeSign.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeSign.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -13,8 +14,8 @@ import li.cil.oc.server.component.UpgradeSignInRotatable import net.minecraft.item.ItemStack object DriverUpgradeSign extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("signUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.SignUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = host match { diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeSolarGenerator.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeSolarGenerator.scala index 80c6a8b86..f914c4e86 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeSolarGenerator.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeSolarGenerator.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentHost import li.cil.oc.api.driver.item.HostAware @@ -9,8 +10,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverUpgradeSolarGenerator extends Item with HostAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("solarGeneratorUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.SolarGeneratorUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = new component.UpgradeSolarGenerator(host) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeTank.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeTank.scala index 2c5868161..1d65aa0fd 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeTank.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeTank.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentHost import li.cil.oc.api.driver.item.HostAware @@ -8,8 +9,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverUpgradeTank extends Item with HostAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("tankUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.TankUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = new component.UpgradeTank(host, 16000) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeTankController.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeTankController.scala index 72a1e1ac1..dd8cd6e0d 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeTankController.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeTankController.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -13,8 +14,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverUpgradeTankController extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("tankControllerUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.TankControllerUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = host match { case host: EnvironmentHost with Adapter => new component.UpgradeTankController.Adapter(host) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeTractorBeam.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeTractorBeam.scala index 38623db16..e09219e85 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeTractorBeam.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeTractorBeam.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -14,8 +15,8 @@ import li.cil.oc.server.component.UpgradeTractorBeam import net.minecraft.item.ItemStack object DriverUpgradeTractorBeam extends Item with HostAware with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("tractorBeamUpgrade")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.TractorBeamUpgrade)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = host match { case drone: Drone => new UpgradeTractorBeam.Drone(drone) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverWirelessNetworkCard.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverWirelessNetworkCard.scala index 1a200bd8a..c080f0773 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverWirelessNetworkCard.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverWirelessNetworkCard.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.opencomputers +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -9,8 +10,8 @@ import li.cil.oc.server.component import net.minecraft.item.ItemStack object DriverWirelessNetworkCard extends Item with EnvironmentAware { - override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("wlanCard")) + override def worksWith(stack: ItemStack) = isOneOf(stack, + api.Items.get(Constants.ItemName.WirelessNetworkCard)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = new component.WirelessNetworkCard(host) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/ModOpenComputers.scala b/src/main/scala/li/cil/oc/integration/opencomputers/ModOpenComputers.scala index 13b461b8b..8bc7d3246 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/ModOpenComputers.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/ModOpenComputers.scala @@ -2,6 +2,7 @@ package li.cil.oc.integration.opencomputers import cpw.mods.fml.common.FMLCommonHandler import cpw.mods.fml.common.event.FMLInterModComms +import li.cil.oc.Constants import li.cil.oc.OpenComputers import li.cil.oc.api import li.cil.oc.api.internal @@ -102,87 +103,87 @@ object ModOpenComputers extends ModProxy { api.Driver.add(DriverUpgradeTractorBeam) blacklistHost(classOf[internal.Adapter], - "geolyzer", - "keyboard", - "screen1", - "angelUpgrade", - "batteryUpgrade1", - "batteryUpgrade2", - "batteryUpgrade3", - "chunkloaderUpgrade", - "craftingUpgrade", - "experienceUpgrade", - "generatorUpgrade", - "inventoryUpgrade", - "navigationUpgrade", - "pistonUpgrade", - "solarGeneratorUpgrade", - "tankUpgrade", - "tractorBeamUpgrade", - "leashUpgrade") + Constants.BlockName.Geolyzer, + Constants.BlockName.Keyboard, + Constants.BlockName.ScreenTier1, + Constants.ItemName.AngelUpgrade, + Constants.ItemName.BatteryUpgradeTier1, + Constants.ItemName.BatteryUpgradeTier2, + Constants.ItemName.BatteryUpgradeTier3, + Constants.ItemName.ChunkloaderUpgrade, + Constants.ItemName.CraftingUpgrade, + Constants.ItemName.ExperienceUpgrade, + Constants.ItemName.GeneratorUpgrade, + Constants.ItemName.InventoryUpgrade, + Constants.ItemName.NavigationUpgrade, + Constants.ItemName.PistonUpgrade, + Constants.ItemName.SolarGeneratorUpgrade, + Constants.ItemName.TankUpgrade, + Constants.ItemName.TractorBeamUpgrade, + Constants.ItemName.LeashUpgrade) blacklistHost(classOf[internal.Drone], - "graphicsCard1", - "graphicsCard2", - "graphicsCard3", - "keyboard", - "lanCard", - "redstoneCard1", - "screen1", - "angelUpgrade", - "craftingUpgrade", - "experienceUpgrade") + Constants.ItemName.GraphicsCardTier1, + Constants.ItemName.GraphicsCardTier2, + Constants.ItemName.GraphicsCardTier3, + Constants.BlockName.Keyboard, + Constants.ItemName.NetworkCard, + Constants.ItemName.RedstoneCardTier1, + Constants.BlockName.ScreenTier1, + Constants.ItemName.AngelUpgrade, + Constants.ItemName.CraftingUpgrade, + Constants.ItemName.ExperienceUpgrade) blacklistHost(classOf[internal.Microcontroller], - "graphicsCard1", - "graphicsCard2", - "graphicsCard3", - "keyboard", - "screen1", - "angelUpgrade", - "chunkloaderUpgrade", - "craftingUpgrade", - "databaseUpgrade1", - "databaseUpgrade2", - "databaseUpgrade3", - "experienceUpgrade", - "generatorUpgrade", - "inventoryUpgrade", - "inventoryControllerUpgrade", - "navigationUpgrade", - "tankUpgrade", - "tankControllerUpgrade", - "tractorBeamUpgrade", - "leashUpgrade") + Constants.ItemName.GraphicsCardTier1, + Constants.ItemName.GraphicsCardTier2, + Constants.ItemName.GraphicsCardTier3, + Constants.BlockName.Keyboard, + Constants.BlockName.ScreenTier1, + Constants.ItemName.AngelUpgrade, + Constants.ItemName.ChunkloaderUpgrade, + Constants.ItemName.CraftingUpgrade, + Constants.ItemName.DatabaseUpgradeTier1, + Constants.ItemName.DatabaseUpgradeTier2, + Constants.ItemName.DatabaseUpgradeTier3, + Constants.ItemName.ExperienceUpgrade, + Constants.ItemName.GeneratorUpgrade, + Constants.ItemName.InventoryUpgrade, + Constants.ItemName.InventoryControllerUpgrade, + Constants.ItemName.NavigationUpgrade, + Constants.ItemName.TankUpgrade, + Constants.ItemName.TankControllerUpgrade, + Constants.ItemName.TractorBeamUpgrade, + Constants.ItemName.LeashUpgrade) blacklistHost(classOf[internal.Robot], - "leashUpgrade") + Constants.ItemName.LeashUpgrade) blacklistHost(classOf[internal.Tablet], - "lanCard", - "redstoneCard1", - "screen1", - "angelUpgrade", - "chunkloaderUpgrade", - "craftingUpgrade", - "databaseUpgrade1", - "databaseUpgrade2", - "databaseUpgrade3", - "experienceUpgrade", - "generatorUpgrade", - "inventoryUpgrade", - "inventoryControllerUpgrade", - "tankUpgrade", - "tankControllerUpgrade", - "leashUpgrade") + Constants.ItemName.NetworkCard, + Constants.ItemName.RedstoneCardTier1, + Constants.BlockName.ScreenTier1, + Constants.ItemName.AngelUpgrade, + Constants.ItemName.ChunkloaderUpgrade, + Constants.ItemName.CraftingUpgrade, + Constants.ItemName.DatabaseUpgradeTier1, + Constants.ItemName.DatabaseUpgradeTier2, + Constants.ItemName.DatabaseUpgradeTier3, + Constants.ItemName.ExperienceUpgrade, + Constants.ItemName.GeneratorUpgrade, + Constants.ItemName.InventoryUpgrade, + Constants.ItemName.InventoryControllerUpgrade, + Constants.ItemName.TankUpgrade, + Constants.ItemName.TankControllerUpgrade, + Constants.ItemName.LeashUpgrade) if (!WirelessRedstone.isAvailable) { - blacklistHost(classOf[internal.Drone], "redstoneCard2") - blacklistHost(classOf[internal.Tablet], "redstoneCard2") + blacklistHost(classOf[internal.Drone], Constants.ItemName.RedstoneCardTier2) + blacklistHost(classOf[internal.Tablet], Constants.ItemName.RedstoneCardTier2) } - // Note: kinda nasty, but we have to check for availabilty for extended + // Note: kinda nasty, but we have to check for availability for extended // redstone mods after integration init, so we have to set tier two // redstone card availability here, after all other mods were inited. if (BundledRedstone.isAvailable || WirelessRedstone.isAvailable) { OpenComputers.log.info("Found extended redstone mods, enabling tier two redstone card.") - Items.multi.subItem(api.Items.get("redstoneCard2").createItemStack(1)) match { + Items.multi.subItem(api.Items.get(Constants.ItemName.RedstoneCardTier2).createItemStack(1)) match { case Some(redstone: RedstoneCard) => redstone.showInItemList = true case _ => } diff --git a/src/main/scala/li/cil/oc/util/ItemCosts.scala b/src/main/scala/li/cil/oc/util/ItemCosts.scala index 2a1f4e5e1..d930482e8 100644 --- a/src/main/scala/li/cil/oc/util/ItemCosts.scala +++ b/src/main/scala/li/cil/oc/util/ItemCosts.scala @@ -2,8 +2,9 @@ package li.cil.oc.util import java.util +import li.cil.oc.Constants import li.cil.oc.Localization -import li.cil.oc.common.init +import li.cil.oc.api import li.cil.oc.integration.Mods import net.minecraft.block.Block import net.minecraft.init.Blocks @@ -25,7 +26,7 @@ object ItemCosts { private var started = 0L - cache += new ItemStackWrapper(init.Items.ironNugget.createItemStack()) -> Iterable((new ItemStack(Items.iron_ingot), 1.0 / 9.0)) + cache += new ItemStackWrapper(api.Items.get(Constants.ItemName.IronNugget).createItemStack(1)) -> Iterable((new ItemStack(Items.iron_ingot), 1.0 / 9.0)) def terminate(item: Item, meta: Int = 0) = cache += new ItemStackWrapper(new ItemStack(item, 1, meta)) -> mutable.Iterable((new ItemStack(item, 1, meta), 1)) diff --git a/src/main/scala/li/cil/oc/util/ItemUtils.scala b/src/main/scala/li/cil/oc/util/ItemUtils.scala index 4b802e54b..b4534c543 100644 --- a/src/main/scala/li/cil/oc/util/ItemUtils.scala +++ b/src/main/scala/li/cil/oc/util/ItemUtils.scala @@ -2,6 +2,7 @@ package li.cil.oc.util import java.util.Random +import li.cil.oc.Constants import li.cil.oc.OpenComputers import li.cil.oc.api import li.cil.oc.common.Tier @@ -21,23 +22,23 @@ import scala.collection.mutable object ItemUtils { def caseTier(stack: ItemStack) = { val descriptor = api.Items.get(stack) - if (descriptor == api.Items.get("case1")) Tier.One - else if (descriptor == api.Items.get("case2")) Tier.Two - else if (descriptor == api.Items.get("case3")) Tier.Three - else if (descriptor == api.Items.get("caseCreative")) Tier.Four - else if (descriptor == api.Items.get("microcontrollerCase1")) Tier.One - else if (descriptor == api.Items.get("microcontrollerCase2")) Tier.Two - else if (descriptor == api.Items.get("microcontrollerCaseCreative")) Tier.Four - else if (descriptor == api.Items.get("droneCase1")) Tier.One - else if (descriptor == api.Items.get("droneCase2")) Tier.Two - else if (descriptor == api.Items.get("droneCaseCreative")) Tier.Four - else if (descriptor == api.Items.get("server1")) Tier.One - else if (descriptor == api.Items.get("server2")) Tier.Two - else if (descriptor == api.Items.get("server3")) Tier.Three - else if (descriptor == api.Items.get("serverCreative")) Tier.Four - else if (descriptor == api.Items.get("tabletCase1")) Tier.One - else if (descriptor == api.Items.get("tabletCase2")) Tier.Two - else if (descriptor == api.Items.get("tabletCaseCreative")) Tier.Four + if (descriptor == api.Items.get(Constants.BlockName.CaseTier1)) Tier.One + else if (descriptor == api.Items.get(Constants.BlockName.CaseTier2)) Tier.Two + else if (descriptor == api.Items.get(Constants.BlockName.CaseTier3)) Tier.Three + else if (descriptor == api.Items.get(Constants.BlockName.CaseCreative)) Tier.Four + else if (descriptor == api.Items.get(Constants.ItemName.MicrocontrollerCaseTier1)) Tier.One + else if (descriptor == api.Items.get(Constants.ItemName.MicrocontrollerCaseTier2)) Tier.Two + else if (descriptor == api.Items.get(Constants.ItemName.MicrocontrollerCaseCreative)) Tier.Four + else if (descriptor == api.Items.get(Constants.ItemName.DroneCaseTier1)) Tier.One + else if (descriptor == api.Items.get(Constants.ItemName.DroneCaseTier2)) Tier.Two + else if (descriptor == api.Items.get(Constants.ItemName.DroneCaseCreative)) Tier.Four + else if (descriptor == api.Items.get(Constants.ItemName.ServerTier1)) Tier.One + else if (descriptor == api.Items.get(Constants.ItemName.ServerTier2)) Tier.Two + else if (descriptor == api.Items.get(Constants.ItemName.ServerTier3)) Tier.Three + else if (descriptor == api.Items.get(Constants.ItemName.ServerCreative)) Tier.Four + else if (descriptor == api.Items.get(Constants.ItemName.TabletCaseTier1)) Tier.One + else if (descriptor == api.Items.get(Constants.ItemName.TabletCaseTier2)) Tier.Two + else if (descriptor == api.Items.get(Constants.ItemName.TabletCaseCreative)) Tier.Four else Tier.None } From f672f88b24d60736283efe26d83eebbcc7d992db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Tue, 7 Apr 2015 13:30:48 +0200 Subject: [PATCH 2/7] Pulling a bunch of constants (item and block names for now) into a single class. Minor rendering adjustments after updating Forge version. (cherry picked from commit 707a5c728c9a7eba2648c2f3b89f6138e99c878a) Conflicts: build.properties src/main/scala/li/cil/oc/CreativeTab.scala src/main/scala/li/cil/oc/client/Proxy.scala src/main/scala/li/cil/oc/client/renderer/HighlightRenderer.scala src/main/scala/li/cil/oc/client/renderer/block/ExtendedBlockModel.scala src/main/scala/li/cil/oc/client/renderer/item/ItemRenderer.scala src/main/scala/li/cil/oc/common/EventHandler.scala src/main/scala/li/cil/oc/common/Loot.scala src/main/scala/li/cil/oc/common/PacketHandler.scala src/main/scala/li/cil/oc/common/Proxy.scala src/main/scala/li/cil/oc/common/block/Item.scala src/main/scala/li/cil/oc/common/block/RobotAfterimage.scala src/main/scala/li/cil/oc/common/block/RobotProxy.scala src/main/scala/li/cil/oc/common/block/Screen.scala src/main/scala/li/cil/oc/common/component/Terminal.scala src/main/scala/li/cil/oc/common/component/TextBuffer.scala src/main/scala/li/cil/oc/common/entity/Drone.scala src/main/scala/li/cil/oc/common/init/Blocks.scala src/main/scala/li/cil/oc/common/init/Items.scala src/main/scala/li/cil/oc/common/item/Analyzer.scala src/main/scala/li/cil/oc/common/item/Tablet.scala src/main/scala/li/cil/oc/common/recipe/ExtendedRecipe.scala src/main/scala/li/cil/oc/common/recipe/Recipes.scala src/main/scala/li/cil/oc/common/template/DroneTemplate.scala src/main/scala/li/cil/oc/common/template/MicrocontrollerTemplate.scala src/main/scala/li/cil/oc/common/template/NavigationUpgradeTemplate.scala src/main/scala/li/cil/oc/common/template/RobotTemplate.scala src/main/scala/li/cil/oc/common/template/ServerTemplate.scala src/main/scala/li/cil/oc/common/template/TabletTemplate.scala src/main/scala/li/cil/oc/common/tileentity/Keyboard.scala src/main/scala/li/cil/oc/common/tileentity/traits/TextBuffer.scala src/main/scala/li/cil/oc/integration/opencomputers/DriverBlockEnvironments.scala src/main/scala/li/cil/oc/integration/opencomputers/DriverFileSystem.scala src/main/scala/li/cil/oc/integration/opencomputers/DriverLootDisk.scala src/main/scala/li/cil/oc/integration/opencomputers/ModOpenComputers.scala src/main/scala/li/cil/oc/util/ItemCosts.scala --- src/main/scala/li/cil/oc/Constants.scala | 8 +++++++- src/main/scala/li/cil/oc/OpenComputers.scala | 2 +- .../li/cil/oc/client/renderer/block/Print.scala | 3 ++- .../cil/oc/client/renderer/item/ItemRenderer.scala | 4 ++-- src/main/scala/li/cil/oc/common/Loot.scala | 3 ++- src/main/scala/li/cil/oc/common/block/Item.scala | 2 +- .../li/cil/oc/common/block/Microcontroller.scala | 3 ++- .../scala/li/cil/oc/common/item/InkCartridge.scala | 5 +++-- .../oc/common/item/data/MicrocontrollerData.scala | 2 +- .../li/cil/oc/common/item/data/PrintData.scala | 9 +++++---- .../li/cil/oc/common/recipe/ExtendedRecipe.scala | 2 +- .../scala/li/cil/oc/common/recipe/Recipes.scala | 14 +++++++------- .../cil/oc/common/tileentity/Microcontroller.scala | 3 ++- .../li/cil/oc/integration/fmp/CablePart.scala | 5 +++-- .../li/cil/oc/integration/fmp/EventHandler.scala | 5 +++-- .../oc/integration/fmp/MultipartConverter.scala | 5 +++-- .../li/cil/oc/integration/fmp/PrintPart.scala | 5 +++-- .../oc/integration/gc/DriverWorldSensorCard.scala | 3 ++- .../integration/opencomputers/DriverLootDisk.scala | 2 +- .../stargatetech2/DriverAbstractBusCard.scala | 3 ++- 20 files changed, 53 insertions(+), 35 deletions(-) diff --git a/src/main/scala/li/cil/oc/Constants.scala b/src/main/scala/li/cil/oc/Constants.scala index 3dfca7e08..230808d2b 100644 --- a/src/main/scala/li/cil/oc/Constants.scala +++ b/src/main/scala/li/cil/oc/Constants.scala @@ -14,6 +14,7 @@ object Constants { final val CaseTier1 = "case1" final val CaseTier2 = "case2" final val CaseTier3 = "case3" + final val Chamelium = "chameliumBlock" final val Charger = "charger" final val Disassembler = "disassembler" final val DiskDrive = "diskDrive" @@ -25,6 +26,8 @@ object Constants { final val MotionSensor = "motionSensor" final val PowerConverter = "powerConverter" final val PowerDistributor = "powerDistributor" + final val Print = "print" + final val Printer = "printer" final val Raid = "raid" final val Redstone = "redstone" final val Robot = "robot" @@ -53,6 +56,7 @@ object Constants { final val CardContainerTier1 = "cardContainer1" final val CardContainerTier2 = "cardContainer2" final val CardContainerTier3 = "cardContainer3" + final val Chamelium = "chamelium" final val Chip1 = "chip1" final val Chip2 = "chip2" final val Chip3 = "chip3" @@ -87,6 +91,8 @@ object Constants { final val HDDTier1 = "hdd1" final val HDDTier2 = "hdd2" final val HDDTier3 = "hdd3" + final val InkCartridge = "inkCartridge" + final val InkCartridgeEmpty = "inkCartridgeEmpty" final val InternetCard = "internetCard" final val Interweb = "interweb" final val InventoryControllerUpgrade = "inventoryControllerUpgrade" @@ -94,6 +100,7 @@ object Constants { final val IronNugget = "nuggetIron" final val LeashUpgrade = "leashUpgrade" final val LinkedCard = "linkedCard" + final val LootDisk = "lootDisk" final val LuaBios = "luaBios" final val MicrocontrollerCaseCreative = "microcontrollerCaseCreative" final val MicrocontrollerCaseTier1 = "microcontrollerCase1" @@ -101,7 +108,6 @@ object Constants { final val NavigationUpgrade = "navigationUpgrade" final val NetworkCard = "lanCard" final val NumPad = "numPad" - final val OpenOS = "openOS" final val PistonUpgrade = "pistonUpgrade" final val Present = "present" final val PrintedCircuitBoard = "printedCircuitBoard" diff --git a/src/main/scala/li/cil/oc/OpenComputers.scala b/src/main/scala/li/cil/oc/OpenComputers.scala index 8d18f839a..224453058 100644 --- a/src/main/scala/li/cil/oc/OpenComputers.scala +++ b/src/main/scala/li/cil/oc/OpenComputers.scala @@ -21,7 +21,7 @@ object OpenComputers { final val Version = "@VERSION@" - var log = LogManager.getLogger("OpenComputers") + var log = LogManager.getLogger(Name) @SidedProxy(clientSide = "li.cil.oc.client.Proxy", serverSide = "li.cil.oc.server.Proxy") var proxy: Proxy = null diff --git a/src/main/scala/li/cil/oc/client/renderer/block/Print.scala b/src/main/scala/li/cil/oc/client/renderer/block/Print.scala index 6fac30b2b..979c7bcfb 100644 --- a/src/main/scala/li/cil/oc/client/renderer/block/Print.scala +++ b/src/main/scala/li/cil/oc/client/renderer/block/Print.scala @@ -1,5 +1,6 @@ package li.cil.oc.client.renderer.block +import li.cil.oc.Constants import li.cil.oc.api.Items import li.cil.oc.common.block import li.cil.oc.common.item.data.PrintData @@ -12,7 +13,7 @@ import net.minecraft.util.IIcon import net.minecraftforge.common.util.ForgeDirection object Print { - lazy val printBlock = Items.get("print").block().asInstanceOf[block.Print] + lazy val printBlock = Items.get(Constants.BlockName.Print).block().asInstanceOf[block.Print] def render(data: PrintData, state: Boolean, facing: ForgeDirection, x: Int, y: Int, z: Int, block: Block, renderer: RenderBlocks): Unit = { val shapes = if (state) data.stateOn else data.stateOff diff --git a/src/main/scala/li/cil/oc/client/renderer/item/ItemRenderer.scala b/src/main/scala/li/cil/oc/client/renderer/item/ItemRenderer.scala index ef519b464..017cd24e8 100644 --- a/src/main/scala/li/cil/oc/client/renderer/item/ItemRenderer.scala +++ b/src/main/scala/li/cil/oc/client/renderer/item/ItemRenderer.scala @@ -38,8 +38,8 @@ object ItemRenderer extends IItemRenderer { lazy val drone = api.Items.get(Constants.ItemName.Drone) lazy val floppy = api.Items.get(Constants.ItemName.Floppy) - lazy val lootDisk = api.Items.get("lootDisk") - lazy val print = api.Items.get("print") + lazy val lootDisk = api.Items.get(Constants.ItemName.LootDisk) + lazy val print = api.Items.get(Constants.BlockName.Print) lazy val nullShape = new PrintData.Shape(ExtendedAABB.unitBounds, Settings.resourceDomain + ":White", Some(Color.Lime)) diff --git a/src/main/scala/li/cil/oc/common/Loot.scala b/src/main/scala/li/cil/oc/common/Loot.scala index 9b3ee9048..a976497ef 100644 --- a/src/main/scala/li/cil/oc/common/Loot.scala +++ b/src/main/scala/li/cil/oc/common/Loot.scala @@ -4,6 +4,7 @@ import java.io import java.util.Random import cpw.mods.fml.common.eventhandler.SubscribeEvent +import li.cil.oc.Constants import li.cil.oc.OpenComputers import li.cil.oc.Settings import li.cil.oc.api @@ -106,7 +107,7 @@ object Loot extends WeightedRandomChestContent(Items.createOpenOS(), 1, 1, Setti case _ => } - val disk = api.Items.get("lootDisk").createItemStack(1) + val disk = api.Items.get(Constants.ItemName.LootDisk).createItemStack(1) disk.setTagCompound(tag) disk diff --git a/src/main/scala/li/cil/oc/common/block/Item.scala b/src/main/scala/li/cil/oc/common/block/Item.scala index b9ba7195b..17531006c 100644 --- a/src/main/scala/li/cil/oc/common/block/Item.scala +++ b/src/main/scala/li/cil/oc/common/block/Item.scala @@ -50,7 +50,7 @@ class Item(value: Block) extends ItemBlock(value) { override def getMetadata(itemDamage: Int) = itemDamage override def getItemStackDisplayName(stack: ItemStack): String = { - if (api.Items.get(stack) == api.Items.get("print")) { + if (api.Items.get(stack) == api.Items.get(Constants.BlockName.Print)) { val data = new PrintData(stack) data.label.getOrElse(super.getItemStackDisplayName(stack)) } diff --git a/src/main/scala/li/cil/oc/common/block/Microcontroller.scala b/src/main/scala/li/cil/oc/common/block/Microcontroller.scala index de1ede9e4..dc22a4173 100644 --- a/src/main/scala/li/cil/oc/common/block/Microcontroller.scala +++ b/src/main/scala/li/cil/oc/common/block/Microcontroller.scala @@ -2,6 +2,7 @@ package li.cil.oc.common.block import java.util +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.client.KeyBindings @@ -82,7 +83,7 @@ class Microcontroller(protected implicit val tileTag: ClassTag[tileentity.Microc } true } - else if (api.Items.get(player.getHeldItem) == api.Items.get("eeprom")) { + else if (api.Items.get(player.getHeldItem) == api.Items.get(Constants.ItemName.EEPROM)) { if (!world.isRemote) { world.getTileEntity(x, y, z) match { case mcu: tileentity.Microcontroller => diff --git a/src/main/scala/li/cil/oc/common/item/InkCartridge.scala b/src/main/scala/li/cil/oc/common/item/InkCartridge.scala index 8563ab588..f8ed8bee8 100644 --- a/src/main/scala/li/cil/oc/common/item/InkCartridge.scala +++ b/src/main/scala/li/cil/oc/common/item/InkCartridge.scala @@ -1,5 +1,6 @@ package li.cil.oc.common.item +import li.cil.oc.Constants import li.cil.oc.api import net.minecraft.item.ItemStack @@ -7,8 +8,8 @@ class InkCartridge(val parent: Delegator) extends Delegate { override def maxStackSize = 1 override def getContainerItem(stack: ItemStack): ItemStack = { - if (api.Items.get(stack) == api.Items.get("inkCartridge")) - api.Items.get("inkCartridgeEmpty").createItemStack(1) + if (api.Items.get(stack) == api.Items.get(Constants.ItemName.InkCartridge)) + api.Items.get(Constants.ItemName.InkCartridgeEmpty).createItemStack(1) else super.getContainerItem(stack) } diff --git a/src/main/scala/li/cil/oc/common/item/data/MicrocontrollerData.scala b/src/main/scala/li/cil/oc/common/item/data/MicrocontrollerData.scala index 03ea3f7bd..67303f58d 100644 --- a/src/main/scala/li/cil/oc/common/item/data/MicrocontrollerData.scala +++ b/src/main/scala/li/cil/oc/common/item/data/MicrocontrollerData.scala @@ -30,7 +30,7 @@ class MicrocontrollerData extends ItemData { // Reserve slot for EEPROM if necessary, avoids having to resize the // components array in the MCU tile entity, which isn't possible currently. - if (!components.exists(stack => api.Items.get(stack) == api.Items.get("eeprom"))) { + if (!components.exists(stack => api.Items.get(stack) == api.Items.get(Constants.ItemName.EEPROM))) { components :+= null } } diff --git a/src/main/scala/li/cil/oc/common/item/data/PrintData.scala b/src/main/scala/li/cil/oc/common/item/data/PrintData.scala index 2f6410716..78a3038e3 100644 --- a/src/main/scala/li/cil/oc/common/item/data/PrintData.scala +++ b/src/main/scala/li/cil/oc/common/item/data/PrintData.scala @@ -1,5 +1,6 @@ package li.cil.oc.common.item.data +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.util.Color @@ -72,7 +73,7 @@ class PrintData extends ItemData { } def createItemStack() = { - val stack = api.Items.get("print").createItemStack(1) + val stack = api.Items.get(Constants.BlockName.Print).createItemStack(1) save(stack) stack } @@ -125,9 +126,9 @@ object PrintData { private val inkPerCartridge = Settings.get.printInkValue def materialValue(stack: ItemStack) = { - if (api.Items.get(stack) == api.Items.get("chamelium")) + if (api.Items.get(stack) == api.Items.get(Constants.ItemName.Chamelium)) materialPerItem - else if (api.Items.get(stack) == api.Items.get("print")) { + else if (api.Items.get(stack) == api.Items.get(Constants.BlockName.Print)) { val data = new PrintData(stack) computeCosts(data) match { case Some((materialRequired, inkRequired)) => (materialRequired * Settings.get.printRecycleRate).toInt @@ -138,7 +139,7 @@ object PrintData { } def inkValue(stack: ItemStack) = { - if (api.Items.get(stack) == api.Items.get("inkCartridge")) + if (api.Items.get(stack) == api.Items.get(Constants.ItemName.InkCartridge)) inkPerCartridge else if (Color.isDye(stack)) inkPerCartridge / 10 diff --git a/src/main/scala/li/cil/oc/common/recipe/ExtendedRecipe.scala b/src/main/scala/li/cil/oc/common/recipe/ExtendedRecipe.scala index a76367cbe..99ae3c23b 100644 --- a/src/main/scala/li/cil/oc/common/recipe/ExtendedRecipe.scala +++ b/src/main/scala/li/cil/oc/common/recipe/ExtendedRecipe.scala @@ -38,7 +38,7 @@ object ExtendedRecipe { ) private lazy val robot = api.Items.get(Constants.BlockName.Robot) private lazy val tablet = api.Items.get(Constants.ItemName.Tablet) - private lazy val print = api.Items.get("print") + private lazy val print = api.Items.get(Constants.BlockName.Print) private lazy val disabled = { val stack = new ItemStack(Blocks.dirt) val tag = new NBTTagCompound() diff --git a/src/main/scala/li/cil/oc/common/recipe/Recipes.scala b/src/main/scala/li/cil/oc/common/recipe/Recipes.scala index 6997a52d2..30912124e 100644 --- a/src/main/scala/li/cil/oc/common/recipe/Recipes.scala +++ b/src/main/scala/li/cil/oc/common/recipe/Recipes.scala @@ -125,14 +125,14 @@ object Recipes { val navigationUpgrade = api.Items.get(Constants.ItemName.NavigationUpgrade) val mcu = api.Items.get(Constants.BlockName.Microcontroller) val floppy = api.Items.get(Constants.ItemName.Floppy) - val lootDisk = api.Items.get("lootDisk") + val lootDisk = api.Items.get(Constants.ItemName.LootDisk) val drone = api.Items.get(Constants.ItemName.Drone) val eeprom = api.Items.get(Constants.ItemName.EEPROM) val robot = api.Items.get(Constants.BlockName.Robot) val tablet = api.Items.get(Constants.ItemName.Tablet) - val chamelium = api.Items.get("chamelium") - val chameliumBlock = api.Items.get("chameliumBlock") - val print = api.Items.get("print") + val chamelium = api.Items.get(Constants.ItemName.Chamelium) + val chameliumBlock = api.Items.get(Constants.BlockName.Chamelium) + val print = api.Items.get(Constants.BlockName.Print) // Navigation upgrade recrafting. GameRegistry.addRecipe(new ExtendedShapelessOreRecipe( @@ -215,9 +215,9 @@ object Recipes { // Hard disk formatting. val hdds = Array( - api.Items.get("hdd1"), - api.Items.get("hdd2"), - api.Items.get("hdd3") + api.Items.get(Constants.ItemName.HDDTier1), + api.Items.get(Constants.ItemName.HDDTier2), + api.Items.get(Constants.ItemName.HDDTier3) ) for (hdd <- hdds) { GameRegistry.addRecipe(new ExtendedShapelessOreRecipe(hdd.createItemStack(1), hdd.createItemStack(1))) diff --git a/src/main/scala/li/cil/oc/common/tileentity/Microcontroller.scala b/src/main/scala/li/cil/oc/common/tileentity/Microcontroller.scala index 3e5efb0a6..4a8d146df 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Microcontroller.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Microcontroller.scala @@ -2,6 +2,7 @@ package li.cil.oc.common.tileentity import cpw.mods.fml.relauncher.Side import cpw.mods.fml.relauncher.SideOnly +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.api.internal @@ -237,7 +238,7 @@ class Microcontroller extends traits.PowerAcceptor with traits.Hub with traits.C // For hotswapping EEPROMs. def changeEEPROM(newEeprom: ItemStack) = { - val oldEepromIndex = info.components.indexWhere(api.Items.get(_) == api.Items.get("eeprom")) + val oldEepromIndex = info.components.indexWhere(api.Items.get(_) == api.Items.get(Constants.ItemName.EEPROM)) if (oldEepromIndex >= 0) { val oldEeprom = info.components(oldEepromIndex) super.setInventorySlotContents(oldEepromIndex, newEeprom) diff --git a/src/main/scala/li/cil/oc/integration/fmp/CablePart.scala b/src/main/scala/li/cil/oc/integration/fmp/CablePart.scala index ec08516ca..652c57049 100644 --- a/src/main/scala/li/cil/oc/integration/fmp/CablePart.scala +++ b/src/main/scala/li/cil/oc/integration/fmp/CablePart.scala @@ -7,6 +7,7 @@ import codechicken.lib.vec.Vector3 import codechicken.multipart._ import cpw.mods.fml.relauncher.Side import cpw.mods.fml.relauncher.SideOnly +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.api.Items @@ -55,9 +56,9 @@ class CablePart(val original: Option[tileentity.Cable] = None) extends SimpleBlo // ----------------------------------------------------------------------- // - override def simpleBlock = Items.get("cable").block().asInstanceOf[Cable] + override def simpleBlock = Items.get(Constants.BlockName.Cable).block().asInstanceOf[Cable] - def getType = Settings.namespace + "cable" + def getType = Settings.namespace + Constants.BlockName.Cable override def doesTick = false diff --git a/src/main/scala/li/cil/oc/integration/fmp/EventHandler.scala b/src/main/scala/li/cil/oc/integration/fmp/EventHandler.scala index bbfccd8eb..79e08eb07 100644 --- a/src/main/scala/li/cil/oc/integration/fmp/EventHandler.scala +++ b/src/main/scala/li/cil/oc/integration/fmp/EventHandler.scala @@ -6,6 +6,7 @@ import codechicken.lib.vec.BlockCoord import codechicken.lib.vec.Vector3 import codechicken.multipart.TileMultipart import cpw.mods.fml.common.eventhandler.SubscribeEvent +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api.Items import li.cil.oc.client.PacketSender @@ -51,10 +52,10 @@ object EventHandler { case itemBlock: ItemBlock => itemBlock.field_150939_a match { case simpleBlock: SimpleBlock => - if (simpleBlock == Items.get("cable").block()) { + if (simpleBlock == Items.get(Constants.BlockName.Cable).block()) { placeDelegatePart(player, hit, new CablePart()) } - else if (simpleBlock == Items.get("print").block()) { + else if (simpleBlock == Items.get(Constants.BlockName.Print).block()) { val part = new PrintPart() part.data.load(player.getHeldItem) part.facing = yaw2Direction((player.rotationYaw / 360 * 4).round & 3).getOpposite diff --git a/src/main/scala/li/cil/oc/integration/fmp/MultipartConverter.scala b/src/main/scala/li/cil/oc/integration/fmp/MultipartConverter.scala index 00c7571b1..1b3ca772d 100644 --- a/src/main/scala/li/cil/oc/integration/fmp/MultipartConverter.scala +++ b/src/main/scala/li/cil/oc/integration/fmp/MultipartConverter.scala @@ -5,6 +5,7 @@ import java.util import codechicken.lib.vec.BlockCoord import codechicken.multipart.MultiPartRegistry import codechicken.multipart.MultiPartRegistry.IPartConverter +import li.cil.oc.Constants import li.cil.oc.api.Items import li.cil.oc.common.tileentity.Cable import li.cil.oc.common.tileentity.Print @@ -16,8 +17,8 @@ object MultipartConverter extends IPartConverter { } override def blockTypes = util.Arrays.asList( - Items.get("cable").block, - Items.get("print").block + Items.get(Constants.BlockName.Cable).block, + Items.get(Constants.BlockName.Print).block ) override def convert(world: World, pos: BlockCoord) = { diff --git a/src/main/scala/li/cil/oc/integration/fmp/PrintPart.scala b/src/main/scala/li/cil/oc/integration/fmp/PrintPart.scala index 00319f6ad..18ec70ef4 100644 --- a/src/main/scala/li/cil/oc/integration/fmp/PrintPart.scala +++ b/src/main/scala/li/cil/oc/integration/fmp/PrintPart.scala @@ -18,6 +18,7 @@ import codechicken.multipart.TSlottedPart import codechicken.multipart.scalatraits.TSlottedTile import cpw.mods.fml.relauncher.Side import cpw.mods.fml.relauncher.SideOnly +import li.cil.oc.Constants import li.cil.oc.Settings import li.cil.oc.api.Items import li.cil.oc.client.renderer.block.Print @@ -104,9 +105,9 @@ class PrintPart(val original: Option[tileentity.Print] = None) extends SimpleBlo // ----------------------------------------------------------------------- // - override def simpleBlock = Items.get("print").block().asInstanceOf[Print] + override def simpleBlock = Items.get(Constants.BlockName.Print).block().asInstanceOf[Print] - def getType = Settings.namespace + "print" + def getType = Settings.namespace + Constants.BlockName.Print override def doesTick = false diff --git a/src/main/scala/li/cil/oc/integration/gc/DriverWorldSensorCard.scala b/src/main/scala/li/cil/oc/integration/gc/DriverWorldSensorCard.scala index 8208c7249..261801db2 100644 --- a/src/main/scala/li/cil/oc/integration/gc/DriverWorldSensorCard.scala +++ b/src/main/scala/li/cil/oc/integration/gc/DriverWorldSensorCard.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.gc +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -11,7 +12,7 @@ import net.minecraft.item.ItemStack object DriverWorldSensorCard extends Item with HostAware with EnvironmentAware { override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("worldSensorCard")) + isOneOf(stack, api.Items.get(Constants.ItemName.WorldSensorCard)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = if (Mods.Galacticraft.isAvailable) new WorldSensorCard(host) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverLootDisk.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverLootDisk.scala index 60a7ea24c..ef00c1138 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverLootDisk.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverLootDisk.scala @@ -13,7 +13,7 @@ import net.minecraftforge.common.DimensionManager object DriverLootDisk extends Item { override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("lootDisk")) + isOneOf(stack, api.Items.get(Constants.ItemName.LootDisk)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = if (stack.hasTagCompound) { diff --git a/src/main/scala/li/cil/oc/integration/stargatetech2/DriverAbstractBusCard.scala b/src/main/scala/li/cil/oc/integration/stargatetech2/DriverAbstractBusCard.scala index 7f909baa5..b90a7c831 100644 --- a/src/main/scala/li/cil/oc/integration/stargatetech2/DriverAbstractBusCard.scala +++ b/src/main/scala/li/cil/oc/integration/stargatetech2/DriverAbstractBusCard.scala @@ -1,5 +1,6 @@ package li.cil.oc.integration.stargatetech2 +import li.cil.oc.Constants import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.EnvironmentHost @@ -12,7 +13,7 @@ import net.minecraft.item.ItemStack object DriverAbstractBusCard extends Item with HostAware with EnvironmentAware { override def worksWith(stack: ItemStack) = - isOneOf(stack, api.Items.get("abstractBusCard")) + isOneOf(stack, api.Items.get(Constants.ItemName.AbstractBusCard)) override def worksWith(stack: ItemStack, host: Class[_ <: EnvironmentHost]) = worksWith(stack) && (isComputer(host) || isRobot(host) || isServer(host) || isMicrocontroller(host)) From eaf97ae33ab213c69a4cd0c607821fb3020ad640 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Thu, 26 Feb 2015 19:09:06 +0100 Subject: [PATCH 3/7] Renamed some internal constants for consistency. Fixed change to OpenOS disk creation in last commit / merge. (cherry picked from commit b6837d158329632bf7ed281a490e0c8a33cfcd2b) Conflicts: src/main/scala/li/cil/oc/Constants.scala src/main/scala/li/cil/oc/common/Achievement.scala src/main/scala/li/cil/oc/common/Loot.scala src/main/scala/li/cil/oc/common/init/Items.scala --- src/main/scala/li/cil/oc/Constants.scala | 6 +++--- src/main/scala/li/cil/oc/common/Achievement.scala | 3 ++- src/main/scala/li/cil/oc/common/item/Present.scala | 6 +++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/scala/li/cil/oc/Constants.scala b/src/main/scala/li/cil/oc/Constants.scala index 230808d2b..8f2453699 100644 --- a/src/main/scala/li/cil/oc/Constants.scala +++ b/src/main/scala/li/cil/oc/Constants.scala @@ -57,9 +57,9 @@ object Constants { final val CardContainerTier2 = "cardContainer2" final val CardContainerTier3 = "cardContainer3" final val Chamelium = "chamelium" - final val Chip1 = "chip1" - final val Chip2 = "chip2" - final val Chip3 = "chip3" + final val ChipTier1 = "chip1" + final val ChipTier2 = "chip2" + final val ChipTier3 = "chip3" final val ChunkloaderUpgrade = "chunkloaderUpgrade" final val CircuitBoard = "circuitBoard" final val ComponentBusTier1 = "componentBus1" diff --git a/src/main/scala/li/cil/oc/common/Achievement.scala b/src/main/scala/li/cil/oc/common/Achievement.scala index 499c89b72..9f5a6fc75 100644 --- a/src/main/scala/li/cil/oc/common/Achievement.scala +++ b/src/main/scala/li/cil/oc/common/Achievement.scala @@ -1,5 +1,6 @@ package li.cil.oc.common +import li.cil.oc.Constants import li.cil.oc.api.detail.ItemInfo import li.cil.oc.common.init.Items import net.minecraft.entity.player.EntityPlayer @@ -20,7 +21,7 @@ object Achievement { val Disassembler = new Achievement("oc.disassembler", "oc.disassembler", 2, 2, Items.get("disassembler").createItemStack(1), Transistor, "disassembler") val Microchip = new Achievement("oc.chip", "oc.chip", - 4, 0, Items.get("chip1").createItemStack(1), Transistor, "chip1", "chip2", "chip3") + 4, 0, Items.get(Constants.ItemName.ChipTier1).createItemStack(1), Transistor, Constants.ItemName.ChipTier1, Constants.ItemName.ChipTier2, Constants.ItemName.ChipTier3) val Capacitor = new Achievement("oc.capacitor", "oc.capacitor", 6, -1, Items.get("capacitor").createItemStack(1), Microchip, "capacitor") val Assembler = new Achievement("oc.assembler", "oc.assembler", diff --git a/src/main/scala/li/cil/oc/common/item/Present.scala b/src/main/scala/li/cil/oc/common/item/Present.scala index 943d50f95..eee0a3fc5 100644 --- a/src/main/scala/li/cil/oc/common/item/Present.scala +++ b/src/main/scala/li/cil/oc/common/item/Present.scala @@ -54,7 +54,7 @@ object Present { add(Constants.ItemName.Transistor, 350) add(Constants.ItemName.Floppy, 340) add(Constants.ItemName.PrintedCircuitBoard, 320) - add(Constants.ItemName.Chip1, 290) + add(Constants.ItemName.ChipTier1, 290) add(Constants.ItemName.EEPROM, 250) add(Constants.ItemName.Interweb, 220) add(Constants.ItemName.Card, 190) @@ -83,7 +83,7 @@ object Present { add(Constants.ItemName.RedstoneCardTier2, 17) add(Constants.ItemName.RAMTier2, 15) add(Constants.ItemName.DatabaseUpgradeTier1, 15) - add(Constants.ItemName.Chip2, 15) + add(Constants.ItemName.ChipTier2, 15) add(Constants.ItemName.ComponentBusTier1, 13) add(Constants.ItemName.BatteryUpgradeTier2, 12) add(Constants.ItemName.WirelessNetworkCard, 11) @@ -107,7 +107,7 @@ object Present { add(Constants.ItemName.DroneCaseTier2, 4) add(Constants.ItemName.DatabaseUpgradeTier2, 4) add(Constants.ItemName.ServerTier2, 4) - add(Constants.ItemName.Chip3, 3) + add(Constants.ItemName.ChipTier3, 3) add(Constants.ItemName.ComponentBusTier3, 3) add(Constants.ItemName.TractorBeamUpgrade, 3) add(Constants.ItemName.BatteryUpgradeTier3, 3) From 838083b755b40324677fe50213cd55083e34b96d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Tue, 7 Apr 2015 13:46:26 +0200 Subject: [PATCH 4/7] All the constants. All of them. --- .../scala/li/cil/oc/common/Achievement.scala | 119 ++++++++++++------ 1 file changed, 78 insertions(+), 41 deletions(-) diff --git a/src/main/scala/li/cil/oc/common/Achievement.scala b/src/main/scala/li/cil/oc/common/Achievement.scala index 9f5a6fc75..c1119c7d8 100644 --- a/src/main/scala/li/cil/oc/common/Achievement.scala +++ b/src/main/scala/li/cil/oc/common/Achievement.scala @@ -1,6 +1,7 @@ package li.cil.oc.common import li.cil.oc.Constants +import li.cil.oc.OpenComputers import li.cil.oc.api.detail.ItemInfo import li.cil.oc.common.init.Items import net.minecraft.entity.player.EntityPlayer @@ -17,93 +18,129 @@ object Achievement { val CraftingMap = mutable.Map.empty[ItemInfo, MCAchievement] val Transistor = new Achievement("oc.transistor", "oc.transistor", - 2, 0, Items.get("transistor").createItemStack(1), null, "transistor").setIndependent() + 2, 0, Items.get(Constants.ItemName.Transistor).createItemStack(1), + null, Constants.ItemName.Transistor).setIndependent() val Disassembler = new Achievement("oc.disassembler", "oc.disassembler", - 2, 2, Items.get("disassembler").createItemStack(1), Transistor, "disassembler") + 2, 2, Items.get(Constants.BlockName.Disassembler).createItemStack(1), + Transistor, Constants.BlockName.Disassembler) val Microchip = new Achievement("oc.chip", "oc.chip", - 4, 0, Items.get(Constants.ItemName.ChipTier1).createItemStack(1), Transistor, Constants.ItemName.ChipTier1, Constants.ItemName.ChipTier2, Constants.ItemName.ChipTier3) + 4, 0, Items.get(Constants.ItemName.ChipTier1).createItemStack(1), + Transistor, Constants.ItemName.ChipTier1, Constants.ItemName.ChipTier2, Constants.ItemName.ChipTier3) val Capacitor = new Achievement("oc.capacitor", "oc.capacitor", - 6, -1, Items.get("capacitor").createItemStack(1), Microchip, "capacitor") + 6, -1, Items.get(Constants.BlockName.Capacitor).createItemStack(1), + Microchip, Constants.BlockName.Capacitor) val Assembler = new Achievement("oc.assembler", "oc.assembler", - 8, -2, Items.get("assembler").createItemStack(1), Capacitor, "assembler") + 8, -2, Items.get(Constants.BlockName.Assembler).createItemStack(1), + Capacitor, Constants.BlockName.Assembler) val Microcontroller = new Achievement("oc.microcontroller", "oc.microcontroller", - 10, -2, Items.get("microcontroller").createItemStack(1), Assembler) + 10, -2, Items.get(Constants.BlockName.Microcontroller).createItemStack(1), + Assembler) val Robot = new Achievement("oc.robot", "oc.robot", - 10, -3, Items.get("robot").createItemStack(1), Assembler) + 10, -3, Items.get(Constants.BlockName.Robot).createItemStack(1), + Assembler) val Drone = new Achievement("oc.drone", "oc.drone", - 10, -4, Items.get("drone").createItemStack(1), Assembler) + 10, -4, Items.get(Constants.ItemName.Drone).createItemStack(1), + Assembler) val Tablet = new Achievement("oc.tablet", "oc.tablet", - 10, -5, Items.get("tablet").createItemStack(1), Assembler) + 10, -5, Items.get(Constants.ItemName.Tablet).createItemStack(1), + Assembler) val Charger = new Achievement("oc.charger", "oc.charger", - 8, -1, Items.get("charger").createItemStack(1), Capacitor, "charger") + 8, -1, Items.get(Constants.BlockName.Charger).createItemStack(1), + Capacitor, Constants.BlockName.Charger) val CPU = new Achievement("oc.cpu", "oc.cpu", - 6, 0, Items.get("cpu1").createItemStack(1), Microchip, "cpu1", "cpu2", "cpu3") + 6, 0, Items.get(Constants.ItemName.CPUTier1).createItemStack(1), + Microchip, Constants.ItemName.CPUTier1, Constants.ItemName.CPUTier2, Constants.ItemName.CPUTier3) val MotionSensor = new Achievement("oc.motionSensor", "oc.motionSensor", - 8, 0, Items.get("motionSensor").createItemStack(1), CPU, "motionSensor") + 8, 0, Items.get(Constants.BlockName.MotionSensor).createItemStack(1), + CPU, Constants.BlockName.MotionSensor) val Geolyzer = new Achievement("oc.geolyzer", "oc.geolyzer", - 8, 1, Items.get("geolyzer").createItemStack(1), CPU, "geolyzer") + 8, 1, Items.get(Constants.BlockName.Geolyzer).createItemStack(1), + CPU, Constants.BlockName.Geolyzer) val RedstoneIO = new Achievement("oc.redstoneIO", "oc.redstoneIO", - 8, 2, Items.get("redstone").createItemStack(1), CPU, "redstone") + 8, 2, Items.get(Constants.BlockName.Redstone).createItemStack(1), + CPU, Constants.BlockName.Redstone) val EEPROM = new Achievement("oc.eeprom", "oc.eeprom", - 6, 3, Items.get("eeprom").createItemStack(1), Microchip, "eeprom") + 6, 3, Items.get(Constants.ItemName.EEPROM).createItemStack(1), + Microchip, Constants.ItemName.EEPROM) val Memory = new Achievement("oc.ram", "oc.ram", - 6, 4, Items.get("ram1").createItemStack(1), Microchip, "ram1", "ram2", "ram3", "ram4", "ram5", "ram6") + 6, 4, Items.get(Constants.ItemName.RAMTier1).createItemStack(1), + Microchip, Constants.ItemName.RAMTier1, Constants.ItemName.RAMTier2, Constants.ItemName.RAMTier3, Constants.ItemName.RAMTier4, Constants.ItemName.RAMTier5, Constants.ItemName.RAMTier6) val HDD = new Achievement("oc.hdd", "oc.hdd", - 6, 5, Items.get("hdd1").createItemStack(1), Microchip, "hdd1", "hdd2", "hdd3") + 6, 5, Items.get(Constants.ItemName.HDDTier1).createItemStack(1), + Microchip, Constants.ItemName.HDDTier1, Constants.ItemName.HDDTier2, Constants.ItemName.HDDTier3) val Case = new Achievement("oc.case", "oc.case", - 6, 6, Items.get("case1").createItemStack(1), Microchip, "case1", "case2", "case3") + 6, 6, Items.get(Constants.BlockName.CaseTier1).createItemStack(1), + Microchip, Constants.BlockName.CaseTier1, Constants.BlockName.CaseTier2, Constants.BlockName.CaseTier3) val Rack = new Achievement("oc.rack", "oc.rack", - 8, 6, Items.get("serverRack").createItemStack(1), Case, "serverRack") + 8, 6, Items.get(Constants.BlockName.ServerRack).createItemStack(1), + Case, Constants.BlockName.ServerRack) val Server = new Achievement("oc.server", "oc.server", - 10, 6, Items.get("server1").createItemStack(1), Rack, "server1", "server2", "server3") + 10, 6, Items.get(Constants.ItemName.ServerTier1).createItemStack(1), + Rack, Constants.ItemName.ServerTier1, Constants.ItemName.ServerTier2, Constants.ItemName.ServerTier3) val Screen = new Achievement("oc.screen", "oc.screen", - 6, 7, Items.get("screen1").createItemStack(1), Microchip, "screen1", "screen2", "screen3") + 6, 7, Items.get(Constants.BlockName.ScreenTier1).createItemStack(1), + Microchip, Constants.BlockName.ScreenTier1, Constants.BlockName.ScreenTier2, Constants.BlockName.ScreenTier3) val Keyboard = new Achievement("oc.keyboard", "oc.keyboard", - 8, 7, Items.get("keyboard").createItemStack(1), Screen, "keyboard") + 8, 7, Items.get(Constants.BlockName.Keyboard).createItemStack(1), + Screen, Constants.BlockName.Keyboard) val Hologram = new Achievement("oc.hologram", "oc.hologram", - 8, 8, Items.get("hologram1").createItemStack(1), Screen, "hologram1", "hologram2") + 8, 8, Items.get(Constants.BlockName.HologramTier1).createItemStack(1), + Screen, Constants.BlockName.HologramTier1, Constants.BlockName.HologramTier2) val DiskDrive = new Achievement("oc.diskDrive", "oc.diskDrive", - 6, 9, Items.get("diskDrive").createItemStack(1), Microchip, "diskDrive") + 6, 9, Items.get(Constants.BlockName.DiskDrive).createItemStack(1), + Microchip, Constants.BlockName.DiskDrive) val Floppy = new Achievement("oc.floppy", "oc.floppy", - 8, 9, Items.get("floppy").createItemStack(1), DiskDrive, "floppy") + 8, 9, Items.get(Constants.ItemName.Floppy).createItemStack(1), + DiskDrive, Constants.ItemName.Floppy) val OpenOS = new Achievement("oc.openOS", "oc.openOS", - 10, 9, Items.createOpenOS(), Floppy) + 10, 9, Items.createOpenOS(), + Floppy) val Raid = new Achievement("oc.raid", "oc.raid", - 8, 10, Items.get("raid").createItemStack(1), DiskDrive, "raid") + 8, 10, Items.get(Constants.BlockName.Raid).createItemStack(1), + DiskDrive, Constants.BlockName.Raid) val Card = new Achievement("oc.card", "oc.card", - 0, -2, Items.get("card").createItemStack(1), null, "card").setIndependent() + 0, -2, Items.get(Constants.ItemName.Card).createItemStack(1), + null, Constants.ItemName.Card).setIndependent() val RedstoneCard = new Achievement("oc.redstoneCard", "oc.redstoneCard", - -2, -4, Items.get("redstoneCard1").createItemStack(1), Card, "redstoneCard1", "redstoneCard2") + -2, -4, Items.get(Constants.ItemName.RedstoneCardTier1).createItemStack(1), + Card, Constants.ItemName.RedstoneCardTier1, Constants.ItemName.RedstoneCardTier2) val GraphicsCard = new Achievement("oc.graphicsCard", "oc.graphicsCard", - 0, -5, Items.get("graphicsCard1").createItemStack(1), Card, "graphicsCard1", "graphicsCard2", "graphicsCard3") + 0, -5, Items.get(Constants.ItemName.GraphicsCardTier1).createItemStack(1), + Card, Constants.ItemName.GraphicsCardTier1, Constants.ItemName.GraphicsCardTier2, Constants.ItemName.GraphicsCardTier3) val NetworkCard = new Achievement("oc.networkCard", "oc.networkCard", - 2, -4, Items.get("lanCard").createItemStack(1), Card, "lanCard") + 2, -4, Items.get(Constants.ItemName.NetworkCard).createItemStack(1), + Card, Constants.ItemName.NetworkCard) val WirelessNetworkCard = new Achievement("oc.wirelessNetworkCard", "oc.wirelessNetworkCard", - 2, -6, Items.get("wlanCard").createItemStack(1), NetworkCard, "wlanCard") + 2, -6, Items.get(Constants.ItemName.WirelessNetworkCard).createItemStack(1), + NetworkCard, Constants.ItemName.WirelessNetworkCard) val Cable = new Achievement("oc.cable", "oc.cable", - -2, 0, Items.get("cable").createItemStack(1), null, "cable").setIndependent() + -2, 0, Items.get(Constants.BlockName.Cable).createItemStack(1), + null, Constants.BlockName.Cable).setIndependent() val PowerDistributor = new Achievement("oc.powerDistributor", "oc.powerDistributor", - -4, -1, Items.get("powerDistributor").createItemStack(1), Cable, "powerDistributor") + -4, -1, Items.get(Constants.BlockName.PowerDistributor).createItemStack(1), + Cable, Constants.BlockName.PowerDistributor) val Switch = new Achievement("oc.switch", "oc.switch", - -4, 0, Items.get("switch").createItemStack(1), Cable, "switch", "accessPoint") + -4, 0, Items.get(Constants.BlockName.Switch).createItemStack(1), + Cable, Constants.BlockName.Switch, Constants.BlockName.AccessPoint) val Adapter = new Achievement("oc.adapter", "oc.adapter", - -4, 1, Items.get("adapter").createItemStack(1), Cable, "adapter") + -4, 1, Items.get(Constants.BlockName.Adapter).createItemStack(1), + Cable, Constants.BlockName.Adapter) def init() { // Missing @Override causes ambiguity, so cast is required; still a virtual call, // so Achievement.registerStat is still the method that's really being called. All.foreach(_.asInstanceOf[StatBase].registerStat()) - AchievementPage.registerAchievementPage(new AchievementPage("OpenComputers", All: _*)) + AchievementPage.registerAchievementPage(new AchievementPage(OpenComputers.Name, All: _*)) } def onAssemble(stack: ItemStack, player: EntityPlayer): Unit = { val descriptor = Items.get(stack) - if (descriptor == Items.get("microcontroller")) player.addStat(Microcontroller, 1) - if (descriptor == Items.get("robot")) player.addStat(Robot, 1) - if (descriptor == Items.get("drone")) player.addStat(Drone, 1) - if (descriptor == Items.get("tablet")) player.addStat(Tablet, 1) + if (descriptor == Items.get(Constants.BlockName.Microcontroller)) player.addStat(Microcontroller, 1) + if (descriptor == Items.get(Constants.BlockName.Robot)) player.addStat(Robot, 1) + if (descriptor == Items.get(Constants.ItemName.Drone)) player.addStat(Drone, 1) + if (descriptor == Items.get(Constants.ItemName.Tablet)) player.addStat(Tablet, 1) } def onCraft(stack: ItemStack, player: EntityPlayer): Unit = { From 715c68a127169cbdc24043061cb9396278fd875a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Tue, 7 Apr 2015 14:40:42 +0200 Subject: [PATCH 5/7] Builderized achievements. --- .../scala/li/cil/oc/common/Achievement.scala | 411 ++++++++++++------ src/main/scala/li/cil/oc/common/Loot.scala | 3 +- 2 files changed, 281 insertions(+), 133 deletions(-) diff --git a/src/main/scala/li/cil/oc/common/Achievement.scala b/src/main/scala/li/cil/oc/common/Achievement.scala index c1119c7d8..1fd7c6a93 100644 --- a/src/main/scala/li/cil/oc/common/Achievement.scala +++ b/src/main/scala/li/cil/oc/common/Achievement.scala @@ -13,120 +13,212 @@ import net.minecraftforge.common.AchievementPage import scala.collection.mutable object Achievement { - val All = mutable.ArrayBuffer.empty[Achievement] - + val All = mutable.ArrayBuffer.empty[MCAchievement] val CraftingMap = mutable.Map.empty[ItemInfo, MCAchievement] + val CustomCraftingMap = mutable.Map.empty[ItemStack, MCAchievement] + val AssemblingMap = mutable.Map.empty[ItemInfo, MCAchievement] - val Transistor = new Achievement("oc.transistor", "oc.transistor", - 2, 0, Items.get(Constants.ItemName.Transistor).createItemStack(1), - null, Constants.ItemName.Transistor).setIndependent() - val Disassembler = new Achievement("oc.disassembler", "oc.disassembler", - 2, 2, Items.get(Constants.BlockName.Disassembler).createItemStack(1), - Transistor, Constants.BlockName.Disassembler) - val Microchip = new Achievement("oc.chip", "oc.chip", - 4, 0, Items.get(Constants.ItemName.ChipTier1).createItemStack(1), - Transistor, Constants.ItemName.ChipTier1, Constants.ItemName.ChipTier2, Constants.ItemName.ChipTier3) - val Capacitor = new Achievement("oc.capacitor", "oc.capacitor", - 6, -1, Items.get(Constants.BlockName.Capacitor).createItemStack(1), - Microchip, Constants.BlockName.Capacitor) - val Assembler = new Achievement("oc.assembler", "oc.assembler", - 8, -2, Items.get(Constants.BlockName.Assembler).createItemStack(1), - Capacitor, Constants.BlockName.Assembler) - val Microcontroller = new Achievement("oc.microcontroller", "oc.microcontroller", - 10, -2, Items.get(Constants.BlockName.Microcontroller).createItemStack(1), - Assembler) - val Robot = new Achievement("oc.robot", "oc.robot", - 10, -3, Items.get(Constants.BlockName.Robot).createItemStack(1), - Assembler) - val Drone = new Achievement("oc.drone", "oc.drone", - 10, -4, Items.get(Constants.ItemName.Drone).createItemStack(1), - Assembler) - val Tablet = new Achievement("oc.tablet", "oc.tablet", - 10, -5, Items.get(Constants.ItemName.Tablet).createItemStack(1), - Assembler) - val Charger = new Achievement("oc.charger", "oc.charger", - 8, -1, Items.get(Constants.BlockName.Charger).createItemStack(1), - Capacitor, Constants.BlockName.Charger) - val CPU = new Achievement("oc.cpu", "oc.cpu", - 6, 0, Items.get(Constants.ItemName.CPUTier1).createItemStack(1), - Microchip, Constants.ItemName.CPUTier1, Constants.ItemName.CPUTier2, Constants.ItemName.CPUTier3) - val MotionSensor = new Achievement("oc.motionSensor", "oc.motionSensor", - 8, 0, Items.get(Constants.BlockName.MotionSensor).createItemStack(1), - CPU, Constants.BlockName.MotionSensor) - val Geolyzer = new Achievement("oc.geolyzer", "oc.geolyzer", - 8, 1, Items.get(Constants.BlockName.Geolyzer).createItemStack(1), - CPU, Constants.BlockName.Geolyzer) - val RedstoneIO = new Achievement("oc.redstoneIO", "oc.redstoneIO", - 8, 2, Items.get(Constants.BlockName.Redstone).createItemStack(1), - CPU, Constants.BlockName.Redstone) - val EEPROM = new Achievement("oc.eeprom", "oc.eeprom", - 6, 3, Items.get(Constants.ItemName.EEPROM).createItemStack(1), - Microchip, Constants.ItemName.EEPROM) - val Memory = new Achievement("oc.ram", "oc.ram", - 6, 4, Items.get(Constants.ItemName.RAMTier1).createItemStack(1), - Microchip, Constants.ItemName.RAMTier1, Constants.ItemName.RAMTier2, Constants.ItemName.RAMTier3, Constants.ItemName.RAMTier4, Constants.ItemName.RAMTier5, Constants.ItemName.RAMTier6) - val HDD = new Achievement("oc.hdd", "oc.hdd", - 6, 5, Items.get(Constants.ItemName.HDDTier1).createItemStack(1), - Microchip, Constants.ItemName.HDDTier1, Constants.ItemName.HDDTier2, Constants.ItemName.HDDTier3) - val Case = new Achievement("oc.case", "oc.case", - 6, 6, Items.get(Constants.BlockName.CaseTier1).createItemStack(1), - Microchip, Constants.BlockName.CaseTier1, Constants.BlockName.CaseTier2, Constants.BlockName.CaseTier3) - val Rack = new Achievement("oc.rack", "oc.rack", - 8, 6, Items.get(Constants.BlockName.ServerRack).createItemStack(1), - Case, Constants.BlockName.ServerRack) - val Server = new Achievement("oc.server", "oc.server", - 10, 6, Items.get(Constants.ItemName.ServerTier1).createItemStack(1), - Rack, Constants.ItemName.ServerTier1, Constants.ItemName.ServerTier2, Constants.ItemName.ServerTier3) - val Screen = new Achievement("oc.screen", "oc.screen", - 6, 7, Items.get(Constants.BlockName.ScreenTier1).createItemStack(1), - Microchip, Constants.BlockName.ScreenTier1, Constants.BlockName.ScreenTier2, Constants.BlockName.ScreenTier3) - val Keyboard = new Achievement("oc.keyboard", "oc.keyboard", - 8, 7, Items.get(Constants.BlockName.Keyboard).createItemStack(1), - Screen, Constants.BlockName.Keyboard) - val Hologram = new Achievement("oc.hologram", "oc.hologram", - 8, 8, Items.get(Constants.BlockName.HologramTier1).createItemStack(1), - Screen, Constants.BlockName.HologramTier1, Constants.BlockName.HologramTier2) - val DiskDrive = new Achievement("oc.diskDrive", "oc.diskDrive", - 6, 9, Items.get(Constants.BlockName.DiskDrive).createItemStack(1), - Microchip, Constants.BlockName.DiskDrive) - val Floppy = new Achievement("oc.floppy", "oc.floppy", - 8, 9, Items.get(Constants.ItemName.Floppy).createItemStack(1), - DiskDrive, Constants.ItemName.Floppy) - val OpenOS = new Achievement("oc.openOS", "oc.openOS", - 10, 9, Items.createOpenOS(), - Floppy) - val Raid = new Achievement("oc.raid", "oc.raid", - 8, 10, Items.get(Constants.BlockName.Raid).createItemStack(1), - DiskDrive, Constants.BlockName.Raid) + val Transistor = newAchievement("transistor"). + at(2, 0). + whenCrafting(Constants.ItemName.Transistor). + add() + val Disassembler = newAchievement("disassembler"). + at(2, 2). + whenCrafting(Constants.BlockName.Disassembler). + withParent(Transistor). + add() + val Microchip = newAchievement("chip"). + at(4, 0). + withParent(Transistor). + whenCrafting(Constants.ItemName.ChipTier1). + whenCrafting(Constants.ItemName.ChipTier2). + whenCrafting(Constants.ItemName.ChipTier3). + add() + val Capacitor = newAchievement("capacitor"). + at(6, -1). + withParent(Microchip). + whenCrafting(Constants.BlockName.Capacitor). + add() + val Assembler = newAchievement("assembler"). + at(8, -2). + withParent(Capacitor). + whenCrafting(Constants.BlockName.Assembler). + add() + val Microcontroller = newAchievement("microcontroller"). + at(10, -2). + withParent(Assembler). + whenAssembling(Constants.BlockName.Microcontroller). + add() + val Robot = newAchievement("robot"). + at(10, -3). + withParent(Assembler). + whenAssembling(Constants.BlockName.Robot). + add() + val Drone = newAchievement("drone"). + at(10, -4). + withParent(Assembler). + whenAssembling(Constants.ItemName.Drone). + add() + val Tablet = newAchievement("tablet"). + at(10, -5). + withParent(Assembler). + whenAssembling(Constants.ItemName.Tablet). + add() + val Charger = newAchievement("charger"). + at(8, -1). + withParent(Capacitor). + whenCrafting(Constants.BlockName.Charger). + add() + val CPU = newAchievement("cpu"). + at(6, 0). + withParent(Microchip). + whenCrafting(Constants.ItemName.CPUTier1). + whenCrafting(Constants.ItemName.CPUTier2). + whenCrafting(Constants.ItemName.CPUTier3). + add() + val MotionSensor = newAchievement("motionSensor"). + at(8, 0). + withParent(CPU). + whenCrafting(Constants.BlockName.MotionSensor). + add() + val Geolyzer = newAchievement("geolyzer"). + at(8, 1). + withParent(CPU). + whenCrafting(Constants.BlockName.Geolyzer). + add() + val RedstoneIO = newAchievement("redstoneIO"). + at(8, 2). + withParent(CPU). + whenCrafting(Constants.BlockName.Redstone). + add() + val EEPROM = newAchievement("eeprom"). + at(6, 3). + withParent(Microchip). + whenCrafting(Constants.ItemName.EEPROM). + add() + val Memory = newAchievement("ram"). + at(6, 4). + withParent(Microchip). + whenCrafting(Constants.ItemName.RAMTier1). + whenCrafting(Constants.ItemName.RAMTier2). + whenCrafting(Constants.ItemName.RAMTier3). + whenCrafting(Constants.ItemName.RAMTier4). + whenCrafting(Constants.ItemName.RAMTier5). + whenCrafting(Constants.ItemName.RAMTier6). + add() + val HDD = newAchievement("hdd"). + at(6, 5). + withParent(Microchip). + whenCrafting(Constants.ItemName.HDDTier1). + whenCrafting(Constants.ItemName.HDDTier2). + whenCrafting(Constants.ItemName.HDDTier3). + add() + val Case = newAchievement("case"). + at(6, 6). + withParent(Microchip). + whenCrafting(Constants.BlockName.CaseTier1). + whenCrafting(Constants.BlockName.CaseTier2). + whenCrafting(Constants.BlockName.CaseTier3). + add() + val Rack = newAchievement("rack"). + at(8, 6). + withParent(Case). + whenCrafting(Constants.BlockName.ServerRack). + add() + val Server = newAchievement("server"). + at(10, 6). + withParent(Rack). + whenCrafting(Constants.ItemName.ServerTier1). + whenCrafting(Constants.ItemName.ServerTier2). + whenCrafting(Constants.ItemName.ServerTier3). + add() + val Screen = newAchievement("screen"). + at(6, 7). + withParent(Microchip). + whenCrafting(Constants.BlockName.ScreenTier1). + whenCrafting(Constants.BlockName.ScreenTier2). + whenCrafting(Constants.BlockName.ScreenTier3). + add() + val Keyboard = newAchievement("keyboard"). + at(8, 7). + withParent(Screen). + whenCrafting(Constants.BlockName.Keyboard). + add() + val Hologram = newAchievement("hologram"). + at(8, 8). + withParent(Screen). + whenCrafting(Constants.BlockName.HologramTier1). + whenCrafting(Constants.BlockName.HologramTier2). + add() + val DiskDrive = newAchievement("diskDrive"). + at(6, 9). + withParent(Microchip). + whenCrafting(Constants.BlockName.DiskDrive). + add() + val Floppy = newAchievement("floppy"). + at(8, 9). + withParent(DiskDrive). + whenCrafting(Constants.ItemName.Floppy). + add() + val OpenOS = newAchievement("openOS"). + at(10, 9). + withParent(Floppy). + whenCrafting(Items.createOpenOS()). + add() + val Raid = newAchievement("raid"). + at(8, 10). + withParent(DiskDrive). + whenCrafting(Constants.BlockName.Raid). + add() - val Card = new Achievement("oc.card", "oc.card", - 0, -2, Items.get(Constants.ItemName.Card).createItemStack(1), - null, Constants.ItemName.Card).setIndependent() - val RedstoneCard = new Achievement("oc.redstoneCard", "oc.redstoneCard", - -2, -4, Items.get(Constants.ItemName.RedstoneCardTier1).createItemStack(1), - Card, Constants.ItemName.RedstoneCardTier1, Constants.ItemName.RedstoneCardTier2) - val GraphicsCard = new Achievement("oc.graphicsCard", "oc.graphicsCard", - 0, -5, Items.get(Constants.ItemName.GraphicsCardTier1).createItemStack(1), - Card, Constants.ItemName.GraphicsCardTier1, Constants.ItemName.GraphicsCardTier2, Constants.ItemName.GraphicsCardTier3) - val NetworkCard = new Achievement("oc.networkCard", "oc.networkCard", - 2, -4, Items.get(Constants.ItemName.NetworkCard).createItemStack(1), - Card, Constants.ItemName.NetworkCard) - val WirelessNetworkCard = new Achievement("oc.wirelessNetworkCard", "oc.wirelessNetworkCard", - 2, -6, Items.get(Constants.ItemName.WirelessNetworkCard).createItemStack(1), - NetworkCard, Constants.ItemName.WirelessNetworkCard) + val Card = newAchievement("card"). + at(0, -2). + whenCrafting(Constants.ItemName.Card). + add() + val RedstoneCard = newAchievement("redstoneCard"). + at(-2, -4). + withParent(Card). + whenCrafting(Constants.ItemName.RedstoneCardTier1). + whenCrafting(Constants.ItemName.RedstoneCardTier2). + add() + val GraphicsCard = newAchievement("graphicsCard"). + at(0, -5). + withParent(Card). + whenCrafting(Constants.ItemName.GraphicsCardTier1). + whenCrafting(Constants.ItemName.GraphicsCardTier2). + whenCrafting(Constants.ItemName.GraphicsCardTier3). + add() + val NetworkCard = newAchievement("networkCard"). + at(2, -4). + withParent(Card). + whenCrafting(Constants.ItemName.NetworkCard). + add() + val WirelessNetworkCard = newAchievement("wirelessNetworkCard"). + at(2, -6). + withParent(NetworkCard). + whenCrafting(Constants.ItemName.WirelessNetworkCard). + add() - val Cable = new Achievement("oc.cable", "oc.cable", - -2, 0, Items.get(Constants.BlockName.Cable).createItemStack(1), - null, Constants.BlockName.Cable).setIndependent() - val PowerDistributor = new Achievement("oc.powerDistributor", "oc.powerDistributor", - -4, -1, Items.get(Constants.BlockName.PowerDistributor).createItemStack(1), - Cable, Constants.BlockName.PowerDistributor) - val Switch = new Achievement("oc.switch", "oc.switch", - -4, 0, Items.get(Constants.BlockName.Switch).createItemStack(1), - Cable, Constants.BlockName.Switch, Constants.BlockName.AccessPoint) - val Adapter = new Achievement("oc.adapter", "oc.adapter", - -4, 1, Items.get(Constants.BlockName.Adapter).createItemStack(1), - Cable, Constants.BlockName.Adapter) + val Cable = newAchievement("cable"). + at(-2, 0). + whenCrafting(Constants.BlockName.Cable). + add() + val PowerDistributor = newAchievement("powerDistributor"). + at(-4, -1). + withParent(Cable). + whenCrafting(Constants.BlockName.PowerDistributor). + add() + val Switch = newAchievement("switch"). + at(-4, 0). + withParent(Cable). + whenCrafting(Constants.BlockName.Switch). + whenCrafting(Constants.BlockName.AccessPoint). + add() + val Adapter = newAchievement("adapter"). + at(-4, 1). + withParent(Cable). + whenCrafting(Constants.BlockName.Adapter). + add() def init() { // Missing @Override causes ambiguity, so cast is required; still a virtual call, @@ -136,34 +228,91 @@ object Achievement { } def onAssemble(stack: ItemStack, player: EntityPlayer): Unit = { - val descriptor = Items.get(stack) - if (descriptor == Items.get(Constants.BlockName.Microcontroller)) player.addStat(Microcontroller, 1) - if (descriptor == Items.get(Constants.BlockName.Robot)) player.addStat(Robot, 1) - if (descriptor == Items.get(Constants.ItemName.Drone)) player.addStat(Drone, 1) - if (descriptor == Items.get(Constants.ItemName.Tablet)) player.addStat(Tablet, 1) + AssemblingMap.get(Items.get(stack)).foreach(player.addStat(_, 1)) } def onCraft(stack: ItemStack, player: EntityPlayer): Unit = { CraftingMap.get(Items.get(stack)).foreach(player.addStat(_, 1)) + CustomCraftingMap.find(entry => ItemStack.areItemStacksEqual(stack, entry._1)).foreach(entry => player.addStat(entry._2, 1)) + } - if (ItemStack.areItemStacksEqual(stack, Items.createOpenOS(stack.stackSize))) { - player.addStat(OpenOS, 1) + private def newAchievement(name: String) = new AchievementBuilder(name) + + private class AchievementBuilder(val name: String) { + var x = 0 + var y = 0 + var stack = stackFromName(name) + var parent: Option[MCAchievement] = None + var crafting = mutable.Set.empty[String] + var customCrafting = mutable.Set.empty[ItemStack] + var assembling = mutable.Set.empty[String] + + def at(x: Int, y: Int): AchievementBuilder = { + this.x = x + this.y = y + this } - } -} -class Achievement(name: String, description: String, x: Int, y: Int, stack: ItemStack, parent: MCAchievement, requirements: String*) extends MCAchievement(name, description, x, y, stack, parent) { - Achievement.All += this - - for (requirement <- requirements) { - val descriptor = Items.get(requirement) - if (descriptor != null) { - Achievement.CraftingMap += descriptor -> this + def withIconOf(stack: ItemStack): AchievementBuilder = { + this.stack = Option(stack) + this } + + def withParent(parent: MCAchievement): AchievementBuilder = { + this.parent = Option(parent) + this + } + + def whenCrafting(name: String): AchievementBuilder = { + crafting += name + if (stack.isEmpty) stack = stackFromName(name) + this + } + + def whenCrafting(stack: ItemStack): AchievementBuilder = { + customCrafting += stack + if (this.stack.isEmpty) this.stack = Option(stack) + this + } + + def whenAssembling(name: String): AchievementBuilder = { + assembling += name + if (stack.isEmpty) stack = stackFromName(name) + this + } + + def add(): MCAchievement = { + val achievement = new MCAchievement("oc." + name, "oc." + name, x, y, stack.orNull, parent.orNull) + + if (parent.isEmpty) { + achievement.asInstanceOf[StatBase].initIndependentStat() + } + + for (requirement <- crafting) { + val descriptor = Items.get(requirement) + if (descriptor != null) { + Achievement.CraftingMap += descriptor -> achievement + } + } + + for (requirement <- customCrafting) { + if (requirement != null) { + Achievement.CustomCraftingMap += requirement -> achievement + } + } + + for (requirement <- assembling) { + val descriptor = Items.get(requirement) + if (descriptor != null) { + Achievement.AssemblingMap += descriptor -> achievement + } + } + + Achievement.All += achievement + achievement + } + + private def stackFromName(name: String) = Option(Items.get(name)).map(_.createItemStack(1)) } - def setIndependent() = { - this.asInstanceOf[StatBase].initIndependentStat() - this - } -} +} \ No newline at end of file diff --git a/src/main/scala/li/cil/oc/common/Loot.scala b/src/main/scala/li/cil/oc/common/Loot.scala index a976497ef..e9125da0e 100644 --- a/src/main/scala/li/cil/oc/common/Loot.scala +++ b/src/main/scala/li/cil/oc/common/Loot.scala @@ -7,7 +7,6 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent import li.cil.oc.Constants import li.cil.oc.OpenComputers import li.cil.oc.Settings -import li.cil.oc.api import li.cil.oc.common.init.Items import li.cil.oc.util.Color import net.minecraft.inventory.IInventory @@ -107,7 +106,7 @@ object Loot extends WeightedRandomChestContent(Items.createOpenOS(), 1, 1, Setti case _ => } - val disk = api.Items.get(Constants.ItemName.LootDisk).createItemStack(1) + val disk = Items.get(Constants.ItemName.LootDisk).createItemStack(1) disk.setTagCompound(tag) disk From 654749c17a76d105bc0e613a236b95983dd564f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Tue, 7 Apr 2015 15:12:19 +0200 Subject: [PATCH 6/7] Did I mention constants, yet? >_> --- src/main/scala/li/cil/oc/Constants.scala | 1 + src/main/scala/li/cil/oc/common/Proxy.scala | 20 +- .../scala/li/cil/oc/common/init/Items.scala | 217 +++++++++--------- 3 files changed, 118 insertions(+), 120 deletions(-) diff --git a/src/main/scala/li/cil/oc/Constants.scala b/src/main/scala/li/cil/oc/Constants.scala index 8f2453699..6b168a9b9 100644 --- a/src/main/scala/li/cil/oc/Constants.scala +++ b/src/main/scala/li/cil/oc/Constants.scala @@ -133,6 +133,7 @@ object Constants { final val TankControllerUpgrade = "tankControllerUpgrade" final val TankUpgrade = "tankUpgrade" final val Terminal = "terminal" + final val TexturePicker = "texturePicker" final val TractorBeamUpgrade = "tractorBeamUpgrade" final val Transistor = "transistor" final val UpgradeContainerTier1 = "upgradeContainer1" diff --git a/src/main/scala/li/cil/oc/common/Proxy.scala b/src/main/scala/li/cil/oc/common/Proxy.scala index 92f049a1a..e155b3329 100644 --- a/src/main/scala/li/cil/oc/common/Proxy.scala +++ b/src/main/scala/li/cil/oc/common/Proxy.scala @@ -34,14 +34,20 @@ class Proxy { registerExclusive("craftingPiston", new ItemStack(net.minecraft.init.Blocks.piston), new ItemStack(net.minecraft.init.Blocks.sticky_piston)) registerExclusive("torchRedstoneActive", new ItemStack(net.minecraft.init.Blocks.redstone_torch)) registerExclusive("nuggetGold", new ItemStack(net.minecraft.init.Items.gold_nugget)) - registerExclusive("nuggetIron", Items.ironNugget.createItemStack()) - if (OreDictionary.getOres("nuggetIron").exists(Items.ironNugget.createItemStack().isItemEqual)) { - Recipes.addMultiItem(Items.ironNugget, "nuggetIron") - Recipes.addItem(net.minecraft.init.Items.iron_ingot, "ingotIron") - } - else { - Items.ironNugget.showInItemList = false + val nuggetIron = Items.get(Constants.ItemName.IronNugget).createItemStack(1) + registerExclusive("nuggetIron", nuggetIron) + + Items.multi.subItem(nuggetIron) match { + case Some(subItem: item.IronNugget) => + if (OreDictionary.getOres("nuggetIron").exists(nuggetIron.isItemEqual)) { + Recipes.addMultiItem(subItem, "nuggetIron") + Recipes.addItem(net.minecraft.init.Items.iron_ingot, "ingotIron") + } + else { + Items.ironNugget.showInItemList = false + } + case _ => } // Avoid issues with Extra Utilities registering colored obsidian as `obsidian` diff --git a/src/main/scala/li/cil/oc/common/init/Items.scala b/src/main/scala/li/cil/oc/common/init/Items.scala index c560c8723..0adcb39ca 100644 --- a/src/main/scala/li/cil/oc/common/init/Items.scala +++ b/src/main/scala/li/cil/oc/common/init/Items.scala @@ -122,7 +122,7 @@ object Items extends ItemAPI { nbt.setString(Settings.namespace + "lootPath", "OpenOS") nbt.setInteger(Settings.namespace + "color", Color.dyes.indexOf("dyeGreen")) - val stack = get("lootDisk").createItemStack(amount) + val stack = get(Constants.ItemName.LootDisk).createItemStack(amount) stack.setTagCompound(nbt) stack @@ -165,10 +165,7 @@ object Items extends ItemAPI { get(Constants.ItemName.RAMTier6).createItemStack(1) ) - val stack = get(Constants.ItemName.Drone).createItemStack(1) - data.save(stack) - - stack + data.createItemStack() } def createConfiguredMicrocontroller() = { @@ -188,10 +185,7 @@ object Items extends ItemAPI { get(Constants.ItemName.RAMTier6).createItemStack(1) ) - val stack = get(Constants.BlockName.Microcontroller).createItemStack(1) - data.save(stack) - - stack + data.createItemStack() } def createConfiguredRobot() = { @@ -229,13 +223,10 @@ object Items extends ItemAPI { data.containers = Array( get(Constants.ItemName.CardContainerTier3).createItemStack(1), get(Constants.ItemName.UpgradeContainerTier3).createItemStack(1), - get("diskDrive").createItemStack(1) + get(Constants.BlockName.DiskDrive).createItemStack(1) ) - val stack = get("robot").createItemStack(1) - data.save(stack) - - stack + data.createItemStack() } def createConfiguredTablet() = { @@ -263,7 +254,7 @@ object Items extends ItemAPI { Option(createOpenOS()), Option(get(Constants.ItemName.HDDTier3).createItemStack(1)) ) - data.container = Option(get("diskDrive").createItemStack(1)) + data.container = Option(get(Constants.BlockName.DiskDrive).createItemStack(1)) val stack = get(Constants.ItemName.Tablet).createItemStack(1) data.save(stack) @@ -301,93 +292,93 @@ object Items extends ItemAPI { GameRegistry.registerItem(multi, "item") - Recipes.addMultiItem(new item.Analyzer(multi), "analyzer", "oc:analyzer") + Recipes.addMultiItem(new item.Analyzer(multi), Constants.ItemName.Analyzer, "oc:analyzer") - Recipes.addMultiItem(new item.Memory(multi, Tier.One), "ram1", "oc:ram1") - Recipes.addMultiItem(new item.Memory(multi, Tier.Three), "ram3", "oc:ram3") - Recipes.addMultiItem(new item.Memory(multi, Tier.Four), "ram4", "oc:ram4") + Recipes.addMultiItem(new item.Memory(multi, Tier.One), Constants.ItemName.RAMTier1, "oc:ram1") + Recipes.addMultiItem(new item.Memory(multi, Tier.Three), Constants.ItemName.RAMTier3, "oc:ram3") + Recipes.addMultiItem(new item.Memory(multi, Tier.Four), Constants.ItemName.RAMTier4, "oc:ram4") - Recipes.addMultiItem(new item.FloppyDisk(multi), "floppy", "oc:floppy") - Recipes.addMultiItem(new item.HardDiskDrive(multi, Tier.One), "hdd1", "oc:hdd1") - Recipes.addMultiItem(new item.HardDiskDrive(multi, Tier.Two), "hdd2", "oc:hdd2") - Recipes.addMultiItem(new item.HardDiskDrive(multi, Tier.Three), "hdd3", "oc:hdd3") + Recipes.addMultiItem(new item.FloppyDisk(multi), Constants.ItemName.Floppy, "oc:floppy") + Recipes.addMultiItem(new item.HardDiskDrive(multi, Tier.One), Constants.ItemName.HDDTier1, "oc:hdd1") + Recipes.addMultiItem(new item.HardDiskDrive(multi, Tier.Two), Constants.ItemName.HDDTier2, "oc:hdd2") + Recipes.addMultiItem(new item.HardDiskDrive(multi, Tier.Three), Constants.ItemName.HDDTier3, "oc:hdd3") - Recipes.addMultiItem(new item.GraphicsCard(multi, Tier.One), "graphicsCard1", "oc:graphicsCard1") - Recipes.addMultiItem(new item.GraphicsCard(multi, Tier.Two), "graphicsCard2", "oc:graphicsCard2") - Recipes.addMultiItem(new item.GraphicsCard(multi, Tier.Three), "graphicsCard3", "oc:graphicsCard3") - Recipes.addMultiItem(new item.NetworkCard(multi), "lanCard", "oc:lanCard") - Recipes.addMultiItem(new item.RedstoneCard(multi, Tier.Two), "redstoneCard2", "oc:redstoneCard2") - Recipes.addMultiItem(new item.WirelessNetworkCard(multi), "wlanCard", "oc:wlanCard") + Recipes.addMultiItem(new item.GraphicsCard(multi, Tier.One), Constants.ItemName.GraphicsCardTier1, "oc:graphicsCard1") + Recipes.addMultiItem(new item.GraphicsCard(multi, Tier.Two), Constants.ItemName.GraphicsCardTier2, "oc:graphicsCard2") + Recipes.addMultiItem(new item.GraphicsCard(multi, Tier.Three), Constants.ItemName.GraphicsCardTier3, "oc:graphicsCard3") + Recipes.addMultiItem(new item.NetworkCard(multi), Constants.ItemName.NetworkCard, "oc:lanCard") + Recipes.addMultiItem(new item.RedstoneCard(multi, Tier.Two), Constants.ItemName.RedstoneCardTier2, "oc:redstoneCard2") + Recipes.addMultiItem(new item.WirelessNetworkCard(multi), Constants.ItemName.WirelessNetworkCard, "oc:wlanCard") - Recipes.addMultiItem(new item.UpgradeCrafting(multi), "craftingUpgrade", "oc:craftingUpgrade") - Recipes.addMultiItem(new item.UpgradeGenerator(multi), "generatorUpgrade", "oc:generatorUpgrade") + Recipes.addMultiItem(new item.UpgradeCrafting(multi), Constants.ItemName.CraftingUpgrade, "oc:craftingUpgrade") + Recipes.addMultiItem(new item.UpgradeGenerator(multi), Constants.ItemName.GeneratorUpgrade, "oc:generatorUpgrade") ironNugget = new item.IronNugget(multi) - Recipes.addMultiItem(new item.CuttingWire(multi), "cuttingWire", "oc:materialCuttingWire") - Recipes.addMultiItem(new item.Acid(multi), "acid", "oc:materialAcid") - Recipes.addMultiItem(new item.Disk(multi), "disk", "oc:materialDisk") + Recipes.addMultiItem(new item.CuttingWire(multi), Constants.ItemName.CuttingWire, "oc:materialCuttingWire") + Recipes.addMultiItem(new item.Acid(multi), Constants.ItemName.Acid, "oc:materialAcid") + Recipes.addMultiItem(new item.Disk(multi), Constants.ItemName.Disk, "oc:materialDisk") - Recipes.addMultiItem(new item.ButtonGroup(multi), "buttonGroup", "oc:materialButtonGroup") - Recipes.addMultiItem(new item.ArrowKeys(multi), "arrowKeys", "oc:materialArrowKey") - Recipes.addMultiItem(new item.NumPad(multi), "numPad", "oc:materialNumPad") + Recipes.addMultiItem(new item.ButtonGroup(multi), Constants.ItemName.ButtonGroup, "oc:materialButtonGroup") + Recipes.addMultiItem(new item.ArrowKeys(multi), Constants.ItemName.ArrowKeys, "oc:materialArrowKey") + Recipes.addMultiItem(new item.NumPad(multi), Constants.ItemName.NumPad, "oc:materialNumPad") - Recipes.addMultiItem(new item.Transistor(multi), "transistor", "oc:materialTransistor") - Recipes.addMultiItem(new item.Microchip(multi, Tier.One), "chip1", "oc:circuitChip1") - Recipes.addMultiItem(new item.Microchip(multi, Tier.Two), "chip2", "oc:circuitChip2") - Recipes.addMultiItem(new item.Microchip(multi, Tier.Three), "chip3", "oc:circuitChip3") - Recipes.addMultiItem(new item.ALU(multi), "alu", "oc:materialALU") - Recipes.addMultiItem(new item.ControlUnit(multi), "cu", "oc:materialCU") - Recipes.addMultiItem(new item.CPU(multi, Tier.One), "cpu1", "oc:cpu1") + Recipes.addMultiItem(new item.Transistor(multi), Constants.ItemName.Transistor, "oc:materialTransistor") + Recipes.addMultiItem(new item.Microchip(multi, Tier.One), Constants.ItemName.ChipTier1, "oc:circuitChip1") + Recipes.addMultiItem(new item.Microchip(multi, Tier.Two), Constants.ItemName.ChipTier2, "oc:circuitChip2") + Recipes.addMultiItem(new item.Microchip(multi, Tier.Three), Constants.ItemName.ChipTier3, "oc:circuitChip3") + Recipes.addMultiItem(new item.ALU(multi), Constants.ItemName.Alu, "oc:materialALU") + Recipes.addMultiItem(new item.ControlUnit(multi), Constants.ItemName.ControlUnit, "oc:materialCU") + Recipes.addMultiItem(new item.CPU(multi, Tier.One), Constants.ItemName.CPUTier1, "oc:cpu1") - Recipes.addMultiItem(new item.RawCircuitBoard(multi), "rawCircuitBoard", "oc:materialCircuitBoardRaw") - Recipes.addMultiItem(new item.CircuitBoard(multi), "circuitBoard", "oc:materialCircuitBoard") - Recipes.addMultiItem(new item.PrintedCircuitBoard(multi), "printedCircuitBoard", "oc:materialCircuitBoardPrinted") - Recipes.addMultiItem(new item.CardBase(multi), "card", "oc:materialCard") + Recipes.addMultiItem(new item.RawCircuitBoard(multi), Constants.ItemName.RawCircuitBoard, "oc:materialCircuitBoardRaw") + Recipes.addMultiItem(new item.CircuitBoard(multi), Constants.ItemName.CircuitBoard, "oc:materialCircuitBoard") + Recipes.addMultiItem(new item.PrintedCircuitBoard(multi), Constants.ItemName.PrintedCircuitBoard, "oc:materialCircuitBoardPrinted") + Recipes.addMultiItem(new item.CardBase(multi), Constants.ItemName.Card, "oc:materialCard") // v1.1.0 - Recipes.addMultiItem(new item.UpgradeSolarGenerator(multi), "solarGeneratorUpgrade", "oc:solarGeneratorUpgrade") - Recipes.addMultiItem(new item.UpgradeSign(multi), "signUpgrade", "oc:signUpgrade") - Recipes.addMultiItem(new item.UpgradeNavigation(multi), "navigationUpgrade", "oc:navigationUpgrade") + Recipes.addMultiItem(new item.UpgradeSolarGenerator(multi), Constants.ItemName.SolarGeneratorUpgrade, "oc:solarGeneratorUpgrade") + Recipes.addMultiItem(new item.UpgradeSign(multi), Constants.ItemName.SignUpgrade, "oc:signUpgrade") + Recipes.addMultiItem(new item.UpgradeNavigation(multi), Constants.ItemName.NavigationUpgrade, "oc:navigationUpgrade") // Always create, to avoid shifting IDs. val abstractBus = new item.AbstractBusCard(multi) if (Mods.StargateTech2.isAvailable) { - Recipes.addMultiItem(abstractBus, "abstractBusCard", "oc:abstractBusCard") + Recipes.addMultiItem(abstractBus, Constants.ItemName.AbstractBusCard, "oc:abstractBusCard") } - Recipes.addMultiItem(new item.Memory(multi, Tier.Five), "ram5", "oc:ram5") - Recipes.addMultiItem(new item.Memory(multi, Tier.Six), "ram6", "oc:ram6") + Recipes.addMultiItem(new item.Memory(multi, Tier.Five), Constants.ItemName.RAMTier5, "oc:ram5") + Recipes.addMultiItem(new item.Memory(multi, Tier.Six), Constants.ItemName.RAMTier6, "oc:ram6") // v1.2.0 - Recipes.addMultiItem(new item.Server(multi, Tier.Three), "server3", "oc:server3") - Recipes.addMultiItem(new item.Terminal(multi), "terminal", "oc:terminal") - Recipes.addMultiItem(new item.CPU(multi, Tier.Two), "cpu2", "oc:cpu2") - Recipes.addMultiItem(new item.CPU(multi, Tier.Three), "cpu3", "oc:cpu3") - Recipes.addMultiItem(new item.InternetCard(multi), "internetCard", "oc:internetCard") - Recipes.addMultiItem(new item.Server(multi, Tier.One), "server1", "oc:server1") - Recipes.addMultiItem(new item.Server(multi, Tier.Two), "server2", "oc:server2") + Recipes.addMultiItem(new item.Server(multi, Tier.Three), Constants.ItemName.ServerTier3, "oc:server3") + Recipes.addMultiItem(new item.Terminal(multi), Constants.ItemName.Terminal, "oc:terminal") + Recipes.addMultiItem(new item.CPU(multi, Tier.Two), Constants.ItemName.CPUTier2, "oc:cpu2") + Recipes.addMultiItem(new item.CPU(multi, Tier.Three), Constants.ItemName.CPUTier3, "oc:cpu3") + Recipes.addMultiItem(new item.InternetCard(multi), Constants.ItemName.InternetCard, "oc:internetCard") + Recipes.addMultiItem(new item.Server(multi, Tier.One), Constants.ItemName.ServerTier1, "oc:server1") + Recipes.addMultiItem(new item.Server(multi, Tier.Two), Constants.ItemName.ServerTier2, "oc:server2") // v1.2.3 registerItem(new item.FloppyDisk(multi) { showInItemList = false - }, "lootDisk") + }, Constants.ItemName.LootDisk) // v1.2.6 - Recipes.addMultiItem(new item.Interweb(multi), "interweb", "oc:materialInterweb") - Recipes.addMultiItem(new item.UpgradeAngel(multi), "angelUpgrade", "oc:angelUpgrade") - Recipes.addMultiItem(new item.Memory(multi, Tier.Two), "ram2", "oc:ram2") + Recipes.addMultiItem(new item.Interweb(multi), Constants.ItemName.Interweb, "oc:materialInterweb") + Recipes.addMultiItem(new item.UpgradeAngel(multi), Constants.ItemName.AngelUpgrade, "oc:angelUpgrade") + Recipes.addMultiItem(new item.Memory(multi, Tier.Two), Constants.ItemName.RAMTier2, "oc:ram2") // v1.3.0 - Recipes.addMultiItem(new item.LinkedCard(multi), "linkedCard", "oc:linkedCard") - Recipes.addMultiItem(new item.UpgradeExperience(multi), "experienceUpgrade", "oc:experienceUpgrade") - Recipes.addMultiItem(new item.UpgradeInventory(multi), "inventoryUpgrade", "oc:inventoryUpgrade") - Recipes.addMultiItem(new item.UpgradeContainerUpgrade(multi, Tier.One), "upgradeContainer1", "oc:upgradeContainer1") - Recipes.addMultiItem(new item.UpgradeContainerUpgrade(multi, Tier.Two), "upgradeContainer2", "oc:upgradeContainer2") - Recipes.addMultiItem(new item.UpgradeContainerUpgrade(multi, Tier.Three), "upgradeContainer3", "oc:upgradeContainer3") - Recipes.addMultiItem(new item.UpgradeContainerCard(multi, Tier.One), "cardContainer1", "oc:cardContainer1") - Recipes.addMultiItem(new item.UpgradeContainerCard(multi, Tier.Two), "cardContainer2", "oc:cardContainer2") - Recipes.addMultiItem(new item.UpgradeContainerCard(multi, Tier.Three), "cardContainer3", "oc:cardContainer3") + Recipes.addMultiItem(new item.LinkedCard(multi), Constants.ItemName.LinkedCard, "oc:linkedCard") + Recipes.addMultiItem(new item.UpgradeExperience(multi), Constants.ItemName.ExperienceUpgrade, "oc:experienceUpgrade") + Recipes.addMultiItem(new item.UpgradeInventory(multi), Constants.ItemName.InventoryUpgrade, "oc:inventoryUpgrade") + Recipes.addMultiItem(new item.UpgradeContainerUpgrade(multi, Tier.One), Constants.ItemName.UpgradeContainerTier1, "oc:upgradeContainer1") + Recipes.addMultiItem(new item.UpgradeContainerUpgrade(multi, Tier.Two), Constants.ItemName.UpgradeContainerTier2, "oc:upgradeContainer2") + Recipes.addMultiItem(new item.UpgradeContainerUpgrade(multi, Tier.Three), Constants.ItemName.UpgradeContainerTier3, "oc:upgradeContainer3") + Recipes.addMultiItem(new item.UpgradeContainerCard(multi, Tier.One), Constants.ItemName.CardContainerTier1, "oc:cardContainer1") + Recipes.addMultiItem(new item.UpgradeContainerCard(multi, Tier.Two), Constants.ItemName.CardContainerTier2, "oc:cardContainer2") + Recipes.addMultiItem(new item.UpgradeContainerCard(multi, Tier.Three), Constants.ItemName.CardContainerTier3, "oc:cardContainer3") // Special case loot disk because this one's craftable and having it have // the same item damage would confuse NEI and the item costs computation. @@ -399,78 +390,78 @@ object Items extends ItemAPI { override def createItemStack(amount: Int) = createOpenOS(amount) override def onItemRightClick(stack: ItemStack, world: World, player: EntityPlayer) = { - if (player.isSneaking) get("floppy").createItemStack(1) + if (player.isSneaking) get(Constants.ItemName.Floppy).createItemStack(1) else super.onItemRightClick(stack, world, player) } } Recipes.addRecipe(createOpenOS(), "openOS") - Recipes.addMultiItem(new item.UpgradeInventoryController(multi), "inventoryControllerUpgrade", "oc:inventoryControllerUpgrade") - Recipes.addMultiItem(new item.UpgradeChunkloader(multi), "chunkloaderUpgrade", "oc:chunkloaderUpgrade") - Recipes.addMultiItem(new item.UpgradeBattery(multi, Tier.One), "batteryUpgrade1", "oc:batteryUpgrade1") - Recipes.addMultiItem(new item.UpgradeBattery(multi, Tier.Two), "batteryUpgrade2", "oc:batteryUpgrade2") - Recipes.addMultiItem(new item.UpgradeBattery(multi, Tier.Three), "batteryUpgrade3", "oc:batteryUpgrade3") - Recipes.addMultiItem(new item.RedstoneCard(multi, Tier.One), "redstoneCard1", "oc:redstoneCard1") + Recipes.addMultiItem(new item.UpgradeInventoryController(multi), Constants.ItemName.InventoryControllerUpgrade, "oc:inventoryControllerUpgrade") + Recipes.addMultiItem(new item.UpgradeChunkloader(multi), Constants.ItemName.ChunkloaderUpgrade, "oc:chunkloaderUpgrade") + Recipes.addMultiItem(new item.UpgradeBattery(multi, Tier.One), Constants.ItemName.BatteryUpgradeTier1, "oc:batteryUpgrade1") + Recipes.addMultiItem(new item.UpgradeBattery(multi, Tier.Two), Constants.ItemName.BatteryUpgradeTier2, "oc:batteryUpgrade2") + Recipes.addMultiItem(new item.UpgradeBattery(multi, Tier.Three), Constants.ItemName.BatteryUpgradeTier3, "oc:batteryUpgrade3") + Recipes.addMultiItem(new item.RedstoneCard(multi, Tier.One), Constants.ItemName.RedstoneCardTier1, "oc:redstoneCard1") // 1.3.2 - Recipes.addMultiItem(new item.UpgradeTractorBeam(multi), "tractorBeamUpgrade", "oc:tractorBeamUpgrade") + Recipes.addMultiItem(new item.UpgradeTractorBeam(multi), Constants.ItemName.TractorBeamUpgrade, "oc:tractorBeamUpgrade") // 1.3.? - registerItem(new item.Tablet(multi), "tablet") + registerItem(new item.Tablet(multi), Constants.ItemName.Tablet) // 1.3.2 (cont.) - registerItem(new item.Server(multi, Tier.Four), "serverCreative") + registerItem(new item.Server(multi, Tier.Four), Constants.ItemName.ServerCreative) // 1.3.3 - Recipes.addMultiItem(new item.ComponentBus(multi, Tier.One), "componentBus1", "oc:componentBus1") - Recipes.addMultiItem(new item.ComponentBus(multi, Tier.Two), "componentBus2", "oc:componentBus2") - Recipes.addMultiItem(new item.ComponentBus(multi, Tier.Three), "componentBus3", "oc:componentBus3") - registerItem(new item.DebugCard(multi), "debugCard") + Recipes.addMultiItem(new item.ComponentBus(multi, Tier.One), Constants.ItemName.ComponentBusTier1, "oc:componentBus1") + Recipes.addMultiItem(new item.ComponentBus(multi, Tier.Two), Constants.ItemName.ComponentBusTier2, "oc:componentBus2") + Recipes.addMultiItem(new item.ComponentBus(multi, Tier.Three), Constants.ItemName.ComponentBusTier3, "oc:componentBus3") + registerItem(new item.DebugCard(multi), Constants.ItemName.DebugCard) // 1.3.5 - Recipes.addMultiItem(new item.TabletCase(multi, Tier.One), "tabletCase1", "oc:tabletCase1") - Recipes.addMultiItem(new item.UpgradePiston(multi), "pistonUpgrade", "oc:pistonUpgrade") - Recipes.addMultiItem(new item.UpgradeTank(multi), "tankUpgrade", "oc:tankUpgrade") - Recipes.addMultiItem(new item.UpgradeTankController(multi), "tankControllerUpgrade", "oc:tankControllerUpgrade") + Recipes.addMultiItem(new item.TabletCase(multi, Tier.One), Constants.ItemName.TabletCaseTier1, "oc:tabletCase1") + Recipes.addMultiItem(new item.UpgradePiston(multi), Constants.ItemName.PistonUpgrade, "oc:pistonUpgrade") + Recipes.addMultiItem(new item.UpgradeTank(multi), Constants.ItemName.TankUpgrade, "oc:tankUpgrade") + Recipes.addMultiItem(new item.UpgradeTankController(multi), Constants.ItemName.TankControllerUpgrade, "oc:tankControllerUpgrade") // 1.4.0 - Recipes.addMultiItem(new item.UpgradeDatabase(multi, Tier.One), "databaseUpgrade1", "oc:databaseUpgrade1") - Recipes.addMultiItem(new item.UpgradeDatabase(multi, Tier.Two), "databaseUpgrade2", "oc:databaseUpgrade2") - Recipes.addMultiItem(new item.UpgradeDatabase(multi, Tier.Three), "databaseUpgrade3", "oc:databaseUpgrade3") - registerItem(new item.Debugger(multi), "debugger") + Recipes.addMultiItem(new item.UpgradeDatabase(multi, Tier.One), Constants.ItemName.DatabaseUpgradeTier1, "oc:databaseUpgrade1") + Recipes.addMultiItem(new item.UpgradeDatabase(multi, Tier.Two), Constants.ItemName.DatabaseUpgradeTier2, "oc:databaseUpgrade2") + Recipes.addMultiItem(new item.UpgradeDatabase(multi, Tier.Three), Constants.ItemName.DatabaseUpgradeTier3, "oc:databaseUpgrade3") + registerItem(new item.Debugger(multi), Constants.ItemName.Debugger) // 1.4.2 val eeprom = new item.EEPROM() - Recipes.addItem(eeprom, "eeprom", "oc:eeprom") + Recipes.addItem(eeprom, Constants.ItemName.EEPROM, "oc:eeprom") Recipes.addRecipe(createLuaBios(), "luaBios") - Recipes.addMultiItem(new item.MicrocontrollerCase(multi, Tier.One), "microcontrollerCase1", "oc:microcontrollerCase1") + Recipes.addMultiItem(new item.MicrocontrollerCase(multi, Tier.One), Constants.ItemName.MicrocontrollerCaseTier1, "oc:microcontrollerCase1") // 1.4.3 - Recipes.addMultiItem(new item.DroneCase(multi, Tier.One), "droneCase1", "oc:droneCase1") - registerItem(new item.Drone(multi), "drone") - Recipes.addMultiItem(new UpgradeLeash(multi), "leashUpgrade", "oc:leashUpgrade") - Recipes.addMultiItem(new item.MicrocontrollerCase(multi, Tier.Two), "microcontrollerCase2", "oc:microcontrollerCase2") - Recipes.addMultiItem(new item.DroneCase(multi, Tier.Two), "droneCase2", "oc:droneCase2") - registerItem(new item.Present(multi), "present") + Recipes.addMultiItem(new item.DroneCase(multi, Tier.One), Constants.ItemName.DroneCaseTier1, "oc:droneCase1") + registerItem(new item.Drone(multi), Constants.ItemName.Drone) + Recipes.addMultiItem(new UpgradeLeash(multi), Constants.ItemName.LeashUpgrade, "oc:leashUpgrade") + Recipes.addMultiItem(new item.MicrocontrollerCase(multi, Tier.Two), Constants.ItemName.MicrocontrollerCaseTier2, "oc:microcontrollerCase2") + Recipes.addMultiItem(new item.DroneCase(multi, Tier.Two), Constants.ItemName.DroneCaseTier2, "oc:droneCase2") + registerItem(new item.Present(multi), Constants.ItemName.Present) // Always create, to avoid shifting IDs. val worldSensorCard = new item.WorldSensorCard(multi) if (Mods.Galacticraft.isAvailable) { - Recipes.addMultiItem(worldSensorCard, "worldSensorCard", "oc:worldSensorCard") + Recipes.addMultiItem(worldSensorCard, Constants.ItemName.WorldSensorCard, "oc:worldSensorCard") } // 1.4.4 - registerItem(new item.MicrocontrollerCase(multi, Tier.Four), "microcontrollerCaseCreative") - registerItem(new item.DroneCase(multi, Tier.Four), "droneCaseCreative") + registerItem(new item.MicrocontrollerCase(multi, Tier.Four), Constants.ItemName.MicrocontrollerCaseCreative) + registerItem(new item.DroneCase(multi, Tier.Four), Constants.ItemName.DroneCaseCreative) // 1.4.7 - Recipes.addMultiItem(new item.TabletCase(multi, Tier.Two), "tabletCase2", "oc:tabletCase2") - registerItem(new item.TabletCase(multi, Tier.Four), "tabletCaseCreative") + Recipes.addMultiItem(new item.TabletCase(multi, Tier.Two), Constants.ItemName.TabletCaseTier2, "oc:tabletCase2") + registerItem(new item.TabletCase(multi, Tier.Four), Constants.ItemName.TabletCaseCreative) // 1.5.4 - Recipes.addMultiItem(new item.InkCartridgeEmpty(multi), "inkCartridgeEmpty", "oc:inkCartridgeEmpty") - Recipes.addMultiItem(new item.InkCartridge(multi), "inkCartridge", "oc:inkCartridge") - Recipes.addMultiItem(new item.Chamelium(multi), "chamelium", "oc:chamelium") - Recipes.addMultiItem(new item.TexturePicker(multi), "texturePicker", "oc:texturePicker") + Recipes.addMultiItem(new item.InkCartridgeEmpty(multi), Constants.ItemName.InkCartridgeEmpty, "oc:inkCartridgeEmpty") + Recipes.addMultiItem(new item.InkCartridge(multi), Constants.ItemName.InkCartridge, "oc:inkCartridge") + Recipes.addMultiItem(new item.Chamelium(multi), Constants.ItemName.Chamelium, "oc:chamelium") + Recipes.addMultiItem(new item.TexturePicker(multi), Constants.ItemName.TexturePicker, "oc:texturePicker") } } From 2d778f20fa599bc4441357236ec13fd457f92526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Tue, 7 Apr 2015 15:25:34 +0200 Subject: [PATCH 7/7] Backported a few more code improvements from the 1.8 branch, to make keeping the branches in sync easier. Merge conflicts, here I come... --- src/main/scala/li/cil/oc/Constants.scala | 4 +- .../scala/li/cil/oc/client/GuiHandler.scala | 4 +- src/main/scala/li/cil/oc/client/Proxy.scala | 5 +- .../scala/li/cil/oc/common/GuiHandler.scala | 4 +- src/main/scala/li/cil/oc/common/Proxy.scala | 7 +- .../li/cil/oc/common/component/Terminal.scala | 4 +- .../scala/li/cil/oc/common/init/Items.scala | 189 +++++++++--------- .../li/cil/oc/common/item/Delegator.scala | 56 +++--- .../li/cil/oc/common/recipe/Recipes.scala | 7 +- .../li/cil/oc/common/tileentity/Switch.scala | 4 +- .../integration/opencomputers/DriverCPU.scala | 6 +- .../opencomputers/DriverComponentBus.scala | 6 +- .../opencomputers/DriverContainerCard.scala | 4 +- .../DriverContainerUpgrade.scala | 4 +- .../opencomputers/DriverFileSystem.scala | 8 +- .../opencomputers/DriverGraphicsCard.scala | 4 +- .../opencomputers/DriverMemory.scala | 13 +- .../opencomputers/DriverRedstoneCard.scala | 4 +- .../opencomputers/DriverUpgradeBattery.scala | 4 +- .../opencomputers/DriverUpgradeDatabase.scala | 4 +- .../opencomputers/ModOpenComputers.scala | 4 +- .../li/cil/oc/server/component/Server.scala | 4 +- 22 files changed, 179 insertions(+), 170 deletions(-) diff --git a/src/main/scala/li/cil/oc/Constants.scala b/src/main/scala/li/cil/oc/Constants.scala index 6b168a9b9..da34a0c77 100644 --- a/src/main/scala/li/cil/oc/Constants.scala +++ b/src/main/scala/li/cil/oc/Constants.scala @@ -14,7 +14,7 @@ object Constants { final val CaseTier1 = "case1" final val CaseTier2 = "case2" final val CaseTier3 = "case3" - final val Chamelium = "chameliumBlock" + final val ChameliumBlock = "chameliumBlock" final val Charger = "charger" final val Disassembler = "disassembler" final val DiskDrive = "diskDrive" @@ -91,8 +91,8 @@ object Constants { final val HDDTier1 = "hdd1" final val HDDTier2 = "hdd2" final val HDDTier3 = "hdd3" - final val InkCartridge = "inkCartridge" final val InkCartridgeEmpty = "inkCartridgeEmpty" + final val InkCartridge = "inkCartridge" final val InternetCard = "internetCard" final val Interweb = "interweb" final val InventoryControllerUpgrade = "inventoryControllerUpgrade" diff --git a/src/main/scala/li/cil/oc/client/GuiHandler.scala b/src/main/scala/li/cil/oc/client/GuiHandler.scala index 944921e12..0352fe976 100644 --- a/src/main/scala/li/cil/oc/client/GuiHandler.scala +++ b/src/main/scala/li/cil/oc/client/GuiHandler.scala @@ -5,10 +5,10 @@ import li.cil.oc.Settings import li.cil.oc.api.component.TextBuffer import li.cil.oc.common.GuiType import li.cil.oc.common.entity -import li.cil.oc.common.init.Items import li.cil.oc.common.inventory.DatabaseInventory import li.cil.oc.common.inventory.ServerInventory import li.cil.oc.common.item +import li.cil.oc.common.item.Delegator import li.cil.oc.common.tileentity import li.cil.oc.common.{GuiHandler => CommonGuiHandler} import net.minecraft.client.Minecraft @@ -53,7 +53,7 @@ object GuiHandler extends CommonGuiHandler { case _ => null } case Some(GuiType.Category.Item) => - Items.multi.subItem(player.getCurrentEquippedItem) match { + Delegator.subItem(player.getCurrentEquippedItem) match { case Some(database: item.UpgradeDatabase) if id == GuiType.Database.id => new gui.Database(player.inventory, new DatabaseInventory { override def tier = database.tier diff --git a/src/main/scala/li/cil/oc/client/Proxy.scala b/src/main/scala/li/cil/oc/client/Proxy.scala index 67e9561c0..1921263ad 100644 --- a/src/main/scala/li/cil/oc/client/Proxy.scala +++ b/src/main/scala/li/cil/oc/client/Proxy.scala @@ -6,6 +6,7 @@ import cpw.mods.fml.common.FMLCommonHandler import cpw.mods.fml.common.event.FMLInitializationEvent import cpw.mods.fml.common.event.FMLPreInitializationEvent import cpw.mods.fml.common.network.NetworkRegistry +import li.cil.oc.Constants import li.cil.oc.OpenComputers import li.cil.oc.Settings import li.cil.oc.client @@ -66,8 +67,8 @@ private[oc] class Proxy extends CommonProxy { ClientRegistry.bindTileEntitySpecialRenderer(classOf[tileentity.RobotProxy], RobotRenderer) ClientRegistry.bindTileEntitySpecialRenderer(classOf[tileentity.Screen], ScreenRenderer) - MinecraftForgeClient.registerItemRenderer(Items.multi, ItemRenderer) - MinecraftForgeClient.registerItemRenderer(Items.get("print").createItemStack(1).getItem, ItemRenderer) + MinecraftForgeClient.registerItemRenderer(Items.get(Constants.ItemName.Floppy).createItemStack(1).getItem, ItemRenderer) + MinecraftForgeClient.registerItemRenderer(Items.get(Constants.BlockName.Print).createItemStack(1).getItem, ItemRenderer) ClientRegistry.registerKeyBinding(KeyBindings.materialCosts) ClientRegistry.registerKeyBinding(KeyBindings.clipboardPaste) diff --git a/src/main/scala/li/cil/oc/common/GuiHandler.scala b/src/main/scala/li/cil/oc/common/GuiHandler.scala index b6a42bfee..ff56edec2 100644 --- a/src/main/scala/li/cil/oc/common/GuiHandler.scala +++ b/src/main/scala/li/cil/oc/common/GuiHandler.scala @@ -1,9 +1,9 @@ package li.cil.oc.common import cpw.mods.fml.common.network.IGuiHandler -import li.cil.oc.common.init.Items import li.cil.oc.common.inventory.DatabaseInventory import li.cil.oc.common.inventory.ServerInventory +import li.cil.oc.common.item.Delegator import net.minecraft.entity.player.EntityPlayer import net.minecraft.world.World @@ -43,7 +43,7 @@ abstract class GuiHandler extends IGuiHandler { case _ => null } case Some(GuiType.Category.Item) => - Items.multi.subItem(player.getCurrentEquippedItem) match { + Delegator.subItem(player.getCurrentEquippedItem) match { case Some(database: item.UpgradeDatabase) if id == GuiType.Database.id => new container.Database(player.inventory, new DatabaseInventory { override def tier = database.tier diff --git a/src/main/scala/li/cil/oc/common/Proxy.scala b/src/main/scala/li/cil/oc/common/Proxy.scala index e155b3329..1dc753c2b 100644 --- a/src/main/scala/li/cil/oc/common/Proxy.scala +++ b/src/main/scala/li/cil/oc/common/Proxy.scala @@ -9,6 +9,7 @@ import li.cil.oc._ import li.cil.oc.common.entity.Drone import li.cil.oc.common.init.Blocks import li.cil.oc.common.init.Items +import li.cil.oc.common.item.Delegator import li.cil.oc.common.recipe.Recipes import li.cil.oc.integration.Mods import li.cil.oc.server._ @@ -38,14 +39,14 @@ class Proxy { val nuggetIron = Items.get(Constants.ItemName.IronNugget).createItemStack(1) registerExclusive("nuggetIron", nuggetIron) - Items.multi.subItem(nuggetIron) match { + Delegator.subItem(nuggetIron) match { case Some(subItem: item.IronNugget) => if (OreDictionary.getOres("nuggetIron").exists(nuggetIron.isItemEqual)) { - Recipes.addMultiItem(subItem, "nuggetIron") + Recipes.addSubItem(subItem, "nuggetIron") Recipes.addItem(net.minecraft.init.Items.iron_ingot, "ingotIron") } else { - Items.ironNugget.showInItemList = false + subItem.showInItemList = false } case _ => } diff --git a/src/main/scala/li/cil/oc/common/component/Terminal.scala b/src/main/scala/li/cil/oc/common/component/Terminal.scala index 961eb1653..249d03358 100644 --- a/src/main/scala/li/cil/oc/common/component/Terminal.scala +++ b/src/main/scala/li/cil/oc/common/component/Terminal.scala @@ -10,8 +10,8 @@ import li.cil.oc.api.network.Component import li.cil.oc.api.network.Node import li.cil.oc.api.network.Visibility import li.cil.oc.common.Tier -import li.cil.oc.common.init.Items import li.cil.oc.common.item +import li.cil.oc.common.item.Delegator import li.cil.oc.common.tileentity import li.cil.oc.util.ExtendedNBT._ import net.minecraft.entity.player.EntityPlayer @@ -37,7 +37,7 @@ class Terminal(val rack: tileentity.ServerRack, val number: Int) { keyboard.setUsableOverride(new UsabilityChecker { override def isUsableByPlayer(keyboard: api.component.Keyboard, player: EntityPlayer) = { val stack = player.getCurrentEquippedItem - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(t: item.Terminal) if stack.hasTagCompound => keys.contains(stack.getTagCompound.getString(Settings.namespace + "key")) case _ => false } diff --git a/src/main/scala/li/cil/oc/common/init/Items.scala b/src/main/scala/li/cil/oc/common/init/Items.scala index 0adcb39ca..7d44dc8aa 100644 --- a/src/main/scala/li/cil/oc/common/init/Items.scala +++ b/src/main/scala/li/cil/oc/common/init/Items.scala @@ -11,6 +11,7 @@ import li.cil.oc.common.Loot import li.cil.oc.common.Tier import li.cil.oc.common.block.SimpleBlock import li.cil.oc.common.item +import li.cil.oc.common.item.Delegator import li.cil.oc.common.item.SimpleItem import li.cil.oc.common.item.UpgradeLeash import li.cil.oc.common.item.data.DroneData @@ -103,13 +104,12 @@ object Items extends ItemAPI { instance } - private def getBlockOrItem(stack: ItemStack): Any = if (stack == null) null - else { - multi.subItem(stack).getOrElse(stack.getItem match { + private def getBlockOrItem(stack: ItemStack): Any = + if (stack == null) null + else Delegator.subItem(stack).getOrElse(stack.getItem match { case block: ItemBlock => block.field_150939_a case item => item }) - } // ----------------------------------------------------------------------- // @@ -262,16 +262,11 @@ object Items extends ItemAPI { stack } - // ----------------------------------------------------------------------- // - - var multi: item.Delegator = _ - // ----------------------------------------------------------------------- // // Crafting - var ironNugget: item.IronNugget = _ def init() { - multi = new item.Delegator() { + val multi = new item.Delegator() { def configuredItems = Array( createOpenOS(), createLuaBios(), @@ -292,72 +287,72 @@ object Items extends ItemAPI { GameRegistry.registerItem(multi, "item") - Recipes.addMultiItem(new item.Analyzer(multi), Constants.ItemName.Analyzer, "oc:analyzer") + Recipes.addSubItem(new item.Analyzer(multi), Constants.ItemName.Analyzer, "oc:analyzer") - Recipes.addMultiItem(new item.Memory(multi, Tier.One), Constants.ItemName.RAMTier1, "oc:ram1") - Recipes.addMultiItem(new item.Memory(multi, Tier.Three), Constants.ItemName.RAMTier3, "oc:ram3") - Recipes.addMultiItem(new item.Memory(multi, Tier.Four), Constants.ItemName.RAMTier4, "oc:ram4") + Recipes.addSubItem(new item.Memory(multi, Tier.One), Constants.ItemName.RAMTier1, "oc:ram1") + Recipes.addSubItem(new item.Memory(multi, Tier.Three), Constants.ItemName.RAMTier3, "oc:ram3") + Recipes.addSubItem(new item.Memory(multi, Tier.Four), Constants.ItemName.RAMTier4, "oc:ram4") - Recipes.addMultiItem(new item.FloppyDisk(multi), Constants.ItemName.Floppy, "oc:floppy") - Recipes.addMultiItem(new item.HardDiskDrive(multi, Tier.One), Constants.ItemName.HDDTier1, "oc:hdd1") - Recipes.addMultiItem(new item.HardDiskDrive(multi, Tier.Two), Constants.ItemName.HDDTier2, "oc:hdd2") - Recipes.addMultiItem(new item.HardDiskDrive(multi, Tier.Three), Constants.ItemName.HDDTier3, "oc:hdd3") + Recipes.addSubItem(new item.FloppyDisk(multi), Constants.ItemName.Floppy, "oc:floppy") + Recipes.addSubItem(new item.HardDiskDrive(multi, Tier.One), Constants.ItemName.HDDTier1, "oc:hdd1") + Recipes.addSubItem(new item.HardDiskDrive(multi, Tier.Two), Constants.ItemName.HDDTier2, "oc:hdd2") + Recipes.addSubItem(new item.HardDiskDrive(multi, Tier.Three), Constants.ItemName.HDDTier3, "oc:hdd3") - Recipes.addMultiItem(new item.GraphicsCard(multi, Tier.One), Constants.ItemName.GraphicsCardTier1, "oc:graphicsCard1") - Recipes.addMultiItem(new item.GraphicsCard(multi, Tier.Two), Constants.ItemName.GraphicsCardTier2, "oc:graphicsCard2") - Recipes.addMultiItem(new item.GraphicsCard(multi, Tier.Three), Constants.ItemName.GraphicsCardTier3, "oc:graphicsCard3") - Recipes.addMultiItem(new item.NetworkCard(multi), Constants.ItemName.NetworkCard, "oc:lanCard") - Recipes.addMultiItem(new item.RedstoneCard(multi, Tier.Two), Constants.ItemName.RedstoneCardTier2, "oc:redstoneCard2") - Recipes.addMultiItem(new item.WirelessNetworkCard(multi), Constants.ItemName.WirelessNetworkCard, "oc:wlanCard") + Recipes.addSubItem(new item.GraphicsCard(multi, Tier.One), Constants.ItemName.GraphicsCardTier1, "oc:graphicsCard1") + Recipes.addSubItem(new item.GraphicsCard(multi, Tier.Two), Constants.ItemName.GraphicsCardTier2, "oc:graphicsCard2") + Recipes.addSubItem(new item.GraphicsCard(multi, Tier.Three), Constants.ItemName.GraphicsCardTier3, "oc:graphicsCard3") + Recipes.addSubItem(new item.NetworkCard(multi), Constants.ItemName.NetworkCard, "oc:lanCard") + Recipes.addSubItem(new item.RedstoneCard(multi, Tier.Two), Constants.ItemName.RedstoneCardTier2, "oc:redstoneCard2") + Recipes.addSubItem(new item.WirelessNetworkCard(multi), Constants.ItemName.WirelessNetworkCard, "oc:wlanCard") - Recipes.addMultiItem(new item.UpgradeCrafting(multi), Constants.ItemName.CraftingUpgrade, "oc:craftingUpgrade") - Recipes.addMultiItem(new item.UpgradeGenerator(multi), Constants.ItemName.GeneratorUpgrade, "oc:generatorUpgrade") + Recipes.addSubItem(new item.UpgradeCrafting(multi), Constants.ItemName.CraftingUpgrade, "oc:craftingUpgrade") + Recipes.addSubItem(new item.UpgradeGenerator(multi), Constants.ItemName.GeneratorUpgrade, "oc:generatorUpgrade") - ironNugget = new item.IronNugget(multi) + registerItem(new item.IronNugget(multi), Constants.ItemName.IronNugget) - Recipes.addMultiItem(new item.CuttingWire(multi), Constants.ItemName.CuttingWire, "oc:materialCuttingWire") - Recipes.addMultiItem(new item.Acid(multi), Constants.ItemName.Acid, "oc:materialAcid") - Recipes.addMultiItem(new item.Disk(multi), Constants.ItemName.Disk, "oc:materialDisk") + Recipes.addSubItem(new item.CuttingWire(multi), Constants.ItemName.CuttingWire, "oc:materialCuttingWire") + Recipes.addSubItem(new item.Acid(multi), Constants.ItemName.Acid, "oc:materialAcid") + Recipes.addSubItem(new item.Disk(multi), Constants.ItemName.Disk, "oc:materialDisk") - Recipes.addMultiItem(new item.ButtonGroup(multi), Constants.ItemName.ButtonGroup, "oc:materialButtonGroup") - Recipes.addMultiItem(new item.ArrowKeys(multi), Constants.ItemName.ArrowKeys, "oc:materialArrowKey") - Recipes.addMultiItem(new item.NumPad(multi), Constants.ItemName.NumPad, "oc:materialNumPad") + Recipes.addSubItem(new item.ButtonGroup(multi), Constants.ItemName.ButtonGroup, "oc:materialButtonGroup") + Recipes.addSubItem(new item.ArrowKeys(multi), Constants.ItemName.ArrowKeys, "oc:materialArrowKey") + Recipes.addSubItem(new item.NumPad(multi), Constants.ItemName.NumPad, "oc:materialNumPad") - Recipes.addMultiItem(new item.Transistor(multi), Constants.ItemName.Transistor, "oc:materialTransistor") - Recipes.addMultiItem(new item.Microchip(multi, Tier.One), Constants.ItemName.ChipTier1, "oc:circuitChip1") - Recipes.addMultiItem(new item.Microchip(multi, Tier.Two), Constants.ItemName.ChipTier2, "oc:circuitChip2") - Recipes.addMultiItem(new item.Microchip(multi, Tier.Three), Constants.ItemName.ChipTier3, "oc:circuitChip3") - Recipes.addMultiItem(new item.ALU(multi), Constants.ItemName.Alu, "oc:materialALU") - Recipes.addMultiItem(new item.ControlUnit(multi), Constants.ItemName.ControlUnit, "oc:materialCU") - Recipes.addMultiItem(new item.CPU(multi, Tier.One), Constants.ItemName.CPUTier1, "oc:cpu1") + Recipes.addSubItem(new item.Transistor(multi), Constants.ItemName.Transistor, "oc:materialTransistor") + Recipes.addSubItem(new item.Microchip(multi, Tier.One), Constants.ItemName.ChipTier1, "oc:circuitChip1") + Recipes.addSubItem(new item.Microchip(multi, Tier.Two), Constants.ItemName.ChipTier2, "oc:circuitChip2") + Recipes.addSubItem(new item.Microchip(multi, Tier.Three), Constants.ItemName.ChipTier3, "oc:circuitChip3") + Recipes.addSubItem(new item.ALU(multi), Constants.ItemName.Alu, "oc:materialALU") + Recipes.addSubItem(new item.ControlUnit(multi), Constants.ItemName.ControlUnit, "oc:materialCU") + Recipes.addSubItem(new item.CPU(multi, Tier.One), Constants.ItemName.CPUTier1, "oc:cpu1") - Recipes.addMultiItem(new item.RawCircuitBoard(multi), Constants.ItemName.RawCircuitBoard, "oc:materialCircuitBoardRaw") - Recipes.addMultiItem(new item.CircuitBoard(multi), Constants.ItemName.CircuitBoard, "oc:materialCircuitBoard") - Recipes.addMultiItem(new item.PrintedCircuitBoard(multi), Constants.ItemName.PrintedCircuitBoard, "oc:materialCircuitBoardPrinted") - Recipes.addMultiItem(new item.CardBase(multi), Constants.ItemName.Card, "oc:materialCard") + Recipes.addSubItem(new item.RawCircuitBoard(multi), Constants.ItemName.RawCircuitBoard, "oc:materialCircuitBoardRaw") + Recipes.addSubItem(new item.CircuitBoard(multi), Constants.ItemName.CircuitBoard, "oc:materialCircuitBoard") + Recipes.addSubItem(new item.PrintedCircuitBoard(multi), Constants.ItemName.PrintedCircuitBoard, "oc:materialCircuitBoardPrinted") + Recipes.addSubItem(new item.CardBase(multi), Constants.ItemName.Card, "oc:materialCard") // v1.1.0 - Recipes.addMultiItem(new item.UpgradeSolarGenerator(multi), Constants.ItemName.SolarGeneratorUpgrade, "oc:solarGeneratorUpgrade") - Recipes.addMultiItem(new item.UpgradeSign(multi), Constants.ItemName.SignUpgrade, "oc:signUpgrade") - Recipes.addMultiItem(new item.UpgradeNavigation(multi), Constants.ItemName.NavigationUpgrade, "oc:navigationUpgrade") + Recipes.addSubItem(new item.UpgradeSolarGenerator(multi), Constants.ItemName.SolarGeneratorUpgrade, "oc:solarGeneratorUpgrade") + Recipes.addSubItem(new item.UpgradeSign(multi), Constants.ItemName.SignUpgrade, "oc:signUpgrade") + Recipes.addSubItem(new item.UpgradeNavigation(multi), Constants.ItemName.NavigationUpgrade, "oc:navigationUpgrade") // Always create, to avoid shifting IDs. val abstractBus = new item.AbstractBusCard(multi) if (Mods.StargateTech2.isAvailable) { - Recipes.addMultiItem(abstractBus, Constants.ItemName.AbstractBusCard, "oc:abstractBusCard") + Recipes.addSubItem(abstractBus, Constants.ItemName.AbstractBusCard, "oc:abstractBusCard") } - Recipes.addMultiItem(new item.Memory(multi, Tier.Five), Constants.ItemName.RAMTier5, "oc:ram5") - Recipes.addMultiItem(new item.Memory(multi, Tier.Six), Constants.ItemName.RAMTier6, "oc:ram6") + Recipes.addSubItem(new item.Memory(multi, Tier.Five), Constants.ItemName.RAMTier5, "oc:ram5") + Recipes.addSubItem(new item.Memory(multi, Tier.Six), Constants.ItemName.RAMTier6, "oc:ram6") // v1.2.0 - Recipes.addMultiItem(new item.Server(multi, Tier.Three), Constants.ItemName.ServerTier3, "oc:server3") - Recipes.addMultiItem(new item.Terminal(multi), Constants.ItemName.Terminal, "oc:terminal") - Recipes.addMultiItem(new item.CPU(multi, Tier.Two), Constants.ItemName.CPUTier2, "oc:cpu2") - Recipes.addMultiItem(new item.CPU(multi, Tier.Three), Constants.ItemName.CPUTier3, "oc:cpu3") - Recipes.addMultiItem(new item.InternetCard(multi), Constants.ItemName.InternetCard, "oc:internetCard") - Recipes.addMultiItem(new item.Server(multi, Tier.One), Constants.ItemName.ServerTier1, "oc:server1") - Recipes.addMultiItem(new item.Server(multi, Tier.Two), Constants.ItemName.ServerTier2, "oc:server2") + Recipes.addSubItem(new item.Server(multi, Tier.Three), Constants.ItemName.ServerTier3, "oc:server3") + Recipes.addSubItem(new item.Terminal(multi), Constants.ItemName.Terminal, "oc:terminal") + Recipes.addSubItem(new item.CPU(multi, Tier.Two), Constants.ItemName.CPUTier2, "oc:cpu2") + Recipes.addSubItem(new item.CPU(multi, Tier.Three), Constants.ItemName.CPUTier3, "oc:cpu3") + Recipes.addSubItem(new item.InternetCard(multi), Constants.ItemName.InternetCard, "oc:internetCard") + Recipes.addSubItem(new item.Server(multi, Tier.One), Constants.ItemName.ServerTier1, "oc:server1") + Recipes.addSubItem(new item.Server(multi, Tier.Two), Constants.ItemName.ServerTier2, "oc:server2") // v1.2.3 registerItem(new item.FloppyDisk(multi) { @@ -365,20 +360,20 @@ object Items extends ItemAPI { }, Constants.ItemName.LootDisk) // v1.2.6 - Recipes.addMultiItem(new item.Interweb(multi), Constants.ItemName.Interweb, "oc:materialInterweb") - Recipes.addMultiItem(new item.UpgradeAngel(multi), Constants.ItemName.AngelUpgrade, "oc:angelUpgrade") - Recipes.addMultiItem(new item.Memory(multi, Tier.Two), Constants.ItemName.RAMTier2, "oc:ram2") + Recipes.addSubItem(new item.Interweb(multi), Constants.ItemName.Interweb, "oc:materialInterweb") + Recipes.addSubItem(new item.UpgradeAngel(multi), Constants.ItemName.AngelUpgrade, "oc:angelUpgrade") + Recipes.addSubItem(new item.Memory(multi, Tier.Two), Constants.ItemName.RAMTier2, "oc:ram2") // v1.3.0 - Recipes.addMultiItem(new item.LinkedCard(multi), Constants.ItemName.LinkedCard, "oc:linkedCard") - Recipes.addMultiItem(new item.UpgradeExperience(multi), Constants.ItemName.ExperienceUpgrade, "oc:experienceUpgrade") - Recipes.addMultiItem(new item.UpgradeInventory(multi), Constants.ItemName.InventoryUpgrade, "oc:inventoryUpgrade") - Recipes.addMultiItem(new item.UpgradeContainerUpgrade(multi, Tier.One), Constants.ItemName.UpgradeContainerTier1, "oc:upgradeContainer1") - Recipes.addMultiItem(new item.UpgradeContainerUpgrade(multi, Tier.Two), Constants.ItemName.UpgradeContainerTier2, "oc:upgradeContainer2") - Recipes.addMultiItem(new item.UpgradeContainerUpgrade(multi, Tier.Three), Constants.ItemName.UpgradeContainerTier3, "oc:upgradeContainer3") - Recipes.addMultiItem(new item.UpgradeContainerCard(multi, Tier.One), Constants.ItemName.CardContainerTier1, "oc:cardContainer1") - Recipes.addMultiItem(new item.UpgradeContainerCard(multi, Tier.Two), Constants.ItemName.CardContainerTier2, "oc:cardContainer2") - Recipes.addMultiItem(new item.UpgradeContainerCard(multi, Tier.Three), Constants.ItemName.CardContainerTier3, "oc:cardContainer3") + Recipes.addSubItem(new item.LinkedCard(multi), Constants.ItemName.LinkedCard, "oc:linkedCard") + Recipes.addSubItem(new item.UpgradeExperience(multi), Constants.ItemName.ExperienceUpgrade, "oc:experienceUpgrade") + Recipes.addSubItem(new item.UpgradeInventory(multi), Constants.ItemName.InventoryUpgrade, "oc:inventoryUpgrade") + Recipes.addSubItem(new item.UpgradeContainerUpgrade(multi, Tier.One), Constants.ItemName.UpgradeContainerTier1, "oc:upgradeContainer1") + Recipes.addSubItem(new item.UpgradeContainerUpgrade(multi, Tier.Two), Constants.ItemName.UpgradeContainerTier2, "oc:upgradeContainer2") + Recipes.addSubItem(new item.UpgradeContainerUpgrade(multi, Tier.Three), Constants.ItemName.UpgradeContainerTier3, "oc:upgradeContainer3") + Recipes.addSubItem(new item.UpgradeContainerCard(multi, Tier.One), Constants.ItemName.CardContainerTier1, "oc:cardContainer1") + Recipes.addSubItem(new item.UpgradeContainerCard(multi, Tier.Two), Constants.ItemName.CardContainerTier2, "oc:cardContainer2") + Recipes.addSubItem(new item.UpgradeContainerCard(multi, Tier.Three), Constants.ItemName.CardContainerTier3, "oc:cardContainer3") // Special case loot disk because this one's craftable and having it have // the same item damage would confuse NEI and the item costs computation. @@ -396,15 +391,15 @@ object Items extends ItemAPI { } Recipes.addRecipe(createOpenOS(), "openOS") - Recipes.addMultiItem(new item.UpgradeInventoryController(multi), Constants.ItemName.InventoryControllerUpgrade, "oc:inventoryControllerUpgrade") - Recipes.addMultiItem(new item.UpgradeChunkloader(multi), Constants.ItemName.ChunkloaderUpgrade, "oc:chunkloaderUpgrade") - Recipes.addMultiItem(new item.UpgradeBattery(multi, Tier.One), Constants.ItemName.BatteryUpgradeTier1, "oc:batteryUpgrade1") - Recipes.addMultiItem(new item.UpgradeBattery(multi, Tier.Two), Constants.ItemName.BatteryUpgradeTier2, "oc:batteryUpgrade2") - Recipes.addMultiItem(new item.UpgradeBattery(multi, Tier.Three), Constants.ItemName.BatteryUpgradeTier3, "oc:batteryUpgrade3") - Recipes.addMultiItem(new item.RedstoneCard(multi, Tier.One), Constants.ItemName.RedstoneCardTier1, "oc:redstoneCard1") + Recipes.addSubItem(new item.UpgradeInventoryController(multi), Constants.ItemName.InventoryControllerUpgrade, "oc:inventoryControllerUpgrade") + Recipes.addSubItem(new item.UpgradeChunkloader(multi), Constants.ItemName.ChunkloaderUpgrade, "oc:chunkloaderUpgrade") + Recipes.addSubItem(new item.UpgradeBattery(multi, Tier.One), Constants.ItemName.BatteryUpgradeTier1, "oc:batteryUpgrade1") + Recipes.addSubItem(new item.UpgradeBattery(multi, Tier.Two), Constants.ItemName.BatteryUpgradeTier2, "oc:batteryUpgrade2") + Recipes.addSubItem(new item.UpgradeBattery(multi, Tier.Three), Constants.ItemName.BatteryUpgradeTier3, "oc:batteryUpgrade3") + Recipes.addSubItem(new item.RedstoneCard(multi, Tier.One), Constants.ItemName.RedstoneCardTier1, "oc:redstoneCard1") // 1.3.2 - Recipes.addMultiItem(new item.UpgradeTractorBeam(multi), Constants.ItemName.TractorBeamUpgrade, "oc:tractorBeamUpgrade") + Recipes.addSubItem(new item.UpgradeTractorBeam(multi), Constants.ItemName.TractorBeamUpgrade, "oc:tractorBeamUpgrade") // 1.3.? registerItem(new item.Tablet(multi), Constants.ItemName.Tablet) @@ -413,41 +408,41 @@ object Items extends ItemAPI { registerItem(new item.Server(multi, Tier.Four), Constants.ItemName.ServerCreative) // 1.3.3 - Recipes.addMultiItem(new item.ComponentBus(multi, Tier.One), Constants.ItemName.ComponentBusTier1, "oc:componentBus1") - Recipes.addMultiItem(new item.ComponentBus(multi, Tier.Two), Constants.ItemName.ComponentBusTier2, "oc:componentBus2") - Recipes.addMultiItem(new item.ComponentBus(multi, Tier.Three), Constants.ItemName.ComponentBusTier3, "oc:componentBus3") + Recipes.addSubItem(new item.ComponentBus(multi, Tier.One), Constants.ItemName.ComponentBusTier1, "oc:componentBus1") + Recipes.addSubItem(new item.ComponentBus(multi, Tier.Two), Constants.ItemName.ComponentBusTier2, "oc:componentBus2") + Recipes.addSubItem(new item.ComponentBus(multi, Tier.Three), Constants.ItemName.ComponentBusTier3, "oc:componentBus3") registerItem(new item.DebugCard(multi), Constants.ItemName.DebugCard) // 1.3.5 - Recipes.addMultiItem(new item.TabletCase(multi, Tier.One), Constants.ItemName.TabletCaseTier1, "oc:tabletCase1") - Recipes.addMultiItem(new item.UpgradePiston(multi), Constants.ItemName.PistonUpgrade, "oc:pistonUpgrade") - Recipes.addMultiItem(new item.UpgradeTank(multi), Constants.ItemName.TankUpgrade, "oc:tankUpgrade") - Recipes.addMultiItem(new item.UpgradeTankController(multi), Constants.ItemName.TankControllerUpgrade, "oc:tankControllerUpgrade") + Recipes.addSubItem(new item.TabletCase(multi, Tier.One), Constants.ItemName.TabletCaseTier1, "oc:tabletCase1") + Recipes.addSubItem(new item.UpgradePiston(multi), Constants.ItemName.PistonUpgrade, "oc:pistonUpgrade") + Recipes.addSubItem(new item.UpgradeTank(multi), Constants.ItemName.TankUpgrade, "oc:tankUpgrade") + Recipes.addSubItem(new item.UpgradeTankController(multi), Constants.ItemName.TankControllerUpgrade, "oc:tankControllerUpgrade") // 1.4.0 - Recipes.addMultiItem(new item.UpgradeDatabase(multi, Tier.One), Constants.ItemName.DatabaseUpgradeTier1, "oc:databaseUpgrade1") - Recipes.addMultiItem(new item.UpgradeDatabase(multi, Tier.Two), Constants.ItemName.DatabaseUpgradeTier2, "oc:databaseUpgrade2") - Recipes.addMultiItem(new item.UpgradeDatabase(multi, Tier.Three), Constants.ItemName.DatabaseUpgradeTier3, "oc:databaseUpgrade3") + Recipes.addSubItem(new item.UpgradeDatabase(multi, Tier.One), Constants.ItemName.DatabaseUpgradeTier1, "oc:databaseUpgrade1") + Recipes.addSubItem(new item.UpgradeDatabase(multi, Tier.Two), Constants.ItemName.DatabaseUpgradeTier2, "oc:databaseUpgrade2") + Recipes.addSubItem(new item.UpgradeDatabase(multi, Tier.Three), Constants.ItemName.DatabaseUpgradeTier3, "oc:databaseUpgrade3") registerItem(new item.Debugger(multi), Constants.ItemName.Debugger) // 1.4.2 val eeprom = new item.EEPROM() Recipes.addItem(eeprom, Constants.ItemName.EEPROM, "oc:eeprom") Recipes.addRecipe(createLuaBios(), "luaBios") - Recipes.addMultiItem(new item.MicrocontrollerCase(multi, Tier.One), Constants.ItemName.MicrocontrollerCaseTier1, "oc:microcontrollerCase1") + Recipes.addSubItem(new item.MicrocontrollerCase(multi, Tier.One), Constants.ItemName.MicrocontrollerCaseTier1, "oc:microcontrollerCase1") // 1.4.3 - Recipes.addMultiItem(new item.DroneCase(multi, Tier.One), Constants.ItemName.DroneCaseTier1, "oc:droneCase1") + Recipes.addSubItem(new item.DroneCase(multi, Tier.One), Constants.ItemName.DroneCaseTier1, "oc:droneCase1") registerItem(new item.Drone(multi), Constants.ItemName.Drone) - Recipes.addMultiItem(new UpgradeLeash(multi), Constants.ItemName.LeashUpgrade, "oc:leashUpgrade") - Recipes.addMultiItem(new item.MicrocontrollerCase(multi, Tier.Two), Constants.ItemName.MicrocontrollerCaseTier2, "oc:microcontrollerCase2") - Recipes.addMultiItem(new item.DroneCase(multi, Tier.Two), Constants.ItemName.DroneCaseTier2, "oc:droneCase2") + Recipes.addSubItem(new UpgradeLeash(multi), Constants.ItemName.LeashUpgrade, "oc:leashUpgrade") + Recipes.addSubItem(new item.MicrocontrollerCase(multi, Tier.Two), Constants.ItemName.MicrocontrollerCaseTier2, "oc:microcontrollerCase2") + Recipes.addSubItem(new item.DroneCase(multi, Tier.Two), Constants.ItemName.DroneCaseTier2, "oc:droneCase2") registerItem(new item.Present(multi), Constants.ItemName.Present) // Always create, to avoid shifting IDs. val worldSensorCard = new item.WorldSensorCard(multi) if (Mods.Galacticraft.isAvailable) { - Recipes.addMultiItem(worldSensorCard, Constants.ItemName.WorldSensorCard, "oc:worldSensorCard") + Recipes.addSubItem(worldSensorCard, Constants.ItemName.WorldSensorCard, "oc:worldSensorCard") } // 1.4.4 @@ -455,13 +450,13 @@ object Items extends ItemAPI { registerItem(new item.DroneCase(multi, Tier.Four), Constants.ItemName.DroneCaseCreative) // 1.4.7 - Recipes.addMultiItem(new item.TabletCase(multi, Tier.Two), Constants.ItemName.TabletCaseTier2, "oc:tabletCase2") + Recipes.addSubItem(new item.TabletCase(multi, Tier.Two), Constants.ItemName.TabletCaseTier2, "oc:tabletCase2") registerItem(new item.TabletCase(multi, Tier.Four), Constants.ItemName.TabletCaseCreative) // 1.5.4 - Recipes.addMultiItem(new item.InkCartridgeEmpty(multi), Constants.ItemName.InkCartridgeEmpty, "oc:inkCartridgeEmpty") - Recipes.addMultiItem(new item.InkCartridge(multi), Constants.ItemName.InkCartridge, "oc:inkCartridge") - Recipes.addMultiItem(new item.Chamelium(multi), Constants.ItemName.Chamelium, "oc:chamelium") - Recipes.addMultiItem(new item.TexturePicker(multi), Constants.ItemName.TexturePicker, "oc:texturePicker") + Recipes.addSubItem(new item.InkCartridgeEmpty(multi), Constants.ItemName.InkCartridgeEmpty, "oc:inkCartridgeEmpty") + Recipes.addSubItem(new item.InkCartridge(multi), Constants.ItemName.InkCartridge, "oc:inkCartridge") + Recipes.addSubItem(new item.Chamelium(multi), Constants.ItemName.Chamelium, "oc:chamelium") + Recipes.addSubItem(new item.TexturePicker(multi), Constants.ItemName.TexturePicker, "oc:texturePicker") } } diff --git a/src/main/scala/li/cil/oc/common/item/Delegator.scala b/src/main/scala/li/cil/oc/common/item/Delegator.scala index 1a9b0bbdd..39b699dcb 100644 --- a/src/main/scala/li/cil/oc/common/item/Delegator.scala +++ b/src/main/scala/li/cil/oc/common/item/Delegator.scala @@ -25,6 +25,15 @@ import net.minecraftforge.common.ChestGenHooks import scala.collection.mutable +object Delegator { + def subItem(stack: ItemStack) = + if (stack != null) stack.getItem match { + case delegator: Delegator => delegator.subItem(stack.getItemDamage) + case _ => None + } + else None +} + class Delegator extends Item { setHasSubtypes(true) setCreativeTab(CreativeTab) @@ -36,7 +45,7 @@ class Delegator extends Item { // ----------------------------------------------------------------------- // override def getItemStackLimit(stack: ItemStack) = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => subItem.maxStackSize case _ => maxStackSize } @@ -76,32 +85,33 @@ class Delegator extends Item { // ----------------------------------------------------------------------- // override def getUnlocalizedName(stack: ItemStack): String = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => "item.oc." + subItem.unlocalizedName case _ => getUnlocalizedName } override def isBookEnchantable(itemA: ItemStack, itemB: ItemStack): Boolean = false - override def getRarity(stack: ItemStack) = subItem(stack) match { - case Some(subItem) => subItem.rarity(stack) - case _ => EnumRarity.common - } + override def getRarity(stack: ItemStack) = + Delegator.subItem(stack) match { + case Some(subItem) => subItem.rarity(stack) + case _ => EnumRarity.common + } override def getColorFromItemStack(stack: ItemStack, pass: Int) = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => subItem.color(stack, pass) case _ => super.getColorFromItemStack(stack, pass) } override def getContainerItem(stack: ItemStack): ItemStack = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => subItem.getContainerItem(stack) case _ => super.getContainerItem(stack) } override def hasContainerItem(stack: ItemStack): Boolean = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => subItem.hasContainerItem(stack) case _ => super.hasContainerItem(stack) } @@ -118,19 +128,19 @@ class Delegator extends Item { // ----------------------------------------------------------------------- // override def onItemUseFirst(stack: ItemStack, player: EntityPlayer, world: World, x: Int, y: Int, z: Int, side: Int, hitX: Float, hitY: Float, hitZ: Float): Boolean = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => subItem.onItemUseFirst(stack, player, BlockPosition(x, y, z, world), side, hitX, hitY, hitZ) case _ => super.onItemUseFirst(stack, player, world, x, y, z, side, hitX, hitY, hitZ) } override def onItemUse(stack: ItemStack, player: EntityPlayer, world: World, x: Int, y: Int, z: Int, side: Int, hitX: Float, hitY: Float, hitZ: Float): Boolean = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => subItem.onItemUse(stack, player, BlockPosition(x, y, z, world), side, hitX, hitY, hitZ) case _ => super.onItemUse(stack, player, world, x, y, z, side, hitX, hitY, hitZ) } override def onItemRightClick(stack: ItemStack, world: World, player: EntityPlayer): ItemStack = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => subItem.onItemRightClick(stack, world, player) case _ => super.onItemRightClick(stack, world, player) } @@ -138,25 +148,25 @@ class Delegator extends Item { // ----------------------------------------------------------------------- // override def onEaten(stack: ItemStack, world: World, player: EntityPlayer): ItemStack = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => subItem.onEaten(stack, world, player) case _ => super.onEaten(stack, world, player) } override def getItemUseAction(stack: ItemStack): EnumAction = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => subItem.getItemUseAction(stack) case _ => super.getItemUseAction(stack) } override def getMaxItemUseDuration(stack: ItemStack): Int = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => subItem.getMaxItemUseDuration(stack) case _ => super.getMaxItemUseDuration(stack) } override def onPlayerStoppedUsing(stack: ItemStack, world: World, player: EntityPlayer, duration: Int): Unit = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => subItem.onPlayerStoppedUsing(stack, player, duration) case _ => super.onPlayerStoppedUsing(stack, world, player, duration) } @@ -164,7 +174,7 @@ class Delegator extends Item { def internalGetItemStackDisplayName(stack: ItemStack) = super.getItemStackDisplayName(stack) override def getItemStackDisplayName(stack: ItemStack) = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => subItem.displayName(stack) match { case Some(name) => name case _ => super.getItemStackDisplayName(stack) @@ -175,7 +185,7 @@ class Delegator extends Item { @SideOnly(Side.CLIENT) override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[_], advanced: Boolean) { super.addInformation(stack, player, tooltip, advanced) - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => try subItem.tooltipLines(stack, player, tooltip.asInstanceOf[util.List[String]], advanced) catch { case t: Throwable => OpenComputers.log.warn("Error in item tooltip.", t) } @@ -184,32 +194,32 @@ class Delegator extends Item { } override def getDisplayDamage(stack: ItemStack) = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) if subItem.isDamageable => subItem.damage(stack) case _ => super.getDisplayDamage(stack) } override def getMaxDamage(stack: ItemStack) = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) if subItem.isDamageable => subItem.maxDamage(stack) case _ => super.getMaxDamage(stack) } override def isDamaged(stack: ItemStack) = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) if subItem.isDamageable => subItem.damage(stack) > 0 case _ => false } override def onUpdate(stack: ItemStack, world: World, player: Entity, slot: Int, selected: Boolean) = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => subItem.update(stack, world, player, slot, selected) case _ => super.onUpdate(stack, world, player, slot, selected) } @SideOnly(Side.CLIENT) override def getIcon(stack: ItemStack, pass: Int) = - subItem(stack) match { + Delegator.subItem(stack) match { case Some(subItem) => subItem.icon(stack, pass) match { case Some(icon) => icon case _ => super.getIcon(stack, pass) diff --git a/src/main/scala/li/cil/oc/common/recipe/Recipes.scala b/src/main/scala/li/cil/oc/common/recipe/Recipes.scala index 30912124e..8c8c0dd53 100644 --- a/src/main/scala/li/cil/oc/common/recipe/Recipes.scala +++ b/src/main/scala/li/cil/oc/common/recipe/Recipes.scala @@ -9,6 +9,7 @@ import cpw.mods.fml.common.registry.GameRegistry import li.cil.oc._ import li.cil.oc.common.block.SimpleBlock import li.cil.oc.common.init.Items +import li.cil.oc.common.item.Delegator import li.cil.oc.common.item.SimpleItem import li.cil.oc.common.item.data.PrintData import li.cil.oc.integration.Mods @@ -44,7 +45,7 @@ object Recipes { instance } - def addMultiItem[T <: common.item.Delegate](delegate: T, name: String, oreDict: String = null) = { + def addSubItem[T <: common.item.Delegate](delegate: T, name: String, oreDict: String = null) = { Items.registerItem(delegate, name) addRecipe(delegate.createItemStack(), name) register(oreDict, delegate.createItemStack()) @@ -131,7 +132,7 @@ object Recipes { val robot = api.Items.get(Constants.BlockName.Robot) val tablet = api.Items.get(Constants.ItemName.Tablet) val chamelium = api.Items.get(Constants.ItemName.Chamelium) - val chameliumBlock = api.Items.get(Constants.BlockName.Chamelium) + val chameliumBlock = api.Items.get(Constants.BlockName.ChameliumBlock) val print = api.Items.get(Constants.BlockName.Print) // Navigation upgrade recrafting. @@ -474,7 +475,7 @@ object Recipes { } private def hide(value: ItemStack) { - Items.multi.subItem(value) match { + Delegator.subItem(value) match { case Some(stack) => stack.showInItemList = false case _ => value.getItem match { case itemBlock: ItemBlock => itemBlock.field_150939_a match { diff --git a/src/main/scala/li/cil/oc/common/tileentity/Switch.scala b/src/main/scala/li/cil/oc/common/tileentity/Switch.scala index b03887a0b..ca6be3ba5 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Switch.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Switch.scala @@ -7,8 +7,8 @@ import li.cil.oc.api.network.Message import li.cil.oc.api.network.Packet import li.cil.oc.common.InventorySlots import li.cil.oc.common.Slot -import li.cil.oc.common.init.Items import li.cil.oc.common.item +import li.cil.oc.common.item.Delegator import li.cil.oc.integration.Mods import li.cil.oc.server.PacketSender import net.minecraft.item.ItemStack @@ -78,7 +78,7 @@ class Switch extends traits.Hub with traits.NotAnalyzable with traits.ComponentI case Some(driver) if driver.slot(stack) == Slot.CPU => relayDelay = math.max(1, relayBaseDelay - ((driver.tier(stack) + 1) * relayDelayPerUpgrade)) case Some(driver) if driver.slot(stack) == Slot.Memory => - relayAmount = math.max(1, relayBaseAmount + (Items.multi.subItem(stack) match { + relayAmount = math.max(1, relayBaseAmount + (Delegator.subItem(stack) match { case Some(ram: item.Memory) => (ram.tier + 1) * relayAmountPerUpgrade case _ => (driver.tier(stack) + 1) * (relayAmountPerUpgrade * 2) })) diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverCPU.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverCPU.scala index 0b49d01e6..e21f5e925 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverCPU.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverCPU.scala @@ -9,8 +9,8 @@ import li.cil.oc.api.driver.item.Processor import li.cil.oc.api.machine.Architecture import li.cil.oc.common.Slot import li.cil.oc.common.Tier -import li.cil.oc.common.init.Items import li.cil.oc.common.item +import li.cil.oc.common.item.Delegator import net.minecraft.item.ItemStack import scala.collection.convert.WrapAsScala._ @@ -26,13 +26,13 @@ object DriverCPU extends Item with Processor { override def slot(stack: ItemStack) = Slot.CPU override def tier(stack: ItemStack) = - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(cpu: item.CPU) => cpu.tier case _ => Tier.One } override def supportedComponents(stack: ItemStack) = - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(cpu: item.CPU) => Settings.get.cpuComponentSupport(cpu.tier) case _ => Tier.One } diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverComponentBus.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverComponentBus.scala index 0209631d8..93a940c3a 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverComponentBus.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverComponentBus.scala @@ -7,8 +7,8 @@ import li.cil.oc.api.driver.EnvironmentHost import li.cil.oc.api.driver.item.Processor import li.cil.oc.common.Slot import li.cil.oc.common.Tier -import li.cil.oc.common.init.Items import li.cil.oc.common.item +import li.cil.oc.common.item.Delegator import net.minecraft.item.ItemStack object DriverComponentBus extends Item with Processor { @@ -22,13 +22,13 @@ object DriverComponentBus extends Item with Processor { override def slot(stack: ItemStack) = Slot.ComponentBus override def tier(stack: ItemStack) = - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(bus: item.ComponentBus) => bus.tier case _ => Tier.One } override def supportedComponents(stack: ItemStack) = - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(bus: item.ComponentBus) => Settings.get.cpuComponentSupport(bus.tier) case _ => Tier.One } diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerCard.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerCard.scala index e382fbe6d..55729f244 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerCard.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerCard.scala @@ -6,8 +6,8 @@ import li.cil.oc.api.driver.EnvironmentHost import li.cil.oc.api.driver.item.Container import li.cil.oc.common.Slot import li.cil.oc.common.Tier -import li.cil.oc.common.init.Items import li.cil.oc.common.item +import li.cil.oc.common.item.Delegator import net.minecraft.item.ItemStack object DriverContainerCard extends Item with Container { @@ -25,7 +25,7 @@ object DriverContainerCard extends Item with Container { override def providedTier(stack: ItemStack) = tier(stack) override def tier(stack: ItemStack) = - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(container: item.UpgradeContainerCard) => container.tier case _ => Tier.One } diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerUpgrade.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerUpgrade.scala index 9fdd2d702..502832688 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerUpgrade.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverContainerUpgrade.scala @@ -6,8 +6,8 @@ import li.cil.oc.api.driver.EnvironmentHost import li.cil.oc.api.driver.item.Container import li.cil.oc.common.Slot import li.cil.oc.common.Tier -import li.cil.oc.common.init.Items import li.cil.oc.common.item +import li.cil.oc.common.item.Delegator import net.minecraft.item.ItemStack object DriverContainerUpgrade extends Item with Container { @@ -25,7 +25,7 @@ object DriverContainerUpgrade extends Item with Container { override def providedTier(stack: ItemStack) = tier(stack) override def tier(stack: ItemStack) = - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(container: item.UpgradeContainerUpgrade) => container.tier case _ => Tier.One } diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverFileSystem.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverFileSystem.scala index 9656799bc..17a7304fe 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverFileSystem.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverFileSystem.scala @@ -6,7 +6,7 @@ import li.cil.oc.Settings import li.cil.oc.api import li.cil.oc.api.driver.EnvironmentHost import li.cil.oc.common.Slot -import li.cil.oc.common.init.Items +import li.cil.oc.common.item.Delegator import li.cil.oc.common.item.FloppyDisk import li.cil.oc.common.item.HardDiskDrive import li.cil.oc.server.fs.FileSystem.ItemLabel @@ -21,21 +21,21 @@ object DriverFileSystem extends Item { api.Items.get(Constants.ItemName.Floppy)) override def createEnvironment(stack: ItemStack, host: EnvironmentHost) = - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(hdd: HardDiskDrive) => createEnvironment(stack, hdd.kiloBytes * 1024, host) case Some(disk: FloppyDisk) => createEnvironment(stack, Settings.get.floppySize * 1024, host) case _ => null } override def slot(stack: ItemStack) = - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(hdd: HardDiskDrive) => Slot.HDD case Some(disk: FloppyDisk) => Slot.Floppy case _ => throw new IllegalArgumentException() } override def tier(stack: ItemStack) = - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(hdd: HardDiskDrive) => hdd.tier case _ => 0 } diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverGraphicsCard.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverGraphicsCard.scala index cfe423a48..31b594c1d 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverGraphicsCard.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverGraphicsCard.scala @@ -8,7 +8,7 @@ import li.cil.oc.api.driver.item.HostAware import li.cil.oc.common import li.cil.oc.common.Slot import li.cil.oc.common.Tier -import li.cil.oc.common.init.Items +import li.cil.oc.common.item.Delegator import li.cil.oc.server.component import net.minecraft.item.ItemStack @@ -29,7 +29,7 @@ object DriverGraphicsCard extends Item with HostAware with EnvironmentAware { override def slot(stack: ItemStack) = Slot.Card override def tier(stack: ItemStack) = - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(gpu: common.item.GraphicsCard) => gpu.tier case _ => Tier.One } diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverMemory.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverMemory.scala index 425c2cd91..7ea46d120 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverMemory.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverMemory.scala @@ -5,15 +5,16 @@ import li.cil.oc.api import li.cil.oc.api.driver import li.cil.oc.common.Slot import li.cil.oc.common.Tier -import li.cil.oc.common.init.Items import li.cil.oc.common.item +import li.cil.oc.common.item.Delegator import net.minecraft.item.ItemStack object DriverMemory extends Item with driver.item.Memory { - override def amount(stack: ItemStack) = Items.multi.subItem(stack) match { - case Some(memory: item.Memory) => memory.tier + 1 - case _ => 0.0 - } + override def amount(stack: ItemStack) = + Delegator.subItem(stack) match { + case Some(memory: item.Memory) => memory.tier + 1 + case _ => 0.0 + } override def worksWith(stack: ItemStack) = isOneOf(stack, api.Items.get(Constants.ItemName.RAMTier1), @@ -28,7 +29,7 @@ object DriverMemory extends Item with driver.item.Memory { override def slot(stack: ItemStack) = Slot.Memory override def tier(stack: ItemStack) = - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(memory: item.Memory) => memory.tier / 2 case _ => Tier.One } diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverRedstoneCard.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverRedstoneCard.scala index 14e7495a9..2cfa1203a 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverRedstoneCard.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverRedstoneCard.scala @@ -8,8 +8,8 @@ import li.cil.oc.api.driver.item.HostAware import li.cil.oc.api.network.Environment import li.cil.oc.common.Slot import li.cil.oc.common.Tier -import li.cil.oc.common.init.Items import li.cil.oc.common.item +import li.cil.oc.common.item.Delegator import li.cil.oc.common.tileentity.traits.BundledRedstoneAware import li.cil.oc.common.tileentity.traits.RedstoneAware import li.cil.oc.integration.util.BundledRedstone @@ -42,7 +42,7 @@ object DriverRedstoneCard extends Item with HostAware with EnvironmentAware { override def slot(stack: ItemStack) = Slot.Card override def tier(stack: ItemStack) = - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(card: item.RedstoneCard) => card.tier case _ => Tier.One } diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeBattery.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeBattery.scala index f3149ed00..0b5d8a5c7 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeBattery.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeBattery.scala @@ -6,8 +6,8 @@ import li.cil.oc.api.driver.EnvironmentHost import li.cil.oc.api.driver.item.HostAware import li.cil.oc.common.Slot import li.cil.oc.common.Tier -import li.cil.oc.common.init.Items import li.cil.oc.common.item +import li.cil.oc.common.item.Delegator import li.cil.oc.server.component import net.minecraft.item.ItemStack @@ -22,7 +22,7 @@ object DriverUpgradeBattery extends Item with HostAware { override def slot(stack: ItemStack) = Slot.Upgrade override def tier(stack: ItemStack) = - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(battery: item.UpgradeBattery) => battery.tier case _ => Tier.One } diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeDatabase.scala b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeDatabase.scala index 2e587d447..e65345ebe 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeDatabase.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/DriverUpgradeDatabase.scala @@ -7,9 +7,9 @@ import li.cil.oc.api.driver.EnvironmentAware import li.cil.oc.api.driver.item.HostAware import li.cil.oc.common.Slot import li.cil.oc.common.Tier -import li.cil.oc.common.init.Items import li.cil.oc.common.inventory.DatabaseInventory import li.cil.oc.common.item +import li.cil.oc.common.item.Delegator import li.cil.oc.server.component import net.minecraft.entity.player.EntityPlayer import net.minecraft.item.ItemStack @@ -32,7 +32,7 @@ object DriverUpgradeDatabase extends Item with HostAware with EnvironmentAware { override def slot(stack: ItemStack) = Slot.Upgrade override def tier(stack: ItemStack) = - Items.multi.subItem(stack) match { + Delegator.subItem(stack) match { case Some(database: item.UpgradeDatabase) => database.tier case _ => Tier.One } diff --git a/src/main/scala/li/cil/oc/integration/opencomputers/ModOpenComputers.scala b/src/main/scala/li/cil/oc/integration/opencomputers/ModOpenComputers.scala index 8bc7d3246..e2136a7a3 100644 --- a/src/main/scala/li/cil/oc/integration/opencomputers/ModOpenComputers.scala +++ b/src/main/scala/li/cil/oc/integration/opencomputers/ModOpenComputers.scala @@ -11,8 +11,8 @@ import li.cil.oc.common.Loot import li.cil.oc.common.SaveHandler import li.cil.oc.common.asm.SimpleComponentTickHandler import li.cil.oc.common.event._ -import li.cil.oc.common.init.Items import li.cil.oc.common.item.Analyzer +import li.cil.oc.common.item.Delegator import li.cil.oc.common.item.RedstoneCard import li.cil.oc.common.item.Tablet import li.cil.oc.common.template._ @@ -183,7 +183,7 @@ object ModOpenComputers extends ModProxy { // redstone card availability here, after all other mods were inited. if (BundledRedstone.isAvailable || WirelessRedstone.isAvailable) { OpenComputers.log.info("Found extended redstone mods, enabling tier two redstone card.") - Items.multi.subItem(api.Items.get(Constants.ItemName.RedstoneCardTier2).createItemStack(1)) match { + Delegator.subItem(api.Items.get(Constants.ItemName.RedstoneCardTier2).createItemStack(1)) match { case Some(redstone: RedstoneCard) => redstone.showInItemList = true case _ => } diff --git a/src/main/scala/li/cil/oc/server/component/Server.scala b/src/main/scala/li/cil/oc/server/component/Server.scala index f1e7d6981..c7b792a2e 100644 --- a/src/main/scala/li/cil/oc/server/component/Server.scala +++ b/src/main/scala/li/cil/oc/server/component/Server.scala @@ -10,10 +10,10 @@ import li.cil.oc.api.network.Environment import li.cil.oc.api.network.Message import li.cil.oc.api.network.Node import li.cil.oc.api.network.Visibility -import li.cil.oc.common.init.Items import li.cil.oc.common.inventory.ComponentInventory import li.cil.oc.common.inventory.ServerInventory import li.cil.oc.common.item +import li.cil.oc.common.item.Delegator import li.cil.oc.common.tileentity import li.cil.oc.util.ExtendedNBT._ import net.minecraft.item.ItemStack @@ -31,7 +31,7 @@ class Server(val rack: tileentity.ServerRack, val slot: Int) extends Environment machine.onHostChanged() - def tier = Items.multi.subItem(rack.getStackInSlot(slot)) match { + def tier = Delegator.subItem(rack.getStackInSlot(slot)) match { case Some(server: item.Server) => server.tier case _ => 0 }