package li.cil.oc.common.container

import cpw.mods.fml.relauncher.{Side, SideOnly}
import li.cil.oc.common.tileentity
import li.cil.oc.util.SideTracker
import net.minecraft.entity.player.InventoryPlayer

class ServerRack(playerInventory: InventoryPlayer, rack: tileentity.ServerRack) extends Player(playerInventory, rack) {
  addSlotToContainer(106, 8, "server")
  addSlotToContainer(106, 26, "server")
  addSlotToContainer(106, 44, "server")
  addSlotToContainer(106, 62, "server")
  addPlayerInventorySlots(8, 84)

  var lastSentSwitchMode = !rack.internalSwitch

  @SideOnly(Side.CLIENT)
  override def updateProgressBar(id: Int, value: Int) {
    if (id == 0) {
      rack.internalSwitch = value == 1
    }
  }

  override def detectAndSendChanges() {
    super.detectAndSendChanges()
    if (SideTracker.isServer) {
      if (lastSentSwitchMode != rack.internalSwitch) {
        lastSentSwitchMode = rack.internalSwitch
        sendProgressBarUpdate(0, if (lastSentSwitchMode) 1 else 0)
      }
    }
  }
}
