From b48e2fdc8fa5e47e7c47421517b35f9108c24fcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sat, 11 Jul 2015 13:55:31 +0200 Subject: [PATCH] Fixed initial redstone state of non-updating blocks such as prints. --- .../oc/common/tileentity/traits/RedstoneAware.scala | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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 b0299dcd9..4e8a8bd5d 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 @@ -4,6 +4,7 @@ import cpw.mods.fml.common.Optional import cpw.mods.fml.relauncher.Side import cpw.mods.fml.relauncher.SideOnly import li.cil.oc.Settings +import li.cil.oc.common.EventHandler import li.cil.oc.integration.Mods import li.cil.oc.integration.util.BundledRedstone import li.cil.oc.server.{PacketSender => ServerPacketSender} @@ -75,13 +76,18 @@ trait RedstoneAware extends RotationAware with IConnectable with IRedstoneEmitte if (isServer) { if (shouldUpdateInput) { shouldUpdateInput = false - for (side <- ForgeDirection.VALID_DIRECTIONS) { - updateRedstoneInput(side) - } + ForgeDirection.VALID_DIRECTIONS.foreach(updateRedstoneInput) } } } + override def validate(): Unit = { + super.validate() + if (!canUpdate) { + EventHandler.schedule(() => ForgeDirection.VALID_DIRECTIONS.foreach(updateRedstoneInput)) + } + } + def updateRedstoneInput(side: ForgeDirection) { input(side, BundledRedstone.computeInput(position, side)) }