From 41364ad8f4e5d45d581b0ed5d2797e4516a388e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sat, 3 Jan 2015 03:53:25 +0100 Subject: [PATCH] Little bit of API cleanup. --- src/main/java/li/cil/oc/api/machine/MachineHost.java | 10 ---------- src/main/scala/li/cil/oc/common/entity/Drone.scala | 2 -- src/main/scala/li/cil/oc/common/item/Tablet.scala | 2 -- .../scala/li/cil/oc/common/tileentity/RobotProxy.scala | 2 -- .../li/cil/oc/common/tileentity/traits/Computer.scala | 8 -------- src/main/scala/li/cil/oc/server/component/Server.scala | 2 -- src/main/scala/li/cil/oc/server/machine/Machine.scala | 8 ++++---- src/main/scala/li/cil/oc/util/ScalaEnum.scala | 4 +++- 8 files changed, 7 insertions(+), 31 deletions(-) diff --git a/src/main/java/li/cil/oc/api/machine/MachineHost.java b/src/main/java/li/cil/oc/api/machine/MachineHost.java index c234d8e04..4f7532712 100644 --- a/src/main/java/li/cil/oc/api/machine/MachineHost.java +++ b/src/main/java/li/cil/oc/api/machine/MachineHost.java @@ -72,16 +72,6 @@ public interface MachineHost extends EnvironmentHost { */ int componentSlot(String address); - /** - * This is called by the machine when its state changed (which can be - * multiple times per actual game tick), to notify the owner that it should - * save its state on the next world save. - *

- * This method is called from executor threads, so it must be thread-safe. - */ - // TODO Merge with {@link EnvironmentHost#markChanged} in 1.5 - void markForSaving(); - /** * This is called on the owner when the machine's {@link Environment#onConnect(Node)} * method gets called. This can be useful for reacting to network events 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 29f3d645e..75f0f5ec8 100644 --- a/src/main/scala/li/cil/oc/common/entity/Drone.scala +++ b/src/main/scala/li/cil/oc/common/entity/Drone.scala @@ -162,8 +162,6 @@ class Drone(val world: World) extends Entity(world) with MachineHost with intern override def componentSlot(address: String) = -1 // TODO - override def markForSaving() {} - override def onMachineConnect(node: Node) {} override def onMachineDisconnect(node: Node) {} 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 5dc2617c4..4d70e5ebc 100644 --- a/src/main/scala/li/cil/oc/common/item/Tablet.scala +++ b/src/main/scala/li/cil/oc/common/item/Tablet.scala @@ -250,8 +250,6 @@ class TabletWrapper(var stack: ItemStack, var player: EntityPlayer) extends Comp override def componentSlot(address: String) = components.indexWhere(_.exists(env => env.node != null && env.node.address == address)) - override def markForSaving() {} - override def onMachineConnect(node: Node) = onConnect(node) override def onMachineDisconnect(node: Node) = onDisconnect(node) 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 d1c71944a..a0d0123b7 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/RobotProxy.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/RobotProxy.scala @@ -261,8 +261,6 @@ class RobotProxy(val robot: Robot) extends traits.Computer with traits.PowerInfo // ----------------------------------------------------------------------- // - override def markForSaving() = robot.markForSaving() - override def hasRedstoneCard = robot.hasRedstoneCard // ----------------------------------------------------------------------- // 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 47b47c8f3..abc69c69e 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 @@ -34,8 +34,6 @@ trait Computer extends Environment with ComponentInventory with Rotatable with B private var _isRunning = false - private var markChunkDirty = false - private val _users = mutable.Set.empty[String] protected def runSound = Option("computer_running") @@ -77,7 +75,6 @@ trait Computer extends Environment with ComponentInventory with Rotatable with B null } - override def markForSaving() = markChunkDirty = true override def onMachineConnect(node: Node) = this.onConnect(node) @@ -99,11 +96,6 @@ trait Computer extends Environment with ComponentInventory with Rotatable with B // GPU which would otherwise loose track of its screen). machine.update() - if (markChunkDirty) { - markChunkDirty = false - world.markChunkDirty(getPos, this) - } - if (_isRunning != machine.isRunning) { _isRunning = machine.isRunning markDirty() 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 1d190cb0e..ca1f4beef 100644 --- a/src/main/scala/li/cil/oc/server/component/Server.scala +++ b/src/main/scala/li/cil/oc/server/component/Server.scala @@ -94,8 +94,6 @@ class Server(val rack: tileentity.ServerRack, val slot: Int) extends Environment override def world = rack.world - override def markForSaving() = rack.markForSaving() - override def markChanged() = rack.markChanged() // ----------------------------------------------------------------------- // diff --git a/src/main/scala/li/cil/oc/server/machine/Machine.scala b/src/main/scala/li/cil/oc/server/machine/Machine.scala index 5861bfc59..a7fa810b6 100644 --- a/src/main/scala/li/cil/oc/server/machine/Machine.scala +++ b/src/main/scala/li/cil/oc/server/machine/Machine.scala @@ -168,7 +168,7 @@ class Machine(val host: MachineHost) extends prefab.ManagedEnvironment with mach } case Machine.State.Paused if remainingPause > 0 => remainingPause = 0 - host.markForSaving() + host.markChanged() true case Machine.State.Stopping => switchTo(Machine.State.Restarting) @@ -196,7 +196,7 @@ class Machine(val host: MachineHost) extends prefab.ManagedEnvironment with mach state.push(Machine.State.Paused) } remainingPause = ticksToPause - host.markForSaving() + host.markChanged() return true })) } @@ -762,7 +762,7 @@ class Machine(val host: MachineHost) extends prefab.ManagedEnvironment with mach remainIdle = 0 // Mark state change in owner, to send it to clients. - host.markForSaving() + host.markChanged() }) // ----------------------------------------------------------------------- // @@ -779,7 +779,7 @@ class Machine(val host: MachineHost) extends prefab.ManagedEnvironment with mach } // Mark state change in owner, to send it to clients. - host.markForSaving() + host.markChanged() result } diff --git a/src/main/scala/li/cil/oc/util/ScalaEnum.scala b/src/main/scala/li/cil/oc/util/ScalaEnum.scala index 95b4cb55d..900b52901 100644 --- a/src/main/scala/li/cil/oc/util/ScalaEnum.scala +++ b/src/main/scala/li/cil/oc/util/ScalaEnum.scala @@ -1,5 +1,7 @@ package li.cil.oc.util +import scala.annotation.tailrec + /** * https://gist.github.com/viktorklang/1057513 */ @@ -14,7 +16,7 @@ trait ScalaEnum { private val _values = new AtomicReference(Vector[EnumVal]()) //Stores our enum values //Adds an EnumVal to our storage, uses CCAS to make sure it's thread safe, returns the ordinal - private final def addEnumVal(newVal: EnumVal): Int = { + @tailrec private final def addEnumVal(newVal: EnumVal): Int = { import _values.get import _values.{compareAndSet => CAS} val oldVec = get