Re-using sneak keybind for extended tooltip to avoid conflict.

Added bluescreens (show error on crash on installed GPUs' screen).
This commit is contained in:
Florian Nücke 2014-04-09 15:05:28 +02:00
parent 0d446cd1a8
commit db5882b667
6 changed files with 34 additions and 10 deletions

View File

@ -124,7 +124,6 @@ oc:container.Rack=Serverschrank
oc:container.Server=Server
# Keybinds
key.extendedTooltip=Tooltip erweitern
key.materialCosts=Materialkosten anzeigen
key.clipboardPaste=Zwischenablage einfügen

View File

@ -124,7 +124,6 @@ oc:container.Rack=Server Rack
oc:container.Server=Server
# Keybinds
key.extendedTooltip=Expand Tooltip
key.materialCosts=Show Material Costs
key.clipboardPaste=Paste Clipboard

View File

@ -1,5 +1,6 @@
package li.cil.oc.client
import cpw.mods.fml.client.FMLClientHandler
import cpw.mods.fml.client.registry.KeyBindingRegistry.KeyHandler
import cpw.mods.fml.common.TickType
import java.util
@ -11,18 +12,16 @@ object KeyBindings {
def showMaterialCosts = Keyboard.isKeyDown(materialCosts.keyCode)
val extendedTooltip = new KeyBinding("key.extendedTooltip", Keyboard.KEY_LSHIFT)
val extendedTooltip = FMLClientHandler.instance.getClient.gameSettings.keyBindSneak
val materialCosts = new KeyBinding("key.materialCosts", Keyboard.KEY_LMENU)
val clipboardPaste = new KeyBinding("key.clipboardPaste", Keyboard.KEY_INSERT)
object Handler extends KeyHandler(Array(
extendedTooltip,
materialCosts,
clipboardPaste
), Array(
false,
false,
false
)) {

View File

@ -6,7 +6,6 @@ import li.cil.oc.util.Tooltip
import net.minecraft.client.renderer.texture.IconRegister
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.{EnumRarity, ItemStack}
import scala.Array
class Memory(val parent: Delegator, val tier: Int) extends Delegate {
val baseName = "Memory"

View File

@ -220,11 +220,34 @@ abstract class GraphicsCard extends ManagedComponent {
case Some(buffer) => buffer.synchronized {
val (w, h) = buffer.resolution
buffer.foreground = 0xFFFFFF
message.source.host match {
case machine: machine.Machine if machine.lastError != null =>
if (buffer.depth > PackedColor.Depth.OneBit) buffer.background = 0x0000FF
else buffer.background = 0x000000
if (buffer.buffer.fill(0, 0, w, h, ' ')) {
buffer.owner.onScreenFill(0, 0, w, h, ' ')
}
try {
val message = "Unrecoverable error:\n" + machine.lastError + "\n"
val wrapRegEx = s"(.{1,${math.max(1, w - 2)}})\\s".r
val lines = wrapRegEx.replaceAllIn(message, m => m.group(1) + "\n").lines.toArray
for ((line, idx) <- lines.zipWithIndex) {
val col = (w - line.length) / 2
val row = (h - lines.length) / 2 + idx
buffer.buffer.set(col, row, line)
buffer.owner.onScreenSet(col, row, line)
}
}
catch {
case t: Throwable => t.printStackTrace()
}
case _ =>
buffer.background = 0x000000
if (buffer.buffer.fill(0, 0, w, h, ' ')) {
buffer.owner.onScreenFill(0, 0, w, h, ' ')
}
}
}
case _ =>
}
}

View File

@ -129,5 +129,10 @@ object ItemCosts {
// We don't use this in OC because the NBT of items can change dynamically,
// for example by components being assigned an address, which will break the
// equals check.
private def fuzzyEquals(stack1: ItemStack, stack2: ItemStack) = stack1.isItemEqual(stack2) || (stack1.itemID == stack2.itemID && (stack1.getItemDamage == OreDictionary.WILDCARD_VALUE || stack2.getItemDamage == OreDictionary.WILDCARD_VALUE)) // && ItemStack.areItemStackTagsEqual(stack1, stack2)
private def fuzzyEquals(stack1: ItemStack, stack2: ItemStack) =
stack1.itemID == stack2.itemID &&
(stack1.getItemDamage == stack2.getItemDamage ||
stack1.getItemDamage == OreDictionary.WILDCARD_VALUE ||
stack2.getItemDamage == OreDictionary.WILDCARD_VALUE ||
stack1.getItem.isDamageable) // && ItemStack.areItemStackTagsEqual(stack1, stack2)
}