mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-25 22:14:09 -04:00
Merge branch 'master' of github.com:MightyPirates/OpenComputers into MC1.7
Conflicts: src/main/scala/li/cil/oc/client/gui/RobotAssembler.scala src/main/scala/li/cil/oc/client/gui/TextBuffer.scala
This commit is contained in:
commit
614ec30c4d
@ -126,6 +126,8 @@ oc:gui.Robot.TurnOn=Einschalten
|
||||
oc:gui.RobotAssembler.CollectRobot=Roboter entnehmen
|
||||
oc:gui.RobotAssembler.Complexity=Komplexität: %s/%s
|
||||
oc:gui.RobotAssembler.InsertCase=Computergehäuse einlegen
|
||||
oc:gui.RobotAssembler.InsertCPU=CPU benötigt
|
||||
oc:gui.RobotAssembler.InsertRAM=RAM benötigt
|
||||
oc:gui.RobotAssembler.Progress=Fortschritt: %s%% (%s)
|
||||
oc:gui.RobotAssembler.Run=Zusammenbauen
|
||||
oc:gui.ServerRack.None=Keine
|
||||
@ -167,7 +169,7 @@ oc:tooltip.CuttingWire=Wird gebraucht, um Tonblöcke in Leiterplattenform zu bek
|
||||
oc:tooltip.Disassembler=Zerlegt Gegenstände in ihre Einzelteile. §lWarnung§7: zurückgewonnene Gegenstände haben eine %s%%-ige Chance beim Extrahieren kaputt zu gehen!
|
||||
oc:tooltip.Disk=Sehr einfaches Speichermedium, das verwendet werden kann, um Disketten und Festplatten bauen.
|
||||
oc:tooltip.DiskDrive.CC=ComputerCraft-Disketten werden §aunterstützt§7.
|
||||
oc:tooltip.DiskDrive=Erlaubt es, Disketten zu lesen und zu beschreiben.
|
||||
oc:tooltip.DiskDrive=Erlaubt es, Disketten zu lesen und zu beschreiben. Kann in Robotern installiert werden, um später Disketten einlegen zu können.
|
||||
oc:tooltip.Geolyzer=Erlaubt es die Härte der Blöcke in der Umgebung abzufragen. Hilfreich um Hologramme der Gegend zu erzeugen, oder um Erze zu entdecken.
|
||||
oc:tooltip.GraphicsCard=Erlaubt es, den angezeigten Inhalt von Bildschirmen zu ändern.[nl] Höchstauflösung: §f%sx%s§7.[nl] Maximale Farbtiefe: §f%s§7.[nl] Operationen/Tick: §f%s§7.
|
||||
oc:tooltip.InternetCard=Diese Karte erlaubt es, HTTP-Anfragen zu senden und echte TCP Sockets zu verwenden.
|
||||
|
@ -126,6 +126,8 @@ oc:gui.Robot.TurnOn=Turn on
|
||||
oc:gui.RobotAssembler.CollectRobot=Collect robot
|
||||
oc:gui.RobotAssembler.Complexity=Complexity: %s/%s
|
||||
oc:gui.RobotAssembler.InsertCase=Insert a Computer Case
|
||||
oc:gui.RobotAssembler.InsertCPU=Insert a CPU
|
||||
oc:gui.RobotAssembler.InsertRAM=Insert some RAM
|
||||
oc:gui.RobotAssembler.Progress=Progress: %s%% (%s)
|
||||
oc:gui.RobotAssembler.Run=Assemble
|
||||
oc:gui.ServerRack.None=None
|
||||
@ -167,7 +169,7 @@ oc:tooltip.CuttingWire=Used to cut clay blocks into circuit board shape. Breaks
|
||||
oc:tooltip.Disassembler=Separates items into their original components. §lWarning§7: returned items have a %s%% chance of breaking in the process!
|
||||
oc:tooltip.Disk=Primitive medium that can be used to build persistent storage devices.
|
||||
oc:tooltip.DiskDrive.CC=ComputerCraft floppies are §asupported§7.
|
||||
oc:tooltip.DiskDrive=Allows reading and writing floppies.
|
||||
oc:tooltip.DiskDrive=Allows reading and writing floppies. Can be installed in robots to allow inserting floppies later on.
|
||||
oc:tooltip.Geolyzer=Allows scanning the surrounding area's blocks' hardness. This information can be useful for generating holograms of the area or for detecting ores.
|
||||
oc:tooltip.GraphicsCard=Used to change what's displayed on screens.[nl] Maximum resolution: §f%sx%s§7.[nl] Maximum color depth: §f%s§7.[nl] Operations/tick: §f%s§7.
|
||||
oc:tooltip.InternetCard=This card allows making HTTP requests and using real TCP sockets.
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 199 B |
Binary file not shown.
After Width: | Height: | Size: 601 B |
@ -42,7 +42,9 @@ opencomputers {
|
||||
soundVolume: 1.0
|
||||
|
||||
# This is the scaling of the individual chars rendered on screens. This
|
||||
# is set to slightly overscale per default, to avoid
|
||||
# is set to slightly overscale per default, to avoid gaps between fully
|
||||
# filled chars to appear (i.e. the block symbol that is used for cursor
|
||||
# blinking for example) on less accurate hardware.
|
||||
fontCharScale: 1.01
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ object GuiHandler extends CommonGuiHandler {
|
||||
case assembler: tileentity.RobotAssembler if id == GuiType.RobotAssembler.id =>
|
||||
new gui.RobotAssembler(player.inventory, assembler)
|
||||
case screen: tileentity.Screen if id == GuiType.Screen.id =>
|
||||
new gui.Screen(screen.origin.buffer, screen.tier > 0, () => screen.origin.buffer.isRenderingEnabled)
|
||||
new gui.Screen(screen.origin.buffer, screen.tier > 0, () => screen.origin.hasKeyboard, () => screen.origin.buffer.isRenderingEnabled)
|
||||
case _ => Items.multi.subItem(player.getCurrentEquippedItem) match {
|
||||
case Some(server: item.Server) if id == GuiType.Server.id =>
|
||||
new gui.Server(player.inventory, new ServerInventory {
|
||||
@ -49,7 +49,7 @@ object GuiHandler extends CommonGuiHandler {
|
||||
case Some(term) =>
|
||||
def inRange = player.isEntityAlive && !term.rack.isInvalid && term.rack.getDistanceFrom(player.posX, player.posY, player.posZ) < term.rack.range * term.rack.range
|
||||
if (inRange) {
|
||||
if (term.keys.contains(key)) return new gui.Screen(term.buffer, true, () => {
|
||||
if (term.keys.contains(key)) return new gui.Screen(term.buffer, true, () => true, () => {
|
||||
// Check if someone else bound a term to our server.
|
||||
if (stack.getTagCompound.getString(Settings.namespace + "key") != key) {
|
||||
Minecraft.getMinecraft.displayGuiScreen(null)
|
||||
|
@ -17,8 +17,10 @@ object Textures {
|
||||
val guiButtonSide = new ResourceLocation(Settings.resourceDomain, "textures/gui/button_side.png")
|
||||
val guiComputer = new ResourceLocation(Settings.resourceDomain, "textures/gui/computer.png")
|
||||
val guiDisassembler = new ResourceLocation(Settings.resourceDomain, "textures/gui/disassembler.png")
|
||||
val guiKeyboardMissing = new ResourceLocation(Settings.resourceDomain, "textures/gui/keyboard_missing.png")
|
||||
val guiRange = new ResourceLocation(Settings.resourceDomain, "textures/gui/range.png")
|
||||
val guiRobot = new ResourceLocation(Settings.resourceDomain, "textures/gui/robot.png")
|
||||
val guiRobotNoScreen = new ResourceLocation(Settings.resourceDomain, "textures/gui/robot_noscreen.png")
|
||||
val guiRobotAssembler = new ResourceLocation(Settings.resourceDomain, "textures/gui/robot_assembler.png")
|
||||
val guiRobotSelection = new ResourceLocation(Settings.resourceDomain, "textures/gui/robot_selection.png")
|
||||
val guiServer = new ResourceLocation(Settings.resourceDomain, "textures/gui/server.png")
|
||||
|
@ -9,6 +9,7 @@ import li.cil.oc.client.{PacketSender => ClientPacketSender, Textures}
|
||||
import li.cil.oc.common.container
|
||||
import li.cil.oc.common.container.StaticComponentSlot
|
||||
import li.cil.oc.common.tileentity
|
||||
import li.cil.oc.server.driver
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.GuiButton
|
||||
@ -21,34 +22,42 @@ import org.lwjgl.input.{Mouse, Keyboard}
|
||||
import org.lwjgl.opengl.GL11
|
||||
|
||||
class Robot(playerInventory: InventoryPlayer, val robot: tileentity.Robot) extends CustomGuiContainer(new container.Robot(playerInventory, robot)) with TextBuffer {
|
||||
override protected val buffer = robot.components.collect {
|
||||
case Some(buffer: api.component.TextBuffer) => buffer
|
||||
}.headOption.orNull
|
||||
|
||||
override protected val hasKeyboard = robot.info.components.map(api.Driver.driverFor).exists(_ == driver.item.Keyboard)
|
||||
|
||||
private val withScreenHeight = 242
|
||||
private val noScreenHeight = 108
|
||||
|
||||
private val deltaY = if (buffer != null) 0 else withScreenHeight - noScreenHeight
|
||||
|
||||
xSize = 256
|
||||
ySize = 242
|
||||
ySize = 242 - deltaY
|
||||
|
||||
protected var powerButton: ImageButton = _
|
||||
|
||||
protected var scrollButton: ImageButton = _
|
||||
|
||||
protected def buffer = {
|
||||
robot.components.collect {
|
||||
case Some(buffer: api.component.TextBuffer) => buffer
|
||||
}.headOption.orNull
|
||||
}
|
||||
|
||||
// Scroll offset for robot inventory.
|
||||
private var inventoryOffset = 0
|
||||
private var isDragging = false
|
||||
|
||||
private def canScroll = robot.inventorySize > 16
|
||||
|
||||
private def maxOffset = robot.inventorySize / 4 - 4
|
||||
|
||||
private val slotSize = 18
|
||||
|
||||
override protected val bufferX = 8
|
||||
override protected val bufferY = 8
|
||||
private val bufferWidth = 242.0
|
||||
private val bufferHeight = 128.0
|
||||
private val bufferMargin = BufferRenderer.innerMargin
|
||||
|
||||
private val inventoryX = 169
|
||||
private val inventoryY = 141
|
||||
private val inventoryY = 141 - deltaY
|
||||
|
||||
private val scrollX = inventoryX + slotSize * 4 + 2
|
||||
private val scrollY = inventoryY
|
||||
@ -56,7 +65,7 @@ class Robot(playerInventory: InventoryPlayer, val robot: tileentity.Robot) exten
|
||||
private val scrollHeight = 94
|
||||
|
||||
private val powerX = 26
|
||||
private val powerY = 142
|
||||
private val powerY = 142 - deltaY
|
||||
|
||||
private val powerWidth = 140
|
||||
private val powerHeight = 12
|
||||
@ -85,7 +94,7 @@ class Robot(playerInventory: InventoryPlayer, val robot: tileentity.Robot) exten
|
||||
|
||||
override def initGui() {
|
||||
super.initGui()
|
||||
powerButton = new ImageButton(0, guiLeft + 5, guiTop + 139, 18, 18, Textures.guiButtonPower, canToggle = true)
|
||||
powerButton = new ImageButton(0, guiLeft + 5, guiTop + 139 - deltaY, 18, 18, Textures.guiButtonPower, canToggle = true)
|
||||
scrollButton = new ImageButton(1, guiLeft + scrollX + 1, guiTop + scrollY + 1, 6, 13, Textures.guiButtonScroll)
|
||||
add(buttonList, powerButton)
|
||||
add(buttonList, scrollButton)
|
||||
@ -93,7 +102,7 @@ class Robot(playerInventory: InventoryPlayer, val robot: tileentity.Robot) exten
|
||||
|
||||
override def drawBuffer() {
|
||||
if (buffer != null) {
|
||||
GL11.glTranslatef(8, 8, 0)
|
||||
GL11.glTranslatef(bufferX, bufferY, 0)
|
||||
RenderState.disableLighting()
|
||||
RenderState.makeItBlend()
|
||||
val scaleX = 48f / buffer.getWidth
|
||||
@ -134,7 +143,8 @@ class Robot(playerInventory: InventoryPlayer, val robot: tileentity.Robot) exten
|
||||
|
||||
override def drawGuiContainerBackgroundLayer(dt: Float, mouseX: Int, mouseY: Int) {
|
||||
GL11.glColor3f(1, 1, 1) // Required under Linux.
|
||||
mc.renderEngine.bindTexture(Textures.guiRobot)
|
||||
if (buffer != null) mc.renderEngine.bindTexture(Textures.guiRobot)
|
||||
else mc.renderEngine.bindTexture(Textures.guiRobotNoScreen)
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize)
|
||||
drawPowerLevel()
|
||||
if (robot.inventorySize > 0) {
|
||||
|
@ -3,6 +3,7 @@ package li.cil.oc.client.gui
|
||||
import java.util
|
||||
import li.cil.oc.api
|
||||
import li.cil.oc.Settings
|
||||
import li.cil.oc.api.driver.{Memory, Processor}
|
||||
import li.cil.oc.client.{PacketSender => ClientPacketSender, Textures}
|
||||
import li.cil.oc.common.container
|
||||
import li.cil.oc.common.tileentity
|
||||
@ -28,14 +29,36 @@ class RobotAssembler(playerInventory: InventoryPlayer, val assembler: tileentity
|
||||
|
||||
def add[T](list: util.List[T], value: Any) = list.add(value.asInstanceOf[T])
|
||||
|
||||
private def hasCase = assembler.isItemValidForSlot(0, assembler.getStackInSlot(0))
|
||||
|
||||
private def hasCPU = assembler.items.exists {
|
||||
case Some(stack) => api.Driver.driverFor(stack) match {
|
||||
case processor: Processor => true
|
||||
case _ => false
|
||||
}
|
||||
case _ => false
|
||||
}
|
||||
|
||||
private def hasRAM = assembler.items.exists {
|
||||
case Some(stack) => api.Driver.driverFor(stack) match {
|
||||
case processor: Memory => true
|
||||
case _ => false
|
||||
}
|
||||
case _ => false
|
||||
}
|
||||
|
||||
private def isCapacityValid = assembler.complexity <= assembler.maxComplexity
|
||||
|
||||
private def canBuild = !assemblerContainer.isAssembling && hasCase && hasCPU && hasRAM && isCapacityValid
|
||||
|
||||
protected override def actionPerformed(button: GuiButton) {
|
||||
if (button.id == 0 && !assemblerContainer.isAssembling && assembler.complexity <= assembler.maxComplexity) {
|
||||
if (button.id == 0 && canBuild) {
|
||||
ClientPacketSender.sendRobotAssemblerStart(assembler)
|
||||
}
|
||||
}
|
||||
|
||||
override def drawScreen(mouseX: Int, mouseY: Int, dt: Float) {
|
||||
runButton.enabled = assembler.complexity <= assembler.maxComplexity && !assemblerContainer.isAssembling && assembler.isItemValidForSlot(0, assembler.getStackInSlot(0))
|
||||
runButton.enabled = canBuild
|
||||
runButton.toggled = !runButton.enabled
|
||||
super.drawScreen(mouseX, mouseY, dt)
|
||||
}
|
||||
@ -49,20 +72,27 @@ class RobotAssembler(playerInventory: InventoryPlayer, val assembler: tileentity
|
||||
override def drawGuiContainerForegroundLayer(mouseX: Int, mouseY: Int) = {
|
||||
GL11.glPushAttrib(0xFFFFFFFF) // Me lazy... prevents NEI render glitch.
|
||||
if (!assemblerContainer.isAssembling) {
|
||||
if (!inventorySlots.getSlot(0).getHasStack) {
|
||||
def drawMessage(message: String) {
|
||||
fontRendererObj.drawString(
|
||||
StatCollector.translateToLocal(Settings.namespace + "gui.RobotAssembler.InsertCase"),
|
||||
StatCollector.translateToLocal(Settings.namespace + message),
|
||||
30, 94, 0x404040)
|
||||
}
|
||||
if (!inventorySlots.getSlot(0).getHasStack) {
|
||||
drawMessage("gui.RobotAssembler.InsertCase")
|
||||
}
|
||||
else if (api.Items.get(inventorySlots.getSlot(0).getStack) == api.Items.get("robot")) {
|
||||
fontRendererObj.drawString(
|
||||
StatCollector.translateToLocal(Settings.namespace + "gui.RobotAssembler.CollectRobot"),
|
||||
30, 94, 0x404040)
|
||||
drawMessage("gui.RobotAssembler.CollectRobot")
|
||||
}
|
||||
else if (!hasCPU) {
|
||||
drawMessage("gui.RobotAssembler.InsertCPU")
|
||||
}
|
||||
else if (!hasRAM) {
|
||||
drawMessage("gui.RobotAssembler.InsertRAM")
|
||||
}
|
||||
else {
|
||||
fontRendererObj.drawString(
|
||||
StatCollector.translateToLocalFormatted(Settings.namespace + "gui.RobotAssembler.Complexity", Int.box(assembler.complexity), Int.box(assembler.maxComplexity)),
|
||||
30, 94, if (assembler.complexity <= assembler.maxComplexity) 0x404040 else 0x804040)
|
||||
30, 94, if (isCapacityValid) 0x404040 else 0x804040)
|
||||
}
|
||||
if (runButton.func_146115_a) {
|
||||
val tooltip = new java.util.ArrayList[String]
|
||||
|
@ -7,7 +7,13 @@ import li.cil.oc.util.RenderState
|
||||
import org.lwjgl.input.Mouse
|
||||
import org.lwjgl.opengl.GL11
|
||||
|
||||
class Screen(val buffer: api.component.TextBuffer, val hasMouse: Boolean, val hasPower: () => Boolean) extends TextBuffer {
|
||||
class Screen(val buffer: api.component.TextBuffer, val hasMouse: Boolean, val hasKeyboardCallback: () => Boolean, val hasPower: () => Boolean) extends TextBuffer {
|
||||
override protected def hasKeyboard = hasKeyboardCallback()
|
||||
|
||||
override protected def bufferX = 8 + x
|
||||
|
||||
override protected def bufferY = 8 + y
|
||||
|
||||
private val bufferMargin = BufferRenderer.margin + BufferRenderer.innerMargin
|
||||
|
||||
private var didDrag = false
|
||||
|
@ -1,6 +1,6 @@
|
||||
package li.cil.oc.client.gui
|
||||
|
||||
import li.cil.oc.client.KeyBindings
|
||||
import li.cil.oc.client.{Textures, KeyBindings}
|
||||
import li.cil.oc.client.renderer.MonospaceFontRenderer
|
||||
import li.cil.oc.client.renderer.gui.BufferRenderer
|
||||
import li.cil.oc.util.RenderState
|
||||
@ -11,16 +11,25 @@ import org.lwjgl.input.Keyboard
|
||||
import org.lwjgl.opengl.GL11
|
||||
import scala.collection.mutable
|
||||
import li.cil.oc.api
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
|
||||
trait TextBuffer extends GuiScreen {
|
||||
protected def buffer: api.component.TextBuffer
|
||||
|
||||
protected def hasKeyboard: Boolean
|
||||
|
||||
private val pressedKeys = mutable.Map.empty[Int, Char]
|
||||
|
||||
protected def bufferX: Int
|
||||
|
||||
protected def bufferY: Int
|
||||
|
||||
protected var currentWidth, currentHeight = -1
|
||||
|
||||
private var shouldRecompileDisplayLists = true
|
||||
|
||||
private var showKeyboardMissing = 0L
|
||||
|
||||
protected var scale = 0.0
|
||||
|
||||
def adjustToBufferChange() {
|
||||
@ -62,6 +71,21 @@ trait TextBuffer extends GuiScreen {
|
||||
RenderState.disableLighting()
|
||||
drawBuffer()
|
||||
GL11.glPopMatrix()
|
||||
|
||||
if (System.currentTimeMillis() - showKeyboardMissing < 1000) {
|
||||
Minecraft.getMinecraft.getTextureManager.bindTexture(Textures.guiKeyboardMissing)
|
||||
GL11.glDisable(GL11.GL_DEPTH_TEST)
|
||||
val t = Tessellator.instance
|
||||
t.startDrawingQuads()
|
||||
val x = bufferX + buffer.renderWidth - 16
|
||||
val y = bufferY + buffer.renderHeight - 16
|
||||
t.addVertexWithUV(x, y + 16, 0, 0, 1)
|
||||
t.addVertexWithUV(x + 16, y + 16, 0, 1, 1)
|
||||
t.addVertexWithUV(x + 16, y, 0, 1, 0)
|
||||
t.addVertexWithUV(x, y, 0, 0, 0)
|
||||
t.draw()
|
||||
GL11.glEnable(GL11.GL_DEPTH_TEST)
|
||||
}
|
||||
}
|
||||
|
||||
protected def drawBuffer()
|
||||
@ -73,20 +97,25 @@ trait TextBuffer extends GuiScreen {
|
||||
|
||||
val code = Keyboard.getEventKey
|
||||
if (buffer != null && code != Keyboard.KEY_ESCAPE && code != Keyboard.KEY_F11) {
|
||||
if (Keyboard.getEventKeyState) {
|
||||
val char = Keyboard.getEventCharacter
|
||||
if (!pressedKeys.contains(code) || !ignoreRepeat(char, code)) {
|
||||
buffer.keyDown(char, code, null)
|
||||
pressedKeys += code -> char
|
||||
if (hasKeyboard) {
|
||||
if (Keyboard.getEventKeyState) {
|
||||
val char = Keyboard.getEventCharacter
|
||||
if (!pressedKeys.contains(code) || !ignoreRepeat(char, code)) {
|
||||
buffer.keyDown(char, code, null)
|
||||
pressedKeys += code -> char
|
||||
}
|
||||
}
|
||||
else pressedKeys.remove(code) match {
|
||||
case Some(char) => buffer.keyUp(char, code, null)
|
||||
case _ => // Wasn't pressed while viewing the screen.
|
||||
}
|
||||
|
||||
if (Keyboard.isKeyDown(KeyBindings.clipboardPaste.getKeyCode) && Keyboard.getEventKeyState) {
|
||||
buffer.clipboard(GuiScreen.getClipboardString, null)
|
||||
}
|
||||
}
|
||||
else pressedKeys.remove(code) match {
|
||||
case Some(char) => buffer.keyUp(char, code, null)
|
||||
case _ => // Wasn't pressed while viewing the screen.
|
||||
}
|
||||
|
||||
if (Keyboard.isKeyDown(KeyBindings.clipboardPaste.getKeyCode) && Keyboard.getEventKeyState) {
|
||||
buffer.clipboard(GuiScreen.getClipboardString, null)
|
||||
else {
|
||||
showKeyboardMissing = System.currentTimeMillis()
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -94,7 +123,12 @@ trait TextBuffer extends GuiScreen {
|
||||
override protected def mouseClicked(x: Int, y: Int, button: Int) {
|
||||
super.mouseClicked(x, y, button)
|
||||
if (buffer != null && button == 2) {
|
||||
buffer.clipboard(GuiScreen.getClipboardString, null)
|
||||
if (hasKeyboard) {
|
||||
buffer.clipboard(GuiScreen.getClipboardString, null)
|
||||
}
|
||||
else {
|
||||
showKeyboardMissing = System.currentTimeMillis()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -10,13 +10,21 @@ import net.minecraft.entity.player.{EntityPlayer, InventoryPlayer}
|
||||
import net.minecraft.inventory.IInventory
|
||||
|
||||
class Robot(playerInventory: InventoryPlayer, robot: tileentity.Robot) extends Player(playerInventory, robot) {
|
||||
addSlotToContainer(170 + 0 * slotSize, 218, api.driver.Slot.Tool)
|
||||
addSlotToContainer(170 + 1 * slotSize, 218, robot.containerSlotType(1), robot.containerSlotTier(1))
|
||||
addSlotToContainer(170 + 2 * slotSize, 218, robot.containerSlotType(2), robot.containerSlotTier(2))
|
||||
addSlotToContainer(170 + 3 * slotSize, 218, robot.containerSlotType(3), robot.containerSlotTier(3))
|
||||
val hasScreen = robot.components.exists {
|
||||
case Some(buffer: api.component.TextBuffer) => true
|
||||
case _ => false
|
||||
}
|
||||
private val withScreenHeight = 242
|
||||
private val noScreenHeight = 108
|
||||
val deltaY = if (hasScreen) 0 else withScreenHeight - noScreenHeight
|
||||
|
||||
addSlotToContainer(170 + 0 * slotSize, 218 - deltaY, api.driver.Slot.Tool)
|
||||
addSlotToContainer(170 + 1 * slotSize, 218 - deltaY, robot.containerSlotType(1), robot.containerSlotTier(1))
|
||||
addSlotToContainer(170 + 2 * slotSize, 218 - deltaY, robot.containerSlotType(2), robot.containerSlotTier(2))
|
||||
addSlotToContainer(170 + 3 * slotSize, 218 - deltaY, robot.containerSlotType(3), robot.containerSlotTier(3))
|
||||
|
||||
for (i <- 0 to 3) {
|
||||
val y = 142 + i * slotSize
|
||||
val y = 142 + i * slotSize - deltaY
|
||||
for (j <- 0 to 3) {
|
||||
val x = 170 + j * slotSize
|
||||
addSlotToContainer(new InventorySlot(this, otherInventory, inventorySlots.size, x, y))
|
||||
@ -26,7 +34,7 @@ class Robot(playerInventory: InventoryPlayer, robot: tileentity.Robot) extends P
|
||||
addSlotToContainer(new InventorySlot(this, otherInventory, inventorySlots.size, -10000, -10000))
|
||||
}
|
||||
|
||||
addPlayerInventorySlots(6, 160)
|
||||
addPlayerInventorySlots(6, 160 - deltaY)
|
||||
|
||||
private var lastSentBuffer = -1
|
||||
|
||||
@ -80,4 +88,5 @@ class Robot(playerInventory: InventoryPlayer, robot: tileentity.Robot) extends P
|
||||
else null
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user