From 5dc1951fa1650c9f44a7850492fb49f9161a1085 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 21 Jul 2016 01:49:01 +0200 Subject: [PATCH] New energy and fluid displays, part 1! --- .../mod/inventory/gui/EnergyDisplay.java | 67 ++++++++++++ .../mod/inventory/gui/FluidDisplay.java | 96 ++++++++++++++++++ .../mod/inventory/gui/GuiCanolaPress.java | 32 +++--- .../mod/util/StringUtil.java | 3 +- .../textures/gui/guiCanolaPress.png | Bin 3050 -> 2339 bytes .../textures/gui/guiFermentingBarrel.png | Bin 2941 -> 2720 bytes .../textures/gui/guiFluidCollector.png | Bin 1366 -> 1649 bytes .../textures/gui/guiInventory.png | Bin 2933 -> 5105 bytes .../textures/gui/guiOilGenerator.png | Bin 2634 -> 2619 bytes 9 files changed, 178 insertions(+), 20 deletions(-) create mode 100644 src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/EnergyDisplay.java create mode 100644 src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/FluidDisplay.java 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 new file mode 100644 index 000000000..26741bc4f --- /dev/null +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/EnergyDisplay.java @@ -0,0 +1,67 @@ +/* + * This file ("EnergyDisplay.java") is part of the Actually Additions mod for Minecraft. + * It is created and owned by Ellpeck and distributed + * under the Actually Additions License to be found at + * http://ellpeck.de/actaddlicense + * View the source code at https://github.com/Ellpeck/ActuallyAdditions + * + * © 2015-2016 Ellpeck + */ + +package de.ellpeck.actuallyadditions.mod.inventory.gui; + +import cofh.api.energy.EnergyStorage; +import de.ellpeck.actuallyadditions.mod.util.AssetUtil; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraftforge.fml.client.config.GuiUtils; + +import java.util.Collections; + +public class EnergyDisplay extends Gui{ + + private final EnergyStorage rfReference; + private final int x; + private final int y; + private final boolean outline; + + public EnergyDisplay(int x, int y, EnergyStorage rfReference, boolean outline){ + this.x = x; + this.y = y; + this.rfReference = rfReference; + this.outline = outline; + } + + public EnergyDisplay(int x, int y, EnergyStorage rfReference){ + this(x, y, rfReference, false); + } + + public void draw(){ + Minecraft mc = Minecraft.getMinecraft(); + mc.getTextureManager().bindTexture(AssetUtil.GUI_INVENTORY_LOCATION); + + int barX = this.x; + int barY = this.y; + + if(this.outline){ + this.drawTexturedModalRect(this.x, this.y, 52, 163, 26, 93); + + barX += 4; + barY += 4; + } + this.drawTexturedModalRect(barX, barY, 18, 171, 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, 16, i); + } + } + + public void drawOverlay(int mouseX, int mouseY){ + if(mouseX >= this.x && mouseY >= this.y && mouseX < this.x+(this.outline ? 26 : 18) && mouseY < this.y+(this.outline ? 93 : 85)){ + Minecraft mc = Minecraft.getMinecraft(); + String text = this.rfReference.getEnergyStored()+"/"+this.rfReference.getMaxEnergyStored()+" RF"; + GuiUtils.drawHoveringText(Collections.singletonList(text), mouseX, mouseY, mc.displayWidth, mc.displayHeight, -1, mc.fontRendererObj); + } + } +} diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/FluidDisplay.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/FluidDisplay.java new file mode 100644 index 000000000..c5865346e --- /dev/null +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/FluidDisplay.java @@ -0,0 +1,96 @@ +/* + * This file ("FluidDisplay.java") is part of the Actually Additions mod for Minecraft. + * It is created and owned by Ellpeck and distributed + * under the Actually Additions License to be found at + * http://ellpeck.de/actaddlicense + * View the source code at https://github.com/Ellpeck/ActuallyAdditions + * + * © 2015-2016 Ellpeck + */ + +package de.ellpeck.actuallyadditions.mod.inventory.gui; + +import cofh.api.energy.EnergyStorage; +import de.ellpeck.actuallyadditions.mod.util.AssetUtil; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTank; +import net.minecraftforge.fml.client.config.GuiUtils; + +import java.util.Collections; + +public class FluidDisplay extends Gui{ + + private final FluidTank fluidReference; + private Fluid oldFluid; + + private final int x; + private final int y; + private final boolean outline; + + private ResourceLocation resLoc; + + public FluidDisplay(int x, int y, FluidTank fluidReference, boolean outline){ + this.x = x; + this.y = y; + this.fluidReference = fluidReference; + this.outline = outline; + } + + public FluidDisplay(int x, int y, FluidTank fluidReference){ + this(x, y, fluidReference, false); + } + + public void draw(){ + Minecraft mc = Minecraft.getMinecraft(); + mc.getTextureManager().bindTexture(AssetUtil.GUI_INVENTORY_LOCATION); + + int barX = this.x; + int barY = this.y; + + if(this.outline){ + this.drawTexturedModalRect(this.x, this.y, 52, 163, 26, 93); + + barX += 4; + barY += 4; + } + this.drawTexturedModalRect(barX, barY, 0, 171, 18, 85); + + FluidStack stack = this.fluidReference.getFluid(); + Fluid fluid = stack == null ? null : stack.getFluid(); + + if(this.resLoc == null || this.oldFluid != fluid){ + this.oldFluid = fluid; + + if(fluid != null){ + this.resLoc = new ResourceLocation(fluid.getStill().getResourceDomain(), "textures/"+fluid.getStill().getResourcePath()+".png"); + } + } + + if(stack != null && fluid != null && this.resLoc != null){ + mc.getTextureManager().bindTexture(this.resLoc); + + GlStateManager.enableBlend(); + GlStateManager.disableAlpha(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + int i = this.fluidReference.getFluidAmount()*83/this.fluidReference.getCapacity(); + GuiInputter.drawModalRectWithCustomSizedTexture(barX+1, barY+84-i, 36, 172, 16, i, 16, 512); + GlStateManager.disableBlend(); + GlStateManager.enableAlpha(); + } + } + + public void drawOverlay(int mouseX, int mouseY){ + if(mouseX >= this.x && mouseY >= this.y && mouseX < this.x+(this.outline ? 26 : 18) && mouseY < this.y+(this.outline ? 93 : 85)){ + FluidStack stack = this.fluidReference.getFluid(); + Minecraft mc = Minecraft.getMinecraft(); + + String text = stack == null || stack.getFluid() == null ? "0/"+this.fluidReference.getCapacity()+" mB" : this.fluidReference.getFluidAmount()+"/"+this.fluidReference.getCapacity()+" mB "+stack.getLocalizedName(); + GuiUtils.drawHoveringText(Collections.singletonList(text), mouseX, mouseY, mc.displayWidth, mc.displayHeight, -1, mc.fontRendererObj); + } + } +} diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCanolaPress.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCanolaPress.java index 2d28853e6..3e2c0e1c9 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCanolaPress.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCanolaPress.java @@ -29,6 +29,8 @@ public class GuiCanolaPress extends GuiContainer{ private static final ResourceLocation RES_LOC = AssetUtil.getGuiLocation("guiCanolaPress"); private final TileEntityCanolaPress press; + private EnergyDisplay energy; + private FluidDisplay fluid; public GuiCanolaPress(InventoryPlayer inventory, TileEntityBase tile){ super(new ContainerCanolaPress(inventory, tile)); @@ -37,18 +39,19 @@ public class GuiCanolaPress extends GuiContainer{ this.ySize = 93+86; } + @Override + public void initGui(){ + super.initGui(); + this.energy = new EnergyDisplay(this.guiLeft+42, this.guiTop+5, this.press.storage); + this.fluid = new FluidDisplay(this.guiLeft+116, this.guiTop+5, this.press.tank); + } + @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); - String text1 = this.press.storage.getEnergyStored()+"/"+this.press.storage.getMaxEnergyStored()+" RF"; - if(x >= this.guiLeft+43 && y >= this.guiTop+6 && x <= this.guiLeft+58 && y <= this.guiTop+88){ - this.drawHoveringText(Collections.singletonList(text1), x, y); - } - String text2 = StringUtil.getFluidInfo(this.press.tank); - if(x >= this.guiLeft+117 && y >= this.guiTop+6 && x <= this.guiLeft+132 && y <= this.guiTop+88){ - this.drawHoveringText(Collections.singletonList(text2), x, y); - } + this.energy.drawOverlay(x, y); + this.fluid.drawOverlay(x, y); } @Override @@ -66,19 +69,12 @@ public class GuiCanolaPress extends GuiContainer{ this.mc.getTextureManager().bindTexture(RES_LOC); this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); - if(this.press.storage.getEnergyStored() > 0){ - int i = this.press.getEnergyScaled(83); - this.drawTexturedModalRect(this.guiLeft+43, this.guiTop+89-i, 176, 29, 16, i); - } - - if(this.press.tank.getFluidAmount() > 0){ - int i = this.press.getTankScaled(83); - this.drawTexturedModalRect(this.guiLeft+117, this.guiTop+89-i, 192, 29, 16, i); - } - if(this.press.currentProcessTime > 0){ int i = this.press.getProcessScaled(29); this.drawTexturedModalRect(this.guiLeft+83, this.guiTop+32, 176, 0, 12, i); } + + this.energy.draw(); + this.fluid.draw(); } } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/StringUtil.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/StringUtil.java index edd6df90d..486fd1e64 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/StringUtil.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/StringUtil.java @@ -48,8 +48,7 @@ public final class StringUtil{ } } - @SideOnly(Side.CLIENT) public static String getFluidInfo(FluidTank tank){ - return tank.getFluid() == null || tank.getFluid().getFluid() == null ? "0/"+tank.getCapacity()+" mB" : tank.getFluidAmount()+"/"+tank.getCapacity()+" mB "+tank.getFluid().getLocalizedName(); + return ""; } } diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiCanolaPress.png b/src/main/resources/assets/actuallyadditions/textures/gui/guiCanolaPress.png index 329ca83de04c7b164c6bcc882e00b9394ea9216f..0390bd7653a90c4530b631b6b18a1030bce66df7 100644 GIT binary patch literal 2339 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 a$ZAHvzea2BOL=HdEPP+&-ljcAzxX#PbgK;j diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiFermentingBarrel.png b/src/main/resources/assets/actuallyadditions/textures/gui/guiFermentingBarrel.png index a50af9b9847246687a660989131c9849f157ff7a..8372dd1528a615d16b42b49b0c4295ead75ec90c 100644 GIT binary patch literal 2720 zcmds(dr(tX8ojU_D-Rzvh?RgP5}b2Ckn{?VDeGxwf* z&v(xE_?_?j=9Wetz^`(6-2niwYF`-c5C9PT3V}b_!$S<|W->gylCmd!4*)GRM`HpK z{$7z07M%&et2eDT^j4JO0zB!SwfCc}!|BOcISHgBkdg2SG0T^jl(p_%-z~lYsoN5<}x$+yVf!P~L*k73AW6s|dtgQ+y`yBt-d&Ht6C9}6( z4&io%JRmc(KOCOE=yR6nSvO2uy>WhB&d^SFt*Imy6=!L1IH_v(*|zBMW|V{BSeO2GMkANHNc{G7o^ zAS;;vD?*QM9sh?G`Sf8i`t+u_lfsFd2o|l?pS_d09ThBJh!*_)Ie||xu~pHpCXz&H zoN&mfyvOe()z2)*E2!BDS7kOm1rR9D71zaY&7NkhZz?%hw^zHI& z^H0a21iXPbpn6QWT|^V3gPdD<_LCnJ&UB2oH~+b3%|T$;2Ad4!w=oRI5MwX+G#&wD z(z%(hxnRo0lIz-hpF!U3EHzvDNbVKKiFF8R#qpXEHPT60l{Oo;+pe851`9e@W=bbG zR)wS@MBl|g6V2O7W=pZkL+XKS_Dk_Dlp0lze~Gi(Stk<1y!@@a28}BPOuO0M}T%?JmI_cXvMrBD!<%h1x#i#}T2ZU=D4fJLRToMu?eXjDO4>JOs3fe67c4s&td- z@C#5Or=7`bJ$%OQlGj$V{YOS_fb!DJ^J0sN$&YIaGR_W1On--4Oux-80!9pfXiY!} z)XiR)8lh4R8aBRK#)gKbw+$qaXF^ZlpxH=}*r>c>@)jIhsomVAN)#pR|HUc|!Jjw+ zop@p>D5W)m9^qhKIDFPWPQqzSnU^lHxU8!1xle^G3|G zPu}lj#YJH*1;QGxfu6Icleo81y~x*qZZCA+Q6tQc8jaN9AoV$fyW9QCbGKMm)ujlj z8*+>9x0_W_Ng<=o@Oe1I$DBMWsTUTpHVs9AdJW;5f_EGyt4RHID_&}l2RN+5m=^4U zYAFlTUA<^(jkz-oc1v+F!uda{tstWWcyz&~UoGp;LGd;DWX5_M!xH3ICZC0{5_S@`{mpBj{O!s!U*BnJIC^z`s((77OUWJLm4YeCzl7$fj%l{@u9|XOZKEQ@A5oUWAhH)(OX*zEkT@s`d zQ*RkwZP@Ly91BT>=zDfI0yNoZ8j1y~)zIx;@dPgv@;vPO{N1au(ad)|gpBb=uL%qo zD$Zv1Iyh!SkZ~Qb(68hZmLFw*qhq{b2h~W5)TOg*f>P$%H|NaYZ8l`01Q%=;l3fIb zIJd~SV z^*cLDGJ8V)Hp|*uwAJMF3C^_8GMpFdBJj?ugWK1(RuW~V-~JFIsI@e&F|i(mdMPor zsZI*Ym3=i41Db7|y8Z@Xhe@%}b8djHsoZc|h8Z1z>_wRS4gcp)_$Tg}+N-@0+~O z^PKSX;qMIH&X=yjaHj?(qenA{%Fj#=_4l zll>Vf0K9d@{6;3%tT+n4T$}n)Nb0BTgQ;oJ92Q89{!3CSDT$Tp@&RcRiJIso2n1l2 zK47=+pVOIRPxf$}n(eHDfA?)#PWoz(>g3PWg?S{par2F7My;EUYy0)iV*fiiCl1~6 z_NSbSp#1DSTqhxl^G;t!cL0OP$i|F_6=3>>I|7dJ)*fz;L(hm1Eqwbr#{Sj;(h>rw525nU5yn9Jfgqo4(ACo$K3SdOUUW zWv*?Q(*AWvFY=M5E(2>NkFj3qd1pCwY*WqlbgiPbR08` zYv&plg5#Sor33rz8#IwZW8uu`jQPlXY8jsWF;NtHzaE@%&7PQ=>=Inz%K7}TOObb# z)d$}iX*_R-D?C$07P00WJhh&N$$aqu72uJipdB^kNp~G9z#*z0BlcC?cvug^4LyLF zEbI*hd5{|1m44S}982t|Zub66XUcx5^1^GCtybP^W&x?E18xfSI;DHsW=`LOC?a-t znf!l&N5Ut60O84MK+K%P-O77K^7+S4PyD*H$3i>OAiGLQsrj&>Jp@!g`2iz#x9AJF zqkCCDF!No<#BS#*z%zcn!9xedqJH?tt1B8O znnkiJl#~!ccUEf%a3hN3XSP>qFvKrh1*~-WwO2qbF6J}YjOxR(Q& zhk&1+voZk=}wGI|;kfna`EBIr~By4}%eRXfmIzP7fJ$gahrYzt38J|Do+Cy$WWkv+#8 z(bS8vt2@^%q9Nh5VOM9)nxxTcG)3WDq{(YhsEaAMh6Y^21dN+Zq^1e;$Q|;8ST8M= z$MI2Yd9C$ETGGtS2DF^)W#b$WXp^Lzu}-Rc5!Z?aI_~5b#I?D z{pg$Vtv zdXRd)%ynQgWlQ_@*~1A)>-UPXpO15gm3jD7#*T{`{r+}lq|EdfR6%qOLs>7^`H5DJk$UH diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiFluidCollector.png b/src/main/resources/assets/actuallyadditions/textures/gui/guiFluidCollector.png index c99b5f194bd97cd5580942a43d9a52cb3223bcd5..b03da459d52f14243d324fd2f7b6565178ff7b4f 100644 GIT binary patch literal 1649 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6&2?&#~tz_78O`%fY(kk47* z5n0T@z_$*B85f5w1nHJ2ag8Vm&QB{TPb^AhC`ioAE78kKEm1JhGtjflF|PAtU|@ak z>Eakt5%>1`#kHxSd@KQ*l!Ss5IX@{02))$oXP@CHX75vey)IvOW!?I78~r19+1EJ5 z+a=ho)sNqIr8Vy6`Qyg#x32&G^UUk*t$sJp9{=)s{r{d_{}wbSx9X|bwRmV6H3FQ(jGv)W~{eEpw~^3SKo*ICy8&OXNYf(xjz zbZW+@>c;<`|K5GyA12eV?tgqo>90^dEdjIp^-`{Tup5V08F%ye!Z-NBZk|O4UlQK1mAY0iUOtSpp zl%z4?6z>7m;t#DLhe(DppT zf!NQ5c5$^X=ZzT(uGh@z50}6AnTO$ysr>WDSKYtZFf)|Hm0o!Bod3m}-!FmUd)CMA z-}m>&$KGelHqvzj$ z`}_R#wR67SU2m^-{`Y>{|DS<{${+`RzrVb+=gHkV_siWxK9E~IUHx3vIVCg!0CZ3E AkN^Mx diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiInventory.png b/src/main/resources/assets/actuallyadditions/textures/gui/guiInventory.png index 52d44be1949c9dba98df83ede7877696f3c098b8..78f0e7a1a38463d2c491aa70493ac2210109a0db 100644 GIT binary patch literal 5105 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 D>xkMO