From 43a40cd3a8fa8d14f8290f5863b5027a57f58513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Mon, 9 Feb 2015 13:30:14 +0100 Subject: [PATCH] Ensure writeToNBT/readFromNBT is only called on the server, as some mods may choose to call it on the client... --- .../cil/oc/common/tileentity/AccessPoint.scala | 8 ++++---- .../li/cil/oc/common/tileentity/Adapter.scala | 8 ++++---- .../li/cil/oc/common/tileentity/Assembler.scala | 8 ++++---- .../scala/li/cil/oc/common/tileentity/Case.scala | 8 ++++---- .../li/cil/oc/common/tileentity/Charger.scala | 8 ++++---- .../cil/oc/common/tileentity/Disassembler.scala | 8 ++++---- .../li/cil/oc/common/tileentity/Geolyzer.scala | 8 ++++---- .../li/cil/oc/common/tileentity/Hologram.scala | 8 ++++---- .../li/cil/oc/common/tileentity/Keyboard.scala | 8 ++++---- .../oc/common/tileentity/Microcontroller.scala | 8 ++++---- .../cil/oc/common/tileentity/MotionSensor.scala | 8 ++++---- .../oc/common/tileentity/PowerDistributor.scala | 8 ++++---- .../scala/li/cil/oc/common/tileentity/Raid.scala | 8 ++++---- .../li/cil/oc/common/tileentity/Redstone.scala | 8 ++++---- .../li/cil/oc/common/tileentity/Robot.scala | 4 ++-- .../li/cil/oc/common/tileentity/RobotProxy.scala | 12 ++++++------ .../li/cil/oc/common/tileentity/Screen.scala | 8 ++++---- .../li/cil/oc/common/tileentity/ServerRack.scala | 8 ++++---- .../li/cil/oc/common/tileentity/Switch.scala | 4 ++-- .../tileentity/traits/BundledRedstoneAware.scala | 8 ++++---- .../oc/common/tileentity/traits/Colored.scala | 8 ++++---- .../oc/common/tileentity/traits/Computer.scala | 8 ++++---- .../common/tileentity/traits/Environment.scala | 8 ++++---- .../li/cil/oc/common/tileentity/traits/Hub.scala | 8 ++++---- .../oc/common/tileentity/traits/Inventory.scala | 8 ++++---- .../tileentity/traits/PowerInformation.scala | 4 ++-- .../common/tileentity/traits/RedstoneAware.scala | 8 ++++---- .../oc/common/tileentity/traits/Rotatable.scala | 8 ++++---- .../oc/common/tileentity/traits/TextBuffer.scala | 8 ++++---- .../oc/common/tileentity/traits/TileEntity.scala | 16 ++++++++++++++++ .../traits/power/AppliedEnergistics2.scala | 8 ++++---- .../tileentity/traits/power/Factorization.scala | 8 ++++---- .../traits/power/IndustrialCraft2Classic.scala | 8 ++++---- .../power/IndustrialCraft2Experimental.scala | 8 ++++---- 34 files changed, 144 insertions(+), 128 deletions(-) diff --git a/src/main/scala/li/cil/oc/common/tileentity/AccessPoint.scala b/src/main/scala/li/cil/oc/common/tileentity/AccessPoint.scala index 7e6d82f5f..79a1c5f75 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/AccessPoint.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/AccessPoint.scala @@ -120,8 +120,8 @@ class AccessPoint extends Switch with WirelessEndpoint with traits.PowerAcceptor // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) = { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) = { + super.readFromNBTForServer(nbt) if (nbt.hasKey(Settings.namespace + "strength")) { strength = nbt.getDouble(Settings.namespace + "strength") max 0 min Settings.get.maxWirelessRange } @@ -134,8 +134,8 @@ class AccessPoint extends Switch with WirelessEndpoint with traits.PowerAcceptor } } - override def writeToNBT(nbt: NBTTagCompound) = { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) = { + super.writeToNBTForServer(nbt) nbt.setDouble(Settings.namespace + "strength", strength) nbt.setBoolean(Settings.namespace + "isRepeater", isRepeater) nbt.setNewTagList(Settings.namespace + "componentNodes", componentNodes.map { diff --git a/src/main/scala/li/cil/oc/common/tileentity/Adapter.scala b/src/main/scala/li/cil/oc/common/tileentity/Adapter.scala index bf1f9f9c4..0f49201aa 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Adapter.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Adapter.scala @@ -143,8 +143,8 @@ class Adapter extends traits.Environment with traits.ComponentInventory with Ana // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) val blocksNbt = nbt.getTagList(Settings.namespace + "adapter.blocks", NBT.TAG_COMPOUND) (0 until (blocksNbt.tagCount min blocksData.length)). @@ -158,8 +158,8 @@ class Adapter extends traits.Environment with traits.ComponentInventory with Ana } } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) val blocksNbt = new NBTTagList() for (i <- 0 until blocks.length) { diff --git a/src/main/scala/li/cil/oc/common/tileentity/Assembler.scala b/src/main/scala/li/cil/oc/common/tileentity/Assembler.scala index a99c5e248..bce44c7bf 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Assembler.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Assembler.scala @@ -126,8 +126,8 @@ class Assembler extends traits.Environment with traits.PowerAcceptor with traits } } - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) if (nbt.hasKey(Settings.namespace + "output")) { output = Option(ItemUtils.loadStack(nbt.getCompoundTag(Settings.namespace + "output"))) } @@ -139,8 +139,8 @@ class Assembler extends traits.Environment with traits.PowerAcceptor with traits requiredEnergy = nbt.getDouble(Settings.namespace + "remaining") } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) output.foreach(stack => nbt.setNewCompoundTag(Settings.namespace + "output", stack.writeToNBT)) nbt.setDouble(Settings.namespace + "total", totalRequiredEnergy) nbt.setDouble(Settings.namespace + "remaining", requiredEnergy) diff --git a/src/main/scala/li/cil/oc/common/tileentity/Case.scala b/src/main/scala/li/cil/oc/common/tileentity/Case.scala index b4a447d75..ade998ca3 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Case.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Case.scala @@ -54,15 +54,15 @@ class Case(var tier: Int) extends traits.PowerAcceptor with traits.Computer with // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { + override def readFromNBTForServer(nbt: NBTTagCompound) { tier = nbt.getByte(Settings.namespace + "tier") max 0 min 3 color = Color.byTier(tier) - super.readFromNBT(nbt) + super.readFromNBTForServer(nbt) } - override def writeToNBT(nbt: NBTTagCompound) { + override def writeToNBTForServer(nbt: NBTTagCompound) { nbt.setByte(Settings.namespace + "tier", tier.toByte) - super.writeToNBT(nbt) + super.writeToNBTForServer(nbt) } // ----------------------------------------------------------------------- // diff --git a/src/main/scala/li/cil/oc/common/tileentity/Charger.scala b/src/main/scala/li/cil/oc/common/tileentity/Charger.scala index 2297fa7a2..33e72e8a0 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Charger.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Charger.scala @@ -130,15 +130,15 @@ class Charger extends traits.Environment with traits.PowerAcceptor with traits.R // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) chargeSpeed = nbt.getDouble("chargeSpeed") max 0 min 1 hasPower = nbt.getBoolean("hasPower") invertSignal = nbt.getBoolean("invertSignal") } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) nbt.setDouble("chargeSpeed", chargeSpeed) nbt.setBoolean("hasPower", hasPower) nbt.setBoolean("invertSignal", invertSignal) diff --git a/src/main/scala/li/cil/oc/common/tileentity/Disassembler.scala b/src/main/scala/li/cil/oc/common/tileentity/Disassembler.scala index 7019a7131..881bfd285 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Disassembler.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Disassembler.scala @@ -123,8 +123,8 @@ class Disassembler extends traits.Environment with traits.PowerAcceptor with tra // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) queue.clear() queue ++= nbt.getTagList(Settings.namespace + "queue", NBT.TAG_COMPOUND). map((tag: NBTTagCompound) => ItemUtils.loadStack(tag)) @@ -133,8 +133,8 @@ class Disassembler extends traits.Environment with traits.PowerAcceptor with tra isActive = queue.nonEmpty } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) nbt.setNewTagList(Settings.namespace + "queue", queue) nbt.setDouble(Settings.namespace + "buffer", buffer) nbt.setDouble(Settings.namespace + "total", totalRequiredEnergy) diff --git a/src/main/scala/li/cil/oc/common/tileentity/Geolyzer.scala b/src/main/scala/li/cil/oc/common/tileentity/Geolyzer.scala index 31edfec4a..ff2c8aeba 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Geolyzer.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Geolyzer.scala @@ -10,13 +10,13 @@ class Geolyzer extends traits.Environment { override def canUpdate = false - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) geolyzer.load(nbt) } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) geolyzer.save(nbt) } } diff --git a/src/main/scala/li/cil/oc/common/tileentity/Hologram.scala b/src/main/scala/li/cil/oc/common/tileentity/Hologram.scala index 2ffcacbbf..3bd875839 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Hologram.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Hologram.scala @@ -351,9 +351,9 @@ class Hologram(var tier: Int) extends traits.Environment with SidedEnvironment w // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { + override def readFromNBTForServer(nbt: NBTTagCompound) { tier = nbt.getByte(Settings.namespace + "tier") max 0 min 1 - super.readFromNBT(nbt) + super.readFromNBTForServer(nbt) val tag = SaveHandler.loadNBT(nbt, node.address + "_data") tag.getIntArray("volume").copyToArray(volume) tag.getIntArray("colors").map(convertColor).copyToArray(colors) @@ -363,9 +363,9 @@ class Hologram(var tier: Int) extends traits.Environment with SidedEnvironment w translation.zCoord = nbt.getDouble(Settings.namespace + "offsetZ") } - override def writeToNBT(nbt: NBTTagCompound) = this.synchronized { + override def writeToNBTForServer(nbt: NBTTagCompound) = this.synchronized { nbt.setByte(Settings.namespace + "tier", tier.toByte) - super.writeToNBT(nbt) + super.writeToNBTForServer(nbt) if (!Waila.isSavingForTooltip) { SaveHandler.scheduleSave(world, x, z, nbt, node.address + "_data", tag => { tag.setIntArray("volume", volume) 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 7ac1d8993..8f92ab193 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Keyboard.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Keyboard.scala @@ -38,15 +38,15 @@ class Keyboard extends traits.Environment with traits.Rotatable with traits.Immi override def canUpdate = false - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) if (isServer) { keyboard.load(nbt.getCompoundTag(Settings.namespace + "keyboard")) } } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) if (isServer) { nbt.setNewCompoundTag(Settings.namespace + "keyboard", keyboard.save) } 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 0434f587f..da0460fab 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Microcontroller.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Microcontroller.scala @@ -156,16 +156,16 @@ class Microcontroller extends traits.PowerAcceptor with traits.Hub with traits.C // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { + override def readFromNBTForServer(nbt: NBTTagCompound) { // Load info before inventory and such, to avoid initializing components // to empty inventory. info.load(nbt.getCompoundTag(Settings.namespace + "info")) nbt.getBooleanArray(Settings.namespace + "outputs") - super.readFromNBT(nbt) + super.readFromNBTForServer(nbt) } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) nbt.setNewCompoundTag(Settings.namespace + "info", info.save) nbt.setBooleanArray(Settings.namespace + "outputs", outputSides) } diff --git a/src/main/scala/li/cil/oc/common/tileentity/MotionSensor.scala b/src/main/scala/li/cil/oc/common/tileentity/MotionSensor.scala index bbd0d27bc..6178a45e4 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/MotionSensor.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/MotionSensor.scala @@ -108,13 +108,13 @@ class MotionSensor extends traits.Environment { // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) sensitivity = nbt.getDouble(Settings.namespace + "sensitivity") } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) nbt.setDouble(Settings.namespace + "sensitivity", sensitivity) } } diff --git a/src/main/scala/li/cil/oc/common/tileentity/PowerDistributor.scala b/src/main/scala/li/cil/oc/common/tileentity/PowerDistributor.scala index 6914336d1..bb12d2c19 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/PowerDistributor.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/PowerDistributor.scala @@ -30,16 +30,16 @@ class PowerDistributor extends traits.Environment with traits.PowerBalancer with // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) nbt.getTagList(Settings.namespace + "connector", NBT.TAG_COMPOUND).toArray[NBTTagCompound]. zipWithIndex.foreach { case (tag, index) => nodes(index).load(tag) } } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) // Side check for Waila (and other mods that may call this client side). if (isServer) { nbt.setNewTagList(Settings.namespace + "connector", nodes.map(connector => { diff --git a/src/main/scala/li/cil/oc/common/tileentity/Raid.scala b/src/main/scala/li/cil/oc/common/tileentity/Raid.scala index da162ccab..296617ecb 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Raid.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Raid.scala @@ -112,8 +112,8 @@ class Raid extends traits.Environment with traits.Inventory with traits.Rotatabl // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) if (nbt.hasKey(Settings.namespace + "fs")) { val tag = nbt.getCompoundTag(Settings.namespace + "fs") tryCreateRaid(tag.getCompoundTag("node").getString("address")) @@ -122,8 +122,8 @@ class Raid extends traits.Environment with traits.Inventory with traits.Rotatabl label.load(nbt) } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) filesystem.foreach(fs => nbt.setNewCompoundTag(Settings.namespace + "fs", fs.save)) label.save(nbt) } diff --git a/src/main/scala/li/cil/oc/common/tileentity/Redstone.scala b/src/main/scala/li/cil/oc/common/tileentity/Redstone.scala index c79d3c0c6..1f0dfed90 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Redstone.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Redstone.scala @@ -29,13 +29,13 @@ class Redstone extends Environment with BundledRedstoneAware { // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) instance.load(nbt.getCompoundTag(Settings.namespace + "redstone")) } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) nbt.setNewCompoundTag(Settings.namespace + "redstone", instance.save) } 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 11a935c07..e9b920f95 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Robot.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Robot.scala @@ -423,7 +423,7 @@ class Robot extends traits.Computer with traits.PowerInformation with IFluidHand // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { + override def readFromNBTForServer(nbt: NBTTagCompound) { updateInventorySize() machine.onHostChanged() @@ -450,7 +450,7 @@ class Robot extends traits.Computer with traits.PowerInformation with IFluidHand } // Side check for Waila (and other mods that may call this client side). - override def writeToNBT(nbt: NBTTagCompound) = if (isServer) this.synchronized { + override def writeToNBTForServer(nbt: NBTTagCompound) = if (isServer) this.synchronized { info.save(nbt) // Note: computer is saved when proxy is saved (in proxy's super writeToNBT) diff --git a/src/main/scala/li/cil/oc/common/tileentity/RobotProxy.scala b/src/main/scala/li/cil/oc/common/tileentity/RobotProxy.scala index 29a82fe34..269184479 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/RobotProxy.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/RobotProxy.scala @@ -132,15 +132,15 @@ class RobotProxy(val robot: Robot) extends traits.Computer with traits.PowerInfo } } - override def readFromNBT(nbt: NBTTagCompound) { + override def readFromNBTForServer(nbt: NBTTagCompound) { robot.info.load(nbt) - super.readFromNBT(nbt) - robot.readFromNBT(nbt) + super.readFromNBTForServer(nbt) + robot.readFromNBTForServer(nbt) } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) - robot.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) + robot.writeToNBTForServer(nbt) } override def save(nbt: NBTTagCompound) = robot.save(nbt) diff --git a/src/main/scala/li/cil/oc/common/tileentity/Screen.scala b/src/main/scala/li/cil/oc/common/tileentity/Screen.scala index 55dbd3ca7..669638d93 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Screen.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Screen.scala @@ -279,17 +279,17 @@ class Screen(var tier: Int) extends traits.TextBuffer with SidedEnvironment with // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { + override def readFromNBTForServer(nbt: NBTTagCompound) { tier = nbt.getByte(Settings.namespace + "tier") max 0 min 2 color = Color.byTier(tier) - super.readFromNBT(nbt) + super.readFromNBTForServer(nbt) hadRedstoneInput = nbt.getBoolean(Settings.namespace + "hadRedstoneInput") invertTouchMode = nbt.getBoolean(Settings.namespace + "invertTouchMode") } - override def writeToNBT(nbt: NBTTagCompound) { + override def writeToNBTForServer(nbt: NBTTagCompound) { nbt.setByte(Settings.namespace + "tier", tier.toByte) - super.writeToNBT(nbt) + super.writeToNBTForServer(nbt) nbt.setBoolean(Settings.namespace + "hadRedstoneInput", hadRedstoneInput) nbt.setBoolean(Settings.namespace + "invertTouchMode", invertTouchMode) } 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 45473c38e..a2e76b55c 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/ServerRack.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/ServerRack.scala @@ -315,8 +315,8 @@ class ServerRack extends traits.PowerAcceptor with traits.Hub with traits.PowerB } } - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) for (slot <- 0 until getSizeInventory) { if (getStackInSlot(slot) != null) { val server = new component.Server(this, slot) @@ -363,7 +363,7 @@ class ServerRack extends traits.PowerAcceptor with traits.Hub with traits.PowerB } // Side check for Waila (and other mods that may call this client side). - override def writeToNBT(nbt: NBTTagCompound) = if (isServer) { + override def writeToNBTForServer(nbt: NBTTagCompound) = if (isServer) { if (!Waila.isSavingForTooltip) { nbt.setNewTagList(Settings.namespace + "servers", servers map { case Some(server) => @@ -375,7 +375,7 @@ class ServerRack extends traits.PowerAcceptor with traits.Hub with traits.PowerB case _ => new NBTTagCompound() }) } - super.writeToNBT(nbt) + super.writeToNBTForServer(nbt) nbt.setByteArray(Settings.namespace + "sides", sides.map { case Some(side) => side.ordinal.toByte case _ => -1: Byte 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 833ae99bf..b03887a0b 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Switch.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Switch.scala @@ -107,8 +107,8 @@ class Switch extends traits.Hub with traits.NotAnalyzable with traits.ComponentI // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) for (slot <- 0 until items.length) items(slot) collect { case stack => updateLimits(slot, stack) } diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/BundledRedstoneAware.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/BundledRedstoneAware.scala index 3178f5769..128ef9a70 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/BundledRedstoneAware.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/BundledRedstoneAware.scala @@ -97,8 +97,8 @@ trait BundledRedstoneAware extends RedstoneAware with IBundledEmitter with IBund } } - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) nbt.getTagList(Settings.namespace + "rs.bundledInput", NBT.TAG_INT_ARRAY).toArray[NBTTagIntArray]. map(_.func_150302_c()).zipWithIndex.foreach { @@ -124,8 +124,8 @@ trait BundledRedstoneAware extends RedstoneAware with IBundledEmitter with IBund } } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) nbt.setNewTagList(Settings.namespace + "rs.bundledInput", _bundledInput.view) nbt.setNewTagList(Settings.namespace + "rs.bundledOutput", _bundledOutput.view) diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/Colored.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/Colored.scala index 471185af1..35282dcd0 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/Colored.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/Colored.scala @@ -27,15 +27,15 @@ trait Colored extends TileEntity with internal.Colored { } } - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) if (nbt.hasKey(Settings.namespace + "renderColor")) { _color = nbt.getInteger(Settings.namespace + "renderColor") } } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) nbt.setInteger(Settings.namespace + "renderColor", _color) } diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/Computer.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/Computer.scala index 8dcc9154c..56df3653a 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/Computer.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/Computer.scala @@ -120,8 +120,8 @@ trait Computer extends Environment with ComponentInventory with Rotatable with B // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) // God, this is so ugly... will need to rework the robot architecture. // This is required for loading auxiliary data (kernel state), because the // coordinates in the actual robot won't be set properly, otherwise. @@ -142,8 +142,8 @@ trait Computer extends Environment with ComponentInventory with Rotatable with B _isAbstractBusAvailable = hasAbstractBusCard } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) if (machine != null) { if (!Waila.isSavingForTooltip) nbt.setNewCompoundTag(Settings.namespace + "computer", machine.save) diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/Environment.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/Environment.scala index bec2408f6..697c92673 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/Environment.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/Environment.scala @@ -55,15 +55,15 @@ trait Environment extends TileEntity with network.Environment with driver.Enviro // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) if (node != null && node.host == this) { node.load(nbt.getCompoundTag(Settings.namespace + "node")) } } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) if (node != null && node.host == this) { nbt.setNewCompoundTag(Settings.namespace + "node", node.save) } diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/Hub.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/Hub.scala index 9ff79f183..29b9477a7 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/Hub.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/Hub.scala @@ -97,8 +97,8 @@ trait Hub extends traits.Environment with SidedEnvironment { } } - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) nbt.getTagList(Settings.namespace + "plugs", NBT.TAG_COMPOUND).toArray[NBTTagCompound]. zipWithIndex.foreach { case (tag, index) => plugs(index).node.load(tag) @@ -114,8 +114,8 @@ trait Hub extends traits.Environment with SidedEnvironment { } } - override def writeToNBT(nbt: NBTTagCompound) = queue.synchronized { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) = queue.synchronized { + super.writeToNBTForServer(nbt) // Side check for Waila (and other mods that may call this client side). if (isServer) { nbt.setNewTagList(Settings.namespace + "plugs", plugs.map(plug => { diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/Inventory.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/Inventory.scala index 81495f114..8e9f9f6fc 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/Inventory.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/Inventory.scala @@ -13,13 +13,13 @@ trait Inventory extends TileEntity with inventory.Inventory { // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) load(nbt) } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) save(nbt) } diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/PowerInformation.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/PowerInformation.scala index 017688bf9..671032e37 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/PowerInformation.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/PowerInformation.scala @@ -10,11 +10,11 @@ trait PowerInformation extends TileEntity { def globalBuffer: Double - def globalBuffer_=(value: Double) + def globalBuffer_=(value: Double): Unit def globalBufferSize: Double - def globalBufferSize_=(value: Double) + def globalBufferSize_=(value: Double): Unit protected def updatePowerInformation() { val ratio = if (globalBufferSize > 0) globalBuffer / globalBufferSize else 0 diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/RedstoneAware.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/RedstoneAware.scala index e17cfaf0d..f9e3c4d68 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/RedstoneAware.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/RedstoneAware.scala @@ -86,8 +86,8 @@ trait RedstoneAware extends RotationAware with IConnectable with IRedstoneEmitte // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) = { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) = { + super.readFromNBTForServer(nbt) val input = nbt.getIntArray(Settings.namespace + "rs.input") input.copyToArray(_input, 0, input.length min _input.length) @@ -95,8 +95,8 @@ trait RedstoneAware extends RotationAware with IConnectable with IRedstoneEmitte output.copyToArray(_output, 0, output.length min _output.length) } - override def writeToNBT(nbt: NBTTagCompound) = { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) = { + super.writeToNBTForServer(nbt) nbt.setIntArray(Settings.namespace + "rs.input", _input) nbt.setIntArray(Settings.namespace + "rs.output", _output) diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/Rotatable.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/Rotatable.scala index aeaa62e19..9119b85cc 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/Rotatable.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/Rotatable.scala @@ -167,8 +167,8 @@ trait Rotatable extends RotationAware with internal.Rotatable { // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) = { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) = { + super.readFromNBTForServer(nbt) if (nbt.hasKey(Settings.namespace + "pitch")) { pitch = ForgeDirection.getOrientation(nbt.getInteger(Settings.namespace + "pitch")) } @@ -179,8 +179,8 @@ trait Rotatable extends RotationAware with internal.Rotatable { updateTranslation() } - override def writeToNBT(nbt: NBTTagCompound) = { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) = { + super.writeToNBTForServer(nbt) nbt.setInteger(Settings.namespace + "pitch", pitch.ordinal) nbt.setInteger(Settings.namespace + "yaw", yaw.ordinal) } 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 b58ac044d..a877af081 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 @@ -29,13 +29,13 @@ trait TextBuffer extends Environment { // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) = { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) = { + super.readFromNBTForServer(nbt) buffer.load(nbt) } - override def writeToNBT(nbt: NBTTagCompound) = { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) = { + super.writeToNBTForServer(nbt) buffer.save(nbt) } diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/TileEntity.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/TileEntity.scala index 8eda809b4..e01b6d788 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/TileEntity.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/TileEntity.scala @@ -63,6 +63,10 @@ trait TileEntity extends net.minecraft.tileentity.TileEntity { // ----------------------------------------------------------------------- // + def readFromNBTForServer(nbt: NBTTagCompound): Unit = super.readFromNBT(nbt) + + def writeToNBTForServer(nbt: NBTTagCompound): Unit = super.writeToNBT(nbt) + @SideOnly(Side.CLIENT) def readFromNBTForClient(nbt: NBTTagCompound) {} @@ -70,6 +74,18 @@ trait TileEntity extends net.minecraft.tileentity.TileEntity { // ----------------------------------------------------------------------- // + override def readFromNBT(nbt: NBTTagCompound): Unit = { + if (isServer) { + readFromNBTForServer(nbt) + } + } + + override def writeToNBT(nbt: NBTTagCompound): Unit = { + if (isServer) { + writeToNBTForServer(nbt) + } + } + override def getDescriptionPacket = { val nbt = new NBTTagCompound() try writeToNBTForClient(nbt) catch { diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/power/AppliedEnergistics2.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/power/AppliedEnergistics2.scala index e1b40c687..85861c483 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/power/AppliedEnergistics2.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/power/AppliedEnergistics2.scala @@ -66,8 +66,8 @@ trait AppliedEnergistics2 extends Common { // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) if (useAppliedEnergistics2Power) loadNode(nbt) } @@ -76,8 +76,8 @@ trait AppliedEnergistics2 extends Common { getGridNode(ForgeDirection.UNKNOWN).loadFromNBT(Settings.namespace + "ae2power", nbt) } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) if (useAppliedEnergistics2Power) saveNode(nbt) } diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/power/Factorization.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/power/Factorization.scala index c9e10e306..b8b3c265c 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/power/Factorization.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/power/Factorization.scala @@ -59,8 +59,8 @@ trait Factorization extends Common { // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) if (useFactorizationPower) loadCharge(nbt) } @@ -69,8 +69,8 @@ trait Factorization extends Common { getCharge.readFromNBT(nbt, "fzpower") } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) if (useFactorizationPower) saveCharge(nbt) } diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/power/IndustrialCraft2Classic.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/power/IndustrialCraft2Classic.scala index d0d6bb0b6..2c6646ac9 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/power/IndustrialCraft2Classic.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/power/IndustrialCraft2Classic.scala @@ -61,13 +61,13 @@ trait IndustrialCraft2Classic extends Common with IndustrialCraft2Common { // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) conversionBuffer = nbt.getDouble(Settings.namespace + "ic2cpower") } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) nbt.setDouble(Settings.namespace + "ic2cpower", conversionBuffer) } diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/power/IndustrialCraft2Experimental.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/power/IndustrialCraft2Experimental.scala index 3352d3c2f..60248df56 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/power/IndustrialCraft2Experimental.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/power/IndustrialCraft2Experimental.scala @@ -59,13 +59,13 @@ trait IndustrialCraft2Experimental extends Common with IndustrialCraft2Common { // ----------------------------------------------------------------------- // - override def readFromNBT(nbt: NBTTagCompound) { - super.readFromNBT(nbt) + override def readFromNBTForServer(nbt: NBTTagCompound) { + super.readFromNBTForServer(nbt) conversionBuffer = nbt.getDouble(Settings.namespace + "ic2power") } - override def writeToNBT(nbt: NBTTagCompound) { - super.writeToNBT(nbt) + override def writeToNBTForServer(nbt: NBTTagCompound) { + super.writeToNBTForServer(nbt) nbt.setDouble(Settings.namespace + "ic2power", conversionBuffer) }