From db9b373d12d27e28df28b5ff8c9e063069f1f896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sun, 13 Sep 2015 13:27:48 +0200 Subject: [PATCH 1/2] Fixed server racks and MCUs actually having a node on the front face that just was never used internally. --- .../scala/li/cil/oc/common/tileentity/Microcontroller.scala | 4 +++- src/main/scala/li/cil/oc/common/tileentity/ServerRack.scala | 4 +++- .../li/cil/oc/common/tileentity/traits/PowerBalancer.scala | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) 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 3c0efc161..a4237eefc 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Microcontroller.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Microcontroller.scala @@ -52,6 +52,8 @@ class Microcontroller extends traits.PowerAcceptor with traits.Hub with traits.C @SideOnly(Side.CLIENT) override def canConnect(side: ForgeDirection) = side != facing + override def sidedNode(side: ForgeDirection): Node = if (side != facing) super.sidedNode(side) else null + @SideOnly(Side.CLIENT) override protected def hasConnector(side: ForgeDirection) = side != facing @@ -173,7 +175,7 @@ class Microcontroller extends traits.PowerAcceptor with traits.Hub with traits.C override def onMessage(message: Message): Unit = { if (message.source.network == snooperNode.network) { - for (side <- ForgeDirection.VALID_DIRECTIONS if outputSides(side.ordinal)) { + for (side <- ForgeDirection.VALID_DIRECTIONS if outputSides(side.ordinal) && side != facing) { sidedNode(side).sendToReachable(message.name, message.data: _*) } } 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 2710af46e..53e02803a 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/ServerRack.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/ServerRack.scala @@ -74,6 +74,8 @@ class ServerRack extends traits.PowerAcceptor with traits.Hub with traits.PowerB override def canConnect(side: ForgeDirection) = side != facing + override def sidedNode(side: ForgeDirection): Node = if (side != facing) super.sidedNode(side) else null + @Method(modid = Mods.IDs.StargateTech2) override def getInterfaces(side: Int) = if (side != facing.ordinal) { super.getInterfaces(side) @@ -133,7 +135,7 @@ class ServerRack extends traits.PowerAcceptor with traits.Hub with traits.PowerB sides(number) match { case Some(serverSide) => val serverNode = server.machine.node - for (side <- ForgeDirection.VALID_DIRECTIONS) { + for (side <- ForgeDirection.VALID_DIRECTIONS if side != facing) { if (toLocal(side) == serverSide) sidedNode(side).connect(serverNode) else sidedNode(side).disconnect(serverNode) } diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/PowerBalancer.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/PowerBalancer.scala index cd006867d..28f4b114b 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/PowerBalancer.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/PowerBalancer.scala @@ -62,6 +62,6 @@ trait PowerBalancer extends PowerInformation with SidedEnvironment { private def isPrimary(connector: Connector) = { val nodes = connectors - connector != null && nodes(nodes.indexWhere(_.network == connector.network)) == connector + connector != null && nodes(nodes.indexWhere(node => node != null && node.network == connector.network)) == connector } } From 4e4e5d3ba3c207deeb39658ba0f5eaf90cf9a6ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sun, 13 Sep 2015 13:28:08 +0200 Subject: [PATCH 2/2] Creative tablets won't run out of energy anymore... --- src/main/scala/li/cil/oc/common/item/Tablet.scala | 6 ++++++ 1 file changed, 6 insertions(+) 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 5525b412a..2da080e78 100644 --- a/src/main/scala/li/cil/oc/common/item/Tablet.scala +++ b/src/main/scala/li/cil/oc/common/item/Tablet.scala @@ -25,6 +25,7 @@ import li.cil.oc.api.driver.item.Chargeable import li.cil.oc.api.driver.item.Container import li.cil.oc.api.internal import li.cil.oc.api.machine.MachineHost +import li.cil.oc.api.network.Connector import li.cil.oc.api.network.Message import li.cil.oc.api.network.Node import li.cil.oc.client.KeyBindings @@ -239,6 +240,8 @@ class TabletWrapper(var stack: ItemStack, var player: EntityPlayer) extends Comp private var lastRunning = false + def isCreative = data.tier == Tier.Four + def items = data.items override def facing = RotationHelper.fromYaw(player.rotationYaw) @@ -403,6 +406,9 @@ class TabletWrapper(var stack: ItemStack, var player: EntityPlayer) extends Comp } } if (!world.isRemote) { + if (isCreative && world.getTotalWorldTime % Settings.get.tickFrequency == 0) { + machine.node.asInstanceOf[Connector].changeBuffer(Double.PositiveInfinity) + } machine.update() updateComponents() data.isRunning = machine.isRunning