fixed a fix; fixed power updates sending every time in robot gui (forgot saving last sent state...)

This commit is contained in:
Florian Nücke 2013-11-29 14:29:51 +01:00
parent 3ac0d4a895
commit 0c778af9f1
3 changed files with 6 additions and 6 deletions

View File

@ -81,6 +81,7 @@ class Robot(playerInventory: InventoryPlayer, val robot: tileentity.Robot) exten
protected override def drawGuiContainerForegroundLayer(mouseX: Int, mouseY: Int) {
drawBufferLayer()
GL11.glPushAttrib(0xFFFFFFFF) // Me lazy... prevents NEI render glitch.
if (isPointInRegion(powerX, powerY, powerWidth, powerHeight, mouseX, mouseY)) {
val tooltip = new java.util.ArrayList[String]
val format = StatCollector.translateToLocal(Settings.namespace + "gui.Robot.Power") + ": %d%% (%d/%d)"
@ -91,13 +92,12 @@ class Robot(playerInventory: InventoryPlayer, val robot: tileentity.Robot) exten
drawHoveringText(tooltip, mouseX - guiLeft, mouseY - guiTop, fontRenderer)
}
if (powerButton.func_82252_a) {
GL11.glPushAttrib(0xFFFFFFFF) // Me lazy... prevents NEI render glitch.
val tooltip = new java.util.ArrayList[String]
val which = if (robot.isRunning) "gui.Robot.TurnOff" else "gui.Robot.TurnOn"
tooltip.add(StatCollector.translateToLocal(Settings.namespace + which))
drawHoveringText(tooltip, mouseX - guiLeft, mouseY - guiTop, fontRenderer)
GL11.glPopAttrib()
}
GL11.glPopAttrib()
}
override def drawGuiContainerBackgroundLayer(dt: Float, mouseX: Int, mouseY: Int) {

View File

@ -14,7 +14,6 @@ import net.minecraft.world.World
import net.minecraftforge.common.ForgeDirection
import scala.collection.convert.WrapAsScala._
/** Utility class for packet creation. */
class PacketBuilder(packetType: PacketType.Value, private val stream: ByteArrayOutputStream = new ByteArrayOutputStream) extends DataOutputStream(stream) {
writeByte(packetType.id)
@ -39,7 +38,7 @@ class PacketBuilder(packetType: PacketType.Value, private val stream: ByteArrayO
def sendToAllPlayers() = PacketDispatcher.sendPacketToAllPlayers(packet)
def sendToNearbyPlayers(t: TileEntity, range: Double = 64): Unit = sendToNearbyPlayers(t.world, t.x + 0.5, t.y + 0.5, t.z + 0.5, range)
def sendToNearbyPlayers(t: TileEntity, range: Double = 1024): Unit = sendToNearbyPlayers(t.world, t.x + 0.5, t.y + 0.5, t.z + 0.5, range)
def sendToNearbyPlayers(world: World, x: Double, y: Double, z: Double, range: Double) {
val dimension = world.provider.dimensionId
@ -48,7 +47,7 @@ class PacketBuilder(packetType: PacketType.Value, private val stream: ByteArrayO
for (player <- manager.playerEntityList.map(_.asInstanceOf[EntityPlayerMP]) if player.dimension == dimension) {
val playerSpecificRange = range min ((manager.getViewDistance min PacketBuilder.tryGetPlayerRenderDistance(player)) * 16)
if (player.getDistanceSq(x, y, z) < playerSpecificRange * playerSpecificRange) {
player.playerNetServerHandler.sendPacketToPlayer(packet)
sendToPlayer(player.asInstanceOf[Player])
}
}
}

View File

@ -21,11 +21,12 @@ class Robot(playerInventory: InventoryPlayer, robot: tileentity.Robot) extends P
addPlayerInventorySlots(8, 160)
var lastSentBuffer = -1
var lastSentBuffer = Double.NegativeInfinity
override def detectAndSendChanges() {
super.detectAndSendChanges()
if ((robot.globalBuffer - lastSentBuffer).abs > 1) {
lastSentBuffer = robot.globalBuffer
ServerPacketSender.sendPowerState(robot)
}
}