From 7b7423c9f665501ab8e66ab287a9dd0adef0df7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Thu, 27 Nov 2014 12:58:08 +0100 Subject: [PATCH] Should fix incorrect caching of screen render state if it was rendered before the first init packet. Fixes #694. --- src/main/scala/li/cil/oc/client/PacketHandler.scala | 4 +++- src/main/scala/li/cil/oc/common/component/TextBuffer.scala | 6 ++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/scala/li/cil/oc/client/PacketHandler.scala b/src/main/scala/li/cil/oc/client/PacketHandler.scala index 7f2d995a6..c3bceeaa2 100644 --- a/src/main/scala/li/cil/oc/client/PacketHandler.scala +++ b/src/main/scala/li/cil/oc/client/PacketHandler.scala @@ -373,7 +373,9 @@ object PacketHandler extends CommonPacketHandler { def onTextBufferInit(p: PacketParser) { ComponentTracker.get(p.player.worldObj, p.readUTF()) match { - case Some(buffer: li.cil.oc.common.component.TextBuffer) => buffer.data.load(p.readNBT()) + case Some(buffer: li.cil.oc.common.component.TextBuffer) => + buffer.data.load(p.readNBT()) + buffer.proxy.markDirty() case _ => // Invalid packet. } } diff --git a/src/main/scala/li/cil/oc/common/component/TextBuffer.scala b/src/main/scala/li/cil/oc/common/component/TextBuffer.scala index 69a889a1d..9a31b1660 100644 --- a/src/main/scala/li/cil/oc/common/component/TextBuffer.scala +++ b/src/main/scala/li/cil/oc/common/component/TextBuffer.scala @@ -467,13 +467,10 @@ object TextBuffer { var dirty = false - var lastChange = 0L - var nodeAddress = "" def markDirty() { dirty = true - lastChange = owner.host.world.getTotalWorldTime } def render() = false @@ -517,8 +514,9 @@ object TextBuffer { class ClientProxy(val owner: TextBuffer) extends Proxy { override def render() = { + val wasDirty = dirty TextBufferRenderCache.render(owner) - lastChange == owner.host.world.getTotalWorldTime + wasDirty } override def onScreenColorChange() {