From cc5e517a1d4d11e958a93e9eb54155eed223ef9f Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 26 Nov 2016 09:36:19 +0100 Subject: [PATCH] Added FU as an option to the energy display --- .../mod/data/PlayerData.java | 6 ++-- .../mod/inventory/gui/EnergyDisplay.java | 29 ++++++++++-------- .../mod/items/base/ItemEnergy.java | 4 +-- .../assets/actuallyadditions/lang/en_US.lang | 4 ++- .../textures/gui/gui_inventory.png | Bin 6503 -> 8374 bytes 5 files changed, 25 insertions(+), 18 deletions(-) diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/data/PlayerData.java b/src/main/java/de/ellpeck/actuallyadditions/mod/data/PlayerData.java index 1df3dceec..ad8b3c907 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/data/PlayerData.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/data/PlayerData.java @@ -48,7 +48,7 @@ public final class PlayerData{ public UUID id; - public boolean displayTesla; + public int energyDisplayMode; public boolean bookGottenAlready; public boolean didBookTutorial; public boolean hasBatWings; @@ -65,7 +65,7 @@ public final class PlayerData{ } public void readFromNBT(NBTTagCompound compound, boolean savingToFile){ - this.displayTesla = compound.getBoolean("DisplayTesla"); + this.energyDisplayMode = compound.getInteger("EnergyDisplayMode"); this.bookGottenAlready = compound.getBoolean("BookGotten"); this.didBookTutorial = compound.getBoolean("DidTutorial"); @@ -87,7 +87,7 @@ public final class PlayerData{ } public void writeToNBT(NBTTagCompound compound, boolean savingToFile){ - compound.setBoolean("DisplayTesla", this.displayTesla); + compound.setInteger("EnergyDisplayMode", this.energyDisplayMode); compound.setBoolean("BookGotten", this.bookGottenAlready); compound.setBoolean("DidTutorial", this.didBookTutorial); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/EnergyDisplay.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/EnergyDisplay.java index d75efe2f7..98ca0fbd9 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/EnergyDisplay.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/EnergyDisplay.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.inventory.gui; -import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.data.PlayerData; import de.ellpeck.actuallyadditions.mod.network.PacketHandlerHelper; import de.ellpeck.actuallyadditions.mod.tile.CustomEnergyStorage; @@ -34,7 +33,7 @@ public class EnergyDisplay extends Gui{ private int y; private boolean outline; private boolean drawTextNextTo; - private boolean displayTesla; + private int displayMode; //0: RF, 1: FU, 2: T public EnergyDisplay(int x, int y, CustomEnergyStorage rfReference, boolean outline, boolean drawTextNextTo){ this.setData(x, y, rfReference, outline, drawTextNextTo); @@ -51,7 +50,7 @@ public class EnergyDisplay extends Gui{ this.outline = outline; this.drawTextNextTo = drawTextNextTo; - this.displayTesla = PlayerData.getDataFromPlayer(Minecraft.getMinecraft().thePlayer).displayTesla; + this.displayMode = PlayerData.getDataFromPlayer(Minecraft.getMinecraft().thePlayer).energyDisplayMode; } public void draw(){ @@ -60,7 +59,8 @@ public class EnergyDisplay extends Gui{ int barX = this.x; int barY = this.y; - int vOffset = this.displayTesla ? 85 : 0; + int uOffset = this.displayMode == 1 ? 60 : 0; + int vOffset = this.displayMode == 0 ? 0 : 85; if(this.outline){ this.drawTexturedModalRect(this.x, this.y, 52, 163, 26, 93); @@ -68,11 +68,11 @@ public class EnergyDisplay extends Gui{ barX += 4; barY += 4; } - this.drawTexturedModalRect(barX, barY, 18, 171-vOffset, 18, 85); + this.drawTexturedModalRect(barX, barY, 18+uOffset, 171-vOffset, 18, 85); if(this.rfReference.getEnergyStored() > 0){ int i = this.rfReference.getEnergyStored()*83/this.rfReference.getMaxEnergyStored(); - this.drawTexturedModalRect(barX+1, barY+84-i, 36, 172-vOffset, 16, i); + this.drawTexturedModalRect(barX+1, barY+84-i, 36+uOffset, 172-vOffset, 16, i); } if(this.drawTextNextTo){ @@ -87,8 +87,10 @@ public class EnergyDisplay extends Gui{ List text = new ArrayList(); text.add(this.getOverlayText()); text.add(""); - text.add(TextFormatting.GRAY+""+TextFormatting.ITALIC+StringUtil.localize("info."+ModUtil.MOD_ID+".energy.to"+(this.displayTesla ? "RF" : "T"))); - text.add(TextFormatting.DARK_GRAY+""+TextFormatting.ITALIC+StringUtil.localize("info."+ModUtil.MOD_ID+".energy.disclaimer")); + text.add(TextFormatting.GRAY+""+TextFormatting.ITALIC+StringUtil.localize("info."+ModUtil.MOD_ID+".energy.to"+(this.displayMode == 1 ? "T" : (this.displayMode == 0 ? "FU" : "RF")))); + for(int i = 1; i <= 2; i++){ + text.add(TextFormatting.DARK_GRAY+""+TextFormatting.ITALIC+StringUtil.localize("info."+ModUtil.MOD_ID+".energy.disclaimer."+i)); + } GuiUtils.drawHoveringText(text, mouseX, mouseY, mc.displayWidth, mc.displayHeight, -1, mc.fontRendererObj); } } @@ -105,14 +107,17 @@ public class EnergyDisplay extends Gui{ private String getOverlayText(){ NumberFormat format = NumberFormat.getInstance(); - return format.format(this.rfReference.getEnergyStored())+"/"+format.format(this.rfReference.getMaxEnergyStored())+(this.displayTesla ? " T" : " RF"); + return format.format(this.rfReference.getEnergyStored())+"/"+format.format(this.rfReference.getMaxEnergyStored())+(this.displayMode == 0 ? " RF" : (this.displayMode == 2 ? " T" : " FU")); } private void changeDisplayMode(){ - this.displayTesla = !this.displayTesla; + this.displayMode++; + if(this.displayMode >= 3){ + this.displayMode = 0; + } EntityPlayer player = Minecraft.getMinecraft().thePlayer; - PlayerData.getDataFromPlayer(player).displayTesla = this.displayTesla; - PacketHandlerHelper.sendPlayerDataPacket(player, true, false); + PlayerData.getDataFromPlayer(player).energyDisplayMode = this.displayMode; + PacketHandlerHelper.sendPlayerDataPacket(player, false, false); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java index ba6792465..ea3b233b4 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java @@ -68,8 +68,8 @@ public abstract class ItemEnergy extends ItemEnergyContainer{ @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool){ NumberFormat format = NumberFormat.getInstance(); - boolean tesla = PlayerData.getDataFromPlayer(player).displayTesla; - list.add(format.format(this.getEnergyStored(stack))+"/"+format.format(this.getMaxEnergyStored(stack))+(tesla ? " T" : " RF")); + int display = PlayerData.getDataFromPlayer(player).energyDisplayMode; + list.add(format.format(this.getEnergyStored(stack))+"/"+format.format(this.getMaxEnergyStored(stack))+(display == 1 ? "FU" : (display == 0 ? "RF" : "T"))); } @Override diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index bd96cd614..a97cfdbba 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -604,7 +604,9 @@ info.actuallyadditions.placer.sides.1=Placement Sides info.actuallyadditions.placer.sides.2=Usually when placing down blocks, they are placed towards the side of another block that you are looking at. Because the Phantom Placer can place blocks in mid-air, it doesn't know that. Usually you should just set it to a solid side. info.actuallyadditions.energy.toRF=Click for Redstone Flux display mode! info.actuallyadditions.energy.toT=Click for Tesla display mode! -info.actuallyadditions.energy.disclaimer=Note that this is just for looks. +info.actuallyadditions.energy.toFU=Click for Forge Units display mode! +info.actuallyadditions.energy.disclaimer.1=Changing this is just visual. +info.actuallyadditions.energy.disclaimer.2=All systems are always supported. #Container Names container.actuallyadditions.inputter.name=ESD diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/gui_inventory.png b/src/main/resources/assets/actuallyadditions/textures/gui/gui_inventory.png index 88eb3156b9ce792f64c4029fccfa693b279055ec..03f065d740a70b4ab87dfa66eb13d86a2e3fdc10 100644 GIT binary patch literal 8374 zcmd^ldpwlu`|kbDJKiBPkyroy{(EQUGHv zrln_GfG)E4uHL%W&R?*1pUZA{2ypTA+q>A$eJ@vcvF2heZBx2;Hvm`1V%0AjgPnTL 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 literal 6503 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 JC#R^s`%gT?iVy$*