diff --git a/assets/opencomputers/lang/de_DE.lang b/assets/opencomputers/lang/de_DE.lang index 16b0312ee..552db6b37 100644 --- a/assets/opencomputers/lang/de_DE.lang +++ b/assets/opencomputers/lang/de_DE.lang @@ -62,6 +62,7 @@ oc:tooltip.RedstoneCard=Erlaubt das Lesen und Ausgeben von Redstonesignalen um d oc:tooltip.RedstoneCard.RedLogic=RedLogic wird §aunterstützt§7. oc:tooltip.RedstoneCard.RedNet=RedNet wird §aunterstützt§7. oc:tooltip.Robot=Im Gegensatz zu normalen Computern können sich §mTurtles§r§7 Roboter in der Welt bewegen und ähnlich wie Spieler mit der Welt interagieren. Sie können jedoch §onicht§r§7 mit externen Komponenten interagieren! +oc:tooltip.Robot_StoredEnergy=§fGespeicherte Energie§7: §a%s§7. oc:tooltip.Router=Erlaubt es mehrere Netzwerke miteinander zu verbinden. Leitet ausschließlich Netzwerknachrichten weiter, Komponenten "hinter" dem Router sind nicht sichtbar. Nützlich um Netzwerke zu trennen, jedoch nach wie vor Kommunikation zwischen den Netzwerken zu erlauben, z.b. mittels Netzwerkkarten. oc:tooltip.Screen=Zeigt Text an, gesteuert von Grafikkarten in Computern.[nl] Höchstauflösung: §f%sx%s§7.[nl] Maximale Farbtiefe: §f%s§7. oc:tooltip.TooLong=Shift gedrückt halten für mehr Infos. diff --git a/assets/opencomputers/lang/en_US.lang b/assets/opencomputers/lang/en_US.lang index cc5810565..1a4a4604b 100644 --- a/assets/opencomputers/lang/en_US.lang +++ b/assets/opencomputers/lang/en_US.lang @@ -66,6 +66,8 @@ oc:tooltip.RedstoneCard=Allows reading and emitting redstone signals around the oc:tooltip.RedstoneCard.RedLogic=RedLogic is §asupported§7. oc:tooltip.RedstoneCard.RedNet=RedNet is §asupported§7. oc:tooltip.Robot=Unlike computers, §mturtles§r§7 robots can move around and interact with the world much like a player can. They can §onot§r§7 interact with external components, however! +# The underscore makes sure this isn't hidden with the rest of the tooltip. +oc:tooltip.Robot_StoredEnergy=§fStored energy§7: §a%s§7. oc:tooltip.Router=Allows connecting different networks to each other. Only network messages will be passed along, components will not be visible through this. Use this to separate networks while still allowing communication using Network Cards, for example. oc:tooltip.Screen=Display text, controlled by a Graphics Card in a Computer.[nl] Maximum resolution: §f%sx%s§7.[nl] Maximum color depth: §f%s§7. oc:tooltip.TooLong=Hold shift for a detailed tooltip. diff --git a/li/cil/oc/client/PacketHandler.scala b/li/cil/oc/client/PacketHandler.scala index 776fd0490..df351af69 100644 --- a/li/cil/oc/client/PacketHandler.scala +++ b/li/cil/oc/client/PacketHandler.scala @@ -85,7 +85,7 @@ class PacketHandler extends CommonPacketHandler { val stack = t.getStackInSlot(slot) if (stack != null && stack.itemID == id && stack.getItemDamage == damage) { if (!stack.hasTagCompound) { - stack.setTagCompound(new NBTTagCompound()) + stack.setTagCompound(new NBTTagCompound("tag")) } val nbt = stack.getTagCompound nbt.setCompoundTag(Settings.namespace + "data", { diff --git a/li/cil/oc/common/block/Adapter.scala b/li/cil/oc/common/block/Adapter.scala index 4f333c199..234eb4a52 100644 --- a/li/cil/oc/common/block/Adapter.scala +++ b/li/cil/oc/common/block/Adapter.scala @@ -6,6 +6,7 @@ import li.cil.oc.common.tileentity import li.cil.oc.util.Tooltip import net.minecraft.client.renderer.texture.IconRegister import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack import net.minecraft.util.Icon import net.minecraft.world.World import net.minecraftforge.common.ForgeDirection @@ -17,7 +18,7 @@ class Adapter(val parent: SimpleDelegator) extends SimpleDelegate { // ----------------------------------------------------------------------- // - override def addInformation(player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { + override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { tooltip.addAll(Tooltip.get(unlocalizedName)) } diff --git a/li/cil/oc/common/block/Cable.scala b/li/cil/oc/common/block/Cable.scala index 983730873..f93280318 100644 --- a/li/cil/oc/common/block/Cable.scala +++ b/li/cil/oc/common/block/Cable.scala @@ -6,6 +6,7 @@ import li.cil.oc.api.network.{SidedEnvironment, Environment} import li.cil.oc.common.tileentity import li.cil.oc.util.Tooltip import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack import net.minecraft.util.AxisAlignedBB import net.minecraft.world.{IBlockAccess, World} import net.minecraftforge.common.ForgeDirection @@ -15,7 +16,7 @@ class Cable(val parent: SpecialDelegator) extends SpecialDelegate { // ----------------------------------------------------------------------- // - override def addInformation(player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { + override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { tooltip.addAll(Tooltip.get(unlocalizedName)) } diff --git a/li/cil/oc/common/block/Capacitor.scala b/li/cil/oc/common/block/Capacitor.scala index c8831b5ec..490829b82 100644 --- a/li/cil/oc/common/block/Capacitor.scala +++ b/li/cil/oc/common/block/Capacitor.scala @@ -6,6 +6,7 @@ import li.cil.oc.util.Tooltip import li.cil.oc.{api, Settings} import net.minecraft.client.renderer.texture.IconRegister import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack import net.minecraft.util.Icon import net.minecraft.world.{World, IBlockAccess} import net.minecraftforge.common.ForgeDirection @@ -17,7 +18,7 @@ class Capacitor(val parent: SimpleDelegator) extends SimpleDelegate { // ----------------------------------------------------------------------- // - override def addInformation(player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { + override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { tooltip.addAll(Tooltip.get(unlocalizedName)) } diff --git a/li/cil/oc/common/block/Case.scala b/li/cil/oc/common/block/Case.scala index 586e40710..ccd16349b 100644 --- a/li/cil/oc/common/block/Case.scala +++ b/li/cil/oc/common/block/Case.scala @@ -6,6 +6,7 @@ import li.cil.oc.util.Tooltip import li.cil.oc.{OpenComputers, Settings} import net.minecraft.client.renderer.texture.IconRegister import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack import net.minecraft.util.Icon import net.minecraft.world.IBlockAccess import net.minecraft.world.World @@ -15,7 +16,7 @@ abstract class Case(val parent: SimpleDelegator) extends Computer with SimpleDel def tier: Int - override def addInformation(player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { + override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { val slots = tier match { case 0 => "2/1/1" case 1 => "2/2/2" diff --git a/li/cil/oc/common/block/Charger.scala b/li/cil/oc/common/block/Charger.scala index 185f71031..73bcf8327 100644 --- a/li/cil/oc/common/block/Charger.scala +++ b/li/cil/oc/common/block/Charger.scala @@ -6,6 +6,7 @@ import li.cil.oc.common.tileentity import li.cil.oc.util.Tooltip import net.minecraft.client.renderer.texture.IconRegister import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack import net.minecraft.util.Icon import net.minecraft.world.{IBlockAccess, World} import net.minecraftforge.common.ForgeDirection @@ -15,7 +16,7 @@ class Charger(val parent: SimpleDelegator) extends SimpleDelegate { private val icons = Array.fill[Icon](6)(null) - override def addInformation(player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { + override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { tooltip.addAll(Tooltip.get(unlocalizedName)) } diff --git a/li/cil/oc/common/block/Delegate.scala b/li/cil/oc/common/block/Delegate.scala index 1c43d96c5..5a8ce0019 100644 --- a/li/cil/oc/common/block/Delegate.scala +++ b/li/cil/oc/common/block/Delegate.scala @@ -31,7 +31,7 @@ trait Delegate { // Block // ----------------------------------------------------------------------- // - def addInformation(player: EntityPlayer, tooltip: java.util.List[String], advanced: Boolean) {} + def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: java.util.List[String], advanced: Boolean) {} def breakBlock(world: World, x: Int, y: Int, z: Int, blockId: Int) {} diff --git a/li/cil/oc/common/block/Delegator.scala b/li/cil/oc/common/block/Delegator.scala index eee7457b6..7cf7d82e3 100644 --- a/li/cil/oc/common/block/Delegator.scala +++ b/li/cil/oc/common/block/Delegator.scala @@ -102,9 +102,9 @@ class Delegator[Child <: Delegate](id: Int) extends Block(id, Material.iron) { // Block // ----------------------------------------------------------------------- // - def addInformation(metadata: Int, player: EntityPlayer, tooltip: java.util.List[String], advanced: Boolean) { + def addInformation(metadata: Int, stack: ItemStack, player: EntityPlayer, tooltip: java.util.List[String], advanced: Boolean) { subBlock(metadata) match { - case Some(subBlock) => subBlock.addInformation(player, tooltip, advanced) + case Some(subBlock) => subBlock.addInformation(stack, player, tooltip, advanced) case _ => } } @@ -133,7 +133,7 @@ class Delegator[Child <: Delegate](id: Int) extends Block(id, Material.iron) { case _ => super.damageDropped(metadata) } - override def dropBlockAsItemWithChance(world: World, x: Int, y: Int, z: Int, metadata: Int, chance: Float, fortune: Int) = + override def dropBlockAsItemWithChance(world: World, x: Int, y: Int, z: Int, metadata: Int, chance: Float, fortune: Int) = subBlock(metadata) match { case Some(subBlock) if subBlock.dropBlockAsItemWithChance(world, x, y, z, chance, fortune) => // Delegate took care of it. case _ => super.dropBlockAsItemWithChance(world, x, y, z, metadata, chance, fortune) diff --git a/li/cil/oc/common/block/DiskDrive.scala b/li/cil/oc/common/block/DiskDrive.scala index ab9da28dc..3f8ff7963 100644 --- a/li/cil/oc/common/block/DiskDrive.scala +++ b/li/cil/oc/common/block/DiskDrive.scala @@ -7,6 +7,7 @@ import li.cil.oc.util.Tooltip import li.cil.oc.{api, OpenComputers, Settings} import net.minecraft.client.renderer.texture.IconRegister import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack import net.minecraft.util.Icon import net.minecraft.world.World import net.minecraftforge.common.ForgeDirection @@ -18,7 +19,7 @@ class DiskDrive(val parent: SimpleDelegator) extends SimpleDelegate { // ----------------------------------------------------------------------- // - override def addInformation(player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { + override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { tooltip.addAll(Tooltip.get(unlocalizedName)) if (Loader.isModLoaded("ComputerCraft")) { tooltip.addAll(Tooltip.get(unlocalizedName + ".CC")) diff --git a/li/cil/oc/common/block/Item.scala b/li/cil/oc/common/block/Item.scala index 636a3ac15..f9d9f87e6 100644 --- a/li/cil/oc/common/block/Item.scala +++ b/li/cil/oc/common/block/Item.scala @@ -16,7 +16,7 @@ class Item(id: Int) extends ItemBlock(id) { override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[_], advanced: Boolean) { super.addInformation(stack, player, tooltip, advanced) Block.blocksList(getBlockID) match { - case delegator: Delegator[_] => delegator.addInformation(getMetadata(stack.getItemDamage), player, tooltip.asInstanceOf[util.List[String]], advanced) + case delegator: Delegator[_] => delegator.addInformation(getMetadata(stack.getItemDamage), stack, player, tooltip.asInstanceOf[util.List[String]], advanced) case _ => } } diff --git a/li/cil/oc/common/block/Keyboard.scala b/li/cil/oc/common/block/Keyboard.scala index b6380e196..16829ed73 100644 --- a/li/cil/oc/common/block/Keyboard.scala +++ b/li/cil/oc/common/block/Keyboard.scala @@ -7,6 +7,7 @@ import li.cil.oc.common.tileentity import li.cil.oc.util.Tooltip import net.minecraft.client.renderer.texture.IconRegister import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack import net.minecraft.util.{AxisAlignedBB, Icon} import net.minecraft.world.{IBlockAccess, World} import net.minecraftforge.common.ForgeDirection @@ -17,7 +18,7 @@ class Keyboard(val parent: SpecialDelegator) extends SpecialDelegate { var icon: Icon = null - override def addInformation(player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { + override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { tooltip.addAll(Tooltip.get(unlocalizedName)) } diff --git a/li/cil/oc/common/block/PowerConverter.scala b/li/cil/oc/common/block/PowerConverter.scala index eba164499..bcd87ef8f 100644 --- a/li/cil/oc/common/block/PowerConverter.scala +++ b/li/cil/oc/common/block/PowerConverter.scala @@ -1,15 +1,16 @@ package li.cil.oc.common.block +import cpw.mods.fml.common.Loader import java.util import li.cil.oc.Settings import li.cil.oc.common.tileentity import li.cil.oc.util.Tooltip import net.minecraft.client.renderer.texture.IconRegister import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack import net.minecraft.util.Icon import net.minecraft.world.World import net.minecraftforge.common.ForgeDirection -import cpw.mods.fml.common.Loader class PowerConverter(val parent: SimpleDelegator) extends SimpleDelegate { val unlocalizedName = "PowerConverter" @@ -18,7 +19,7 @@ class PowerConverter(val parent: SimpleDelegator) extends SimpleDelegate { // ----------------------------------------------------------------------- // - override def addInformation(player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { + override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { tooltip.addAll(Tooltip.get(unlocalizedName)) if (Loader.isModLoaded("IC2")) { val ratio = Settings.get.ratioIndustrialCraft2 diff --git a/li/cil/oc/common/block/PowerDistributor.scala b/li/cil/oc/common/block/PowerDistributor.scala index b69d289ab..fb78f34f2 100644 --- a/li/cil/oc/common/block/PowerDistributor.scala +++ b/li/cil/oc/common/block/PowerDistributor.scala @@ -6,6 +6,7 @@ import li.cil.oc.common.tileentity import li.cil.oc.util.Tooltip import net.minecraft.client.renderer.texture.IconRegister import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack import net.minecraft.util.Icon import net.minecraft.world.{IBlockAccess, World} import net.minecraftforge.common.ForgeDirection @@ -17,7 +18,7 @@ class PowerDistributor(val parent: SimpleDelegator) extends SimpleDelegate { // ----------------------------------------------------------------------- // - override def addInformation(player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { + override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { tooltip.addAll(Tooltip.get(unlocalizedName)) } diff --git a/li/cil/oc/common/block/RobotProxy.scala b/li/cil/oc/common/block/RobotProxy.scala index 40cc2f654..99cf642e3 100644 --- a/li/cil/oc/common/block/RobotProxy.scala +++ b/li/cil/oc/common/block/RobotProxy.scala @@ -22,7 +22,10 @@ class RobotProxy(val parent: SpecialDelegator) extends Computer with SpecialDele // ----------------------------------------------------------------------- // - override def addInformation(player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { + override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { + if (stack.hasTagCompound && stack.getTagCompound.hasKey(Settings.namespace + "storedEnergy")) { + tooltip.addAll(Tooltip.get(unlocalizedName + "_StoredEnergy", stack.getTagCompound.getInteger(Settings.namespace + "storedEnergy"))) + } tooltip.addAll(Tooltip.get(unlocalizedName)) } @@ -95,19 +98,19 @@ class RobotProxy(val parent: SpecialDelegator) extends Computer with SpecialDele case Some((proxy, owner)) => proxy.robot.owner = owner if (stack.hasTagCompound) { - proxy.robot.battery.changeBuffer(stack.getTagCompound.getDouble(Settings.namespace + "storedEnergy")) + proxy.robot.battery.changeBuffer(stack.getTagCompound.getInteger(Settings.namespace + "storedEnergy")) } case _ => } } override def onBlockRemovedBy(world: World, x: Int, y: Int, z: Int, player: EntityPlayer) = { - world.getBlockTileEntity(x, y, z) match { + if (!world.isRemote) world.getBlockTileEntity(x, y, z) match { case proxy: tileentity.RobotProxy if !player.capabilities.isCreativeMode || proxy.globalBuffer > 0 => val stack = createItemStack() - if (proxy.globalBuffer > 0) { - stack.setTagCompound(new NBTTagCompound()) - stack.getTagCompound.setDouble(Settings.namespace + "storedEnergy", proxy.globalBuffer) + if (proxy.globalBuffer > 1) { + stack.setTagCompound(new NBTTagCompound("tag")) + stack.getTagCompound.setInteger(Settings.namespace + "storedEnergy", proxy.globalBuffer.toInt) } parent.dropBlockAsItem(world, x, y, z, stack) case _ => diff --git a/li/cil/oc/common/block/Router.scala b/li/cil/oc/common/block/Router.scala index 465e791b0..61ac2b33c 100644 --- a/li/cil/oc/common/block/Router.scala +++ b/li/cil/oc/common/block/Router.scala @@ -7,6 +7,7 @@ import li.cil.oc.common.tileentity import li.cil.oc.util.Tooltip import net.minecraft.client.renderer.texture.IconRegister import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack import net.minecraft.util.Icon import net.minecraft.world.World import net.minecraftforge.common.ForgeDirection @@ -18,7 +19,7 @@ class Router(val parent: SimpleDelegator) extends SimpleDelegate { // ----------------------------------------------------------------------- // - override def addInformation(player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { + override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { tooltip.addAll(Tooltip.get(unlocalizedName)) } diff --git a/li/cil/oc/common/block/Screen.scala b/li/cil/oc/common/block/Screen.scala index cf3b6a3ee..3f0b6a705 100644 --- a/li/cil/oc/common/block/Screen.scala +++ b/li/cil/oc/common/block/Screen.scala @@ -7,6 +7,7 @@ import li.cil.oc.util.{PackedColor, Tooltip} import li.cil.oc.{Settings, OpenComputers} import net.minecraft.client.renderer.texture.IconRegister import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack import net.minecraft.util.Icon import net.minecraft.world.IBlockAccess import net.minecraft.world.World @@ -17,7 +18,7 @@ abstract class Screen(val parent: SimpleDelegator) extends SimpleDelegate { def tier: Int - override def addInformation(player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { + override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { val (w, h) = Settings.screenResolutionsByTier(tier) val depth = PackedColor.Depth.bits(Settings.screenDepthsByTier(tier)) tooltip.addAll(Tooltip.get("Screen", w, h, depth)) diff --git a/li/cil/oc/server/driver/item/Item.scala b/li/cil/oc/server/driver/item/Item.scala index 8c8d70f0b..2f6a96f57 100644 --- a/li/cil/oc/server/driver/item/Item.scala +++ b/li/cil/oc/server/driver/item/Item.scala @@ -8,7 +8,7 @@ import net.minecraft.nbt.NBTTagCompound trait Item extends api.driver.Item { def nbt(stack: ItemStack) = { if (!stack.hasTagCompound) { - stack.setTagCompound(new NBTTagCompound()) + stack.setTagCompound(new NBTTagCompound("tag")) } val nbt = stack.getTagCompound if (!nbt.hasKey(Settings.namespace + "data")) {