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) { def onTextBufferInit(p: PacketParser) {
ComponentTracker.get(p.player.worldObj, p.readUTF()) match { 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. case _ => // Invalid packet.
} }
} }

View File

@ -467,13 +467,10 @@ object TextBuffer {
var dirty = false var dirty = false
var lastChange = 0L
var nodeAddress = "" var nodeAddress = ""
def markDirty() { def markDirty() {
dirty = true dirty = true
lastChange = owner.host.world.getTotalWorldTime
} }
def render() = false def render() = false
@ -517,8 +514,9 @@ object TextBuffer {
class ClientProxy(val owner: TextBuffer) extends Proxy { class ClientProxy(val owner: TextBuffer) extends Proxy {
override def render() = { override def render() = {
val wasDirty = dirty
TextBufferRenderCache.render(owner) TextBufferRenderCache.render(owner)
lastChange == owner.host.world.getTotalWorldTime wasDirty
} }
override def onScreenColorChange() { override def onScreenColorChange() {