blob: 94a849cd5daba5fceb7e4bdc5462e18a22111ac8 [file] [log] [blame] [raw]
package li.cil.oc.client.gui
import li.cil.oc.common.container
import li.cil.oc.common.tileentity
import net.minecraft.entity.player.InventoryPlayer
import net.minecraft.util.StatCollector
import org.lwjgl.opengl.GL11
import li.cil.oc.client.Textures
import net.minecraft.client.renderer.Tessellator
class Disassembler(playerInventory: InventoryPlayer, val disassembler: tileentity.Disassembler) extends DynamicGuiContainer(new container.Disassembler(playerInventory, disassembler)) {
private def disassemblerContainer = inventorySlots.asInstanceOf[container.Disassembler]
private val progressX = 8
private val progressY = 65
private val progressWidth = 160
private val progressHeight = 12
override def drawGuiContainerForegroundLayer(mouseX: Int, mouseY: Int) = {
fontRendererObj.drawString(
StatCollector.translateToLocal(disassembler.getInventoryName),
8, 6, 0x404040)
}
override def drawGuiContainerBackgroundLayer(dt: Float, mouseX: Int, mouseY: Int) {
GL11.glColor3f(1, 1, 1) // Required under Linux.
super.drawGuiContainerBackgroundLayer(dt, mouseX, mouseY)
mc.renderEngine.bindTexture(Textures.guiDisassembler)
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize)
drawProgress()
}
private def drawProgress() {
val level = disassemblerContainer.disassemblyProgress / 100.0
val u0 = 0
val u1 = progressWidth / 256.0 * level
val v0 = 1 - progressHeight / 256.0
val v1 = 1
val x = guiLeft + progressX
val y = guiTop + progressY
val w = progressWidth * level
val t = Tessellator.instance
t.startDrawingQuads()
t.addVertexWithUV(x, y, zLevel, u0, v0)
t.addVertexWithUV(x, y + progressHeight, zLevel, u0, v1)
t.addVertexWithUV(x + w, y + progressHeight, zLevel, u1, v1)
t.addVertexWithUV(x + w, y, zLevel, u1, v0)
t.draw()
}
}