diff --git a/src/main/java/techreborn/client/StackToolTipEvent.java b/src/main/java/techreborn/client/StackToolTipEvent.java index 7fffa5652..51e9d8385 100644 --- a/src/main/java/techreborn/client/StackToolTipEvent.java +++ b/src/main/java/techreborn/client/StackToolTipEvent.java @@ -6,7 +6,12 @@ import net.minecraft.block.BlockContainer; import net.minecraft.client.Minecraft; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.event.entity.player.ItemTooltipEvent; +import org.lwjgl.input.Keyboard; import techreborn.api.IListInfoProvider; +import techreborn.api.power.IEnergyInterfaceItem; +import techreborn.cofhLib.util.helpers.MathHelper; +import techreborn.lib.ChatColor; +import techreborn.util.Color; public class StackToolTipEvent { @@ -14,7 +19,23 @@ public class StackToolTipEvent { public void handleItemTooltipEvent(ItemTooltipEvent event) { if(event.itemStack.getItem() instanceof IListInfoProvider){ ((IListInfoProvider) event.itemStack.getItem()).addInfo(event.toolTip, false); - } else{ + } else if (event.itemStack.getItem() instanceof IEnergyInterfaceItem){ + int percentage = percentage((int)((IEnergyInterfaceItem) event.itemStack.getItem()).getMaxPower(event.itemStack), (int)((IEnergyInterfaceItem) event.itemStack.getItem()).getEnergy(event.itemStack)); + ChatColor color; + if(percentage<= 10){ + color = ChatColor.RED; + } else if(percentage >= 75){ + color = ChatColor.GREEN; + } else { + color = ChatColor.YELLOW; + } + event.toolTip.add(color + "" + (int)((IEnergyInterfaceItem) event.itemStack.getItem()).getEnergy(event.itemStack) + ChatColor.LIGHT_PURPLE + " stored eu"); + event.toolTip.add(Color.GREEN + "" + (int)((IEnergyInterfaceItem) event.itemStack.getItem()).getMaxPower(event.itemStack) + ChatColor.LIGHT_PURPLE + " max eu"); + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)){ + event.toolTip.add(ChatColor.GREEN +"" + percentage + "%" + ChatColor.LIGHT_PURPLE +" charged"); + event.toolTip.add(Color.GREEN + "" + (int)((IEnergyInterfaceItem) event.itemStack.getItem()).getMaxTransfer(event.itemStack) + ChatColor.LIGHT_PURPLE + " eu/tick in/out"); + } + } else { Block block = Block.getBlockFromItem(event.itemStack.getItem()); if(block != null && block instanceof BlockContainer && block.getClass().getCanonicalName().startsWith("techreborn.")){ TileEntity tile = block.createTileEntity(Minecraft.getMinecraft().theWorld, event.itemStack.getItemDamage()); @@ -25,4 +46,10 @@ public class StackToolTipEvent { } } + public int percentage(int MaxValue, int CurrentValue) { + if (CurrentValue == 0) + return 0; + return (int) ((CurrentValue * 100.0f) / MaxValue); + } + } diff --git a/src/main/java/techreborn/items/armor/ItemLithiumBatpack.java b/src/main/java/techreborn/items/armor/ItemLithiumBatpack.java index d0c6775e7..a6ea2a1a5 100644 --- a/src/main/java/techreborn/items/armor/ItemLithiumBatpack.java +++ b/src/main/java/techreborn/items/armor/ItemLithiumBatpack.java @@ -41,23 +41,6 @@ public class ItemLithiumBatpack extends PoweredArmor { return "techreborn:" + "textures/models/lithiumbatpack.png"; } - @SuppressWarnings( - {"rawtypes", "unchecked"}) - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList) { - ItemStack itemStack = new ItemStack(this, 1); - if (getChargedItem(itemStack) == this && ElectricItem.manager != null) { - ItemStack charged = new ItemStack(this, 1); - ElectricItem.manager.charge(charged, 2147483647, 2147483647, true, - false); - itemList.add(charged); - } - if (getEmptyItem(itemStack) == this) { - itemList.add(new ItemStack(this, 1, getMaxDamage())); - } - } - - @Override public double getMaxPower(ItemStack stack) { return maxCharge; diff --git a/src/main/java/techreborn/items/tools/ItemCloakingDevice.java b/src/main/java/techreborn/items/tools/ItemCloakingDevice.java index 84c1d244d..75bd3526e 100644 --- a/src/main/java/techreborn/items/tools/ItemCloakingDevice.java +++ b/src/main/java/techreborn/items/tools/ItemCloakingDevice.java @@ -72,26 +72,6 @@ public class ItemCloakingDevice extends PoweredItem { return Teir; } - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList) { - ItemStack itemStack = new ItemStack(this, 1); - if (getChargedItem(itemStack) == this) { - ItemStack charged = new ItemStack(this, 1); - setEnergy(MaxCharge, charged); - itemList.add(charged); - } - if (getEmptyItem(itemStack) == this) { - itemList.add(new ItemStack(this, 1, getMaxDamage())); - } - } - - @Override - public double getDurabilityForDisplay(ItemStack stack) { - double charge = (getEnergy(stack) / getMaxCharge(stack)); - return 1 - charge; - - } - public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) { ItemStack itemstack1 = player.getCurrentArmor(3); diff --git a/src/main/java/techreborn/items/tools/ItemOmniTool.java b/src/main/java/techreborn/items/tools/ItemOmniTool.java index d5651b592..94b9ae00c 100644 --- a/src/main/java/techreborn/items/tools/ItemOmniTool.java +++ b/src/main/java/techreborn/items/tools/ItemOmniTool.java @@ -42,22 +42,6 @@ public class ItemOmniTool extends PoweredPickaxe{ this.itemIcon = iconRegister.registerIcon("techreborn:" + "tool/omnitool"); } - @SuppressWarnings( - {"rawtypes", "unchecked"}) - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList) { - ItemStack itemStack = new ItemStack(this, 1); - - if (getChargedItem(itemStack) == this) { - ItemStack charged = new ItemStack(this, 1); - setEnergy(maxCharge, charged); - itemList.add(charged); - } - if (getEmptyItem(itemStack) == this) { - itemList.add(new ItemStack(this, 1, getMaxDamage())); - } - } - @Override public boolean onBlockDestroyed(ItemStack stack, World world, Block block, int par4, int par5, int par6, EntityLivingBase entityLiving) { diff --git a/src/main/java/techreborn/items/tools/ItemRockCutter.java b/src/main/java/techreborn/items/tools/ItemRockCutter.java index 8756983a5..80b1189bb 100644 --- a/src/main/java/techreborn/items/tools/ItemRockCutter.java +++ b/src/main/java/techreborn/items/tools/ItemRockCutter.java @@ -51,22 +51,6 @@ public class ItemRockCutter extends PoweredPickaxe { } } - @SuppressWarnings( - {"rawtypes", "unchecked"}) - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList) { - ItemStack itemStack = new ItemStack(this, 1); - if (getChargedItem(itemStack) == this) { - ItemStack charged = new ItemStack(this, 1); - setEnergy(maxCharge, charged); - itemList.add(charged); - } - - if (getEmptyItem(itemStack) == this) { - itemList.add(new ItemStack(this, 1, getMaxDamage())); - } - } - @Override public boolean canHarvestBlock(Block block, ItemStack stack) { if(Items.diamond_pickaxe.canHarvestBlock(block, stack)) { diff --git a/src/main/java/techreborn/lib/ChatColor.java b/src/main/java/techreborn/lib/ChatColor.java new file mode 100644 index 000000000..e57a7cb7b --- /dev/null +++ b/src/main/java/techreborn/lib/ChatColor.java @@ -0,0 +1,64 @@ +package techreborn.lib; + + +public enum ChatColor { + + BLACK('0'), + + DARK_BLUE('1'), + + DARK_GREEN('2'), + + DARK_AQUA('3'), + + DARK_RED('4'), + + DARK_PURPLE('5'), + + GOLD('6'), + + GRAY('7'), + + DARK_GRAY('8'), + + BLUE('9'), + + GREEN('a'), + + AQUA('b'), + + RED('c'), + + LIGHT_PURPLE('d'), + + YELLOW('e'), + + WHITE('f'), + + MAGIC('k'), + + BOLD('l'), + + STRIKETHROUGH('m'), + + UNDERLINE('n'), + + ITALIC('o'), + + RESET('r'); + + public static final char COLOR_CHAR = '\u00A7'; + + private final String toString; + + ChatColor(char code) { + this.toString = new String(new char[] {COLOR_CHAR, code}); + } + + @Override + public String toString() { + return toString; + } + + +} diff --git a/src/main/java/techreborn/powerSystem/PoweredArmor.java b/src/main/java/techreborn/powerSystem/PoweredArmor.java index 10a50ce96..4948a1c9b 100644 --- a/src/main/java/techreborn/powerSystem/PoweredArmor.java +++ b/src/main/java/techreborn/powerSystem/PoweredArmor.java @@ -26,15 +26,18 @@ public abstract class PoweredArmor extends ItemArmor implements IEnergyInterface @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList) { ItemStack itemStack = new ItemStack(this, 1); + itemList.add(itemStack); + + ItemStack charged = new ItemStack(this, 1); + setEnergy(getMaxPower(charged), charged); + itemList.add(charged); + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + double charge = (getEnergy(stack) / getMaxPower(stack)); + return 1 - charge; - if (getChargedItem(itemStack) == this) { - ItemStack charged = new ItemStack(this, 1); - setEnergy(getMaxCharge(charged), charged); - itemList.add(charged); - } - if (getEmptyItem(itemStack) == this) { - itemList.add(new ItemStack(this, 1, getMaxDamage())); - } } //TechReborn diff --git a/src/main/java/techreborn/powerSystem/PoweredItem.java b/src/main/java/techreborn/powerSystem/PoweredItem.java index 895571549..37a9f605e 100644 --- a/src/main/java/techreborn/powerSystem/PoweredItem.java +++ b/src/main/java/techreborn/powerSystem/PoweredItem.java @@ -25,15 +25,18 @@ public abstract class PoweredItem extends Item implements IEnergyInterfaceItem, @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList) { ItemStack itemStack = new ItemStack(this, 1); + itemList.add(itemStack); + + ItemStack charged = new ItemStack(this, 1); + setEnergy(getMaxPower(charged), charged); + itemList.add(charged); + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + double charge = (getEnergy(stack) / getMaxPower(stack)); + return 1 - charge; - if (getChargedItem(itemStack) == this) { - ItemStack charged = new ItemStack(this, 1); - setEnergy(getMaxCharge(charged), charged); - itemList.add(charged); - } - if (getEmptyItem(itemStack) == this) { - itemList.add(new ItemStack(this, 1, getMaxDamage())); - } } //TechReborn diff --git a/src/main/java/techreborn/powerSystem/PoweredPickaxe.java b/src/main/java/techreborn/powerSystem/PoweredPickaxe.java index ce309171c..3655c80ad 100644 --- a/src/main/java/techreborn/powerSystem/PoweredPickaxe.java +++ b/src/main/java/techreborn/powerSystem/PoweredPickaxe.java @@ -27,16 +27,18 @@ public abstract class PoweredPickaxe extends ItemPickaxe implements IEnergyInter @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList) { ItemStack itemStack = new ItemStack(this, 1); + itemList.add(itemStack); - if (getChargedItem(itemStack) == this) { - ItemStack charged = new ItemStack(this, 1); - setEnergy(getMaxCharge(charged), charged); - itemList.add(charged); - } - if (getEmptyItem(itemStack) == this) { - itemList.add(new ItemStack(this, 1, getMaxDamage())); + ItemStack charged = new ItemStack(this, 1); + setEnergy(getMaxPower(charged), charged); + itemList.add(charged); + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + double charge = (getEnergy(stack) / getMaxPower(stack)); + return 1 - charge; - } } //TechReborn diff --git a/src/main/java/techreborn/powerSystem/TilePowerAcceptor.java b/src/main/java/techreborn/powerSystem/TilePowerAcceptor.java index 799089866..1bc137ca5 100644 --- a/src/main/java/techreborn/powerSystem/TilePowerAcceptor.java +++ b/src/main/java/techreborn/powerSystem/TilePowerAcceptor.java @@ -19,6 +19,7 @@ import techreborn.api.IListInfoProvider; import techreborn.api.power.IEnergyInterfaceTile; import techreborn.asm.Strippable; import techreborn.config.ConfigTechReborn; +import techreborn.lib.ChatColor; import java.util.List; @@ -289,9 +290,9 @@ public abstract class TilePowerAcceptor extends RFProviderTile implements @Override public void addInfo(List info, boolean isRealTile) { - info.add("Energy buffer Size " + getEUString(getMaxPower())); - info.add("Max Input " + getEUString(getMaxInput())); - info.add("Max Output " + getEUString(getMaxOutput())); + info.add(ChatColor.LIGHT_PURPLE + "Energy buffer Size " + ChatColor.GREEN + getEUString(getMaxPower())); + info.add(ChatColor.LIGHT_PURPLE +"Max Input " + ChatColor.GREEN + getEUString(getMaxInput())); + info.add(ChatColor.LIGHT_PURPLE +"Max Output " + ChatColor.GREEN + getEUString(getMaxOutput())); } private String getEUString(double euValue) {