Should fix incorrect caching of screen render state if it was rendered before the first init packet. Fixes #694.

This commit is contained in:
Florian Nücke 2014-11-27 12:58:08 +01:00
parent 1158e0b5b2
commit 7b7423c9f6
2 changed files with 5 additions and 5 deletions

View File

@ -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.
}
}

View File

@ -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() {