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 14bd58b8c..0a9351083 100644 --- a/src/main/scala/li/cil/oc/common/item/Tablet.scala +++ b/src/main/scala/li/cil/oc/common/item/Tablet.scala @@ -20,6 +20,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 @@ -237,6 +238,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) @@ -401,6 +404,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 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 ffe21918f..e12489109 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: EnumFacing) = side != facing + override def sidedNode(side: EnumFacing): Node = if (side != facing) super.sidedNode(side) else null + @SideOnly(Side.CLIENT) override protected def hasConnector(side: EnumFacing) = side != facing @@ -171,7 +173,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 <- EnumFacing.values if outputSides(side.ordinal)) { + for (side <- EnumFacing.values 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 3286af6db..7ac919e59 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/ServerRack.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/ServerRack.scala @@ -69,6 +69,8 @@ class ServerRack extends traits.PowerAcceptor with traits.Hub with traits.PowerB override def canConnect(side: EnumFacing) = side != facing + override def sidedNode(side: EnumFacing): Node = if (side != facing) super.sidedNode(side) else null + // ----------------------------------------------------------------------- // def isRunning(number: Int) = @@ -107,7 +109,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 <- EnumFacing.values) { + for (side <- EnumFacing.values 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 624701b87..070d5b215 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 } }