From 3390a41a835e6b210a8262a345f788eadc7da33b Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 21 Jul 2016 13:22:55 +0200 Subject: [PATCH] Finished the new energy and fluid displays~ --- .../mod/event/ClientEvents.java | 7 ++- .../mod/inventory/gui/EnergyDisplay.java | 36 +++++++++++----- .../mod/inventory/gui/FluidDisplay.java | 40 ++++++++++++------ .../mod/inventory/gui/GuiCoalGenerator.java | 19 +++++---- .../mod/inventory/gui/GuiCoffeeMachine.java | 21 +++++---- .../inventory/gui/GuiDirectionalBreaker.java | 17 ++++---- .../mod/inventory/gui/GuiEnergizer.java | 17 ++++---- .../mod/inventory/gui/GuiEnervator.java | 17 ++++---- .../inventory/gui/GuiFermentingBarrel.java | 32 ++++++-------- .../mod/inventory/gui/GuiFluidCollector.java | 17 ++++---- .../mod/inventory/gui/GuiFurnaceDouble.java | 18 ++++---- .../mod/inventory/gui/GuiGrinder.java | 18 ++++---- .../mod/inventory/gui/GuiOilGenerator.java | 33 +++++++-------- .../mod/inventory/gui/GuiRepairer.java | 18 ++++---- .../mod/tile/IEnergyDisplay.java | 6 +-- .../tile/TileEntityAtomicReconstructor.java | 5 +-- .../mod/tile/TileEntityDisplayStand.java | 9 +--- .../mod/tile/TileEntityFireworkBox.java | 10 +---- .../mod/tile/TileEntityFurnaceSolar.java | 10 +---- .../mod/tile/TileEntityHeatCollector.java | 11 +---- .../tile/TileEntityLavaFactoryController.java | 10 +---- .../mod/tile/TileEntityLeafGenerator.java | 10 +---- .../mod/tile/TileEntityMiner.java | 10 +---- .../mod/tile/TileEntityPlayerInterface.java | 9 +--- .../mod/tile/TileEntityShockSuppressor.java | 9 +--- .../textures/gui/guiCoalGenerator.png | Bin 2036 -> 1753 bytes .../textures/gui/guiCoffeeMachine.png | Bin 3686 -> 2916 bytes .../textures/gui/guiDirectionalBreaker.png | Bin 2077 -> 1836 bytes .../textures/gui/guiEnergizer.png | Bin 1962 -> 1831 bytes .../textures/gui/guiFermentingBarrel.png | Bin 2720 -> 2297 bytes .../textures/gui/guiFluidCollector.png | Bin 1649 -> 1380 bytes .../textures/gui/guiFurnaceDouble.png | Bin 2190 -> 2232 bytes .../textures/gui/guiGrinder.png | Bin 2212 -> 2113 bytes .../textures/gui/guiGrinderDouble.png | Bin 2423 -> 2643 bytes .../textures/gui/guiInventory.png | Bin 5105 -> 5023 bytes .../textures/gui/guiOilGenerator.png | Bin 2619 -> 1793 bytes .../textures/gui/guiOreMagnet.png | Bin 1919 -> 1604 bytes .../textures/gui/guiRepairer.png | Bin 2036 -> 1853 bytes 38 files changed, 195 insertions(+), 214 deletions(-) diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/event/ClientEvents.java b/src/main/java/de/ellpeck/actuallyadditions/mod/event/ClientEvents.java index 1550e2a11..fe3c88ca0 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/event/ClientEvents.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/event/ClientEvents.java @@ -12,6 +12,7 @@ package de.ellpeck.actuallyadditions.mod.event; import de.ellpeck.actuallyadditions.mod.blocks.IHudDisplay; import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues; +import de.ellpeck.actuallyadditions.mod.inventory.gui.EnergyDisplay; import de.ellpeck.actuallyadditions.mod.tile.IEnergyDisplay; import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase; import de.ellpeck.actuallyadditions.mod.util.ModUtil; @@ -45,6 +46,8 @@ public class ClientEvents{ private static final String ADVANCED_INFO_TEXT_PRE = TextFormatting.DARK_GRAY+" "; private static final String ADVANCED_INFO_HEADER_PRE = TextFormatting.GRAY+" -"; + private static final EnergyDisplay ENERGY_DISPLAY = new EnergyDisplay(0, 0, null); + public ClientEvents(){ MinecraftForge.EVENT_BUS.register(this); } @@ -172,8 +175,8 @@ public class ClientEvents{ IEnergyDisplay display = (IEnergyDisplay)tileHit; if(!display.needsHoldShift() || player.isSneaking()){ profiler.startSection("EnergyDisplay"); - String strg = display.getEnergy()+"/"+display.getMaxEnergy()+" RF"; - font.drawStringWithShadow(TextFormatting.GOLD+strg, event.getResolution().getScaledWidth()/2+5, event.getResolution().getScaledHeight()/2-10, StringUtil.DECIMAL_COLOR_WHITE); + ENERGY_DISPLAY.setData(2, event.getResolution().getScaledHeight()-96, display.getEnergyStorage(), true, true); + ENERGY_DISPLAY.draw(); profiler.endSection(); } } 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 26741bc4f..7a757339a 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 @@ -12,6 +12,7 @@ package de.ellpeck.actuallyadditions.mod.inventory.gui; import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.util.AssetUtil; +import de.ellpeck.actuallyadditions.mod.util.StringUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; import net.minecraftforge.fml.client.config.GuiUtils; @@ -20,20 +21,26 @@ 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; + private EnergyStorage rfReference; + private int x; + private int y; + private boolean outline; + private boolean drawTextNextTo; - public EnergyDisplay(int x, int y, EnergyStorage rfReference, boolean outline){ + public EnergyDisplay(int x, int y, EnergyStorage rfReference, boolean outline, boolean drawTextNextTo){ + this.setData(x, y, rfReference, outline, drawTextNextTo); + } + + public EnergyDisplay(int x, int y, EnergyStorage rfReference){ + this(x, y, rfReference, false, false); + } + + public void setData(int x, int y, EnergyStorage rfReference, boolean outline, boolean drawTextNextTo){ 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); + this.drawTextNextTo = drawTextNextTo; } public void draw(){ @@ -55,13 +62,20 @@ public class EnergyDisplay extends Gui{ int i = this.rfReference.getEnergyStored()*83/this.rfReference.getMaxEnergyStored(); this.drawTexturedModalRect(barX+1, barY+84-i, 36, 172, 16, i); } + + if(this.drawTextNextTo){ + this.drawString(mc.fontRendererObj, this.getOverlayText(), barX+25, barY+78, StringUtil.DECIMAL_COLOR_WHITE); + } } 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); + GuiUtils.drawHoveringText(Collections.singletonList(this.getOverlayText()), mouseX, mouseY, mc.displayWidth, mc.displayHeight, -1, mc.fontRendererObj); } } + + private String getOverlayText(){ + return this.rfReference.getEnergyStored()+"/"+this.rfReference.getMaxEnergyStored()+" RF"; + } } 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 index c5865346e..ed9973709 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/FluidDisplay.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/FluidDisplay.java @@ -12,6 +12,7 @@ package de.ellpeck.actuallyadditions.mod.inventory.gui; import cofh.api.energy.EnergyStorage; import de.ellpeck.actuallyadditions.mod.util.AssetUtil; +import de.ellpeck.actuallyadditions.mod.util.StringUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; import net.minecraft.client.renderer.GlStateManager; @@ -25,24 +26,31 @@ import java.util.Collections; public class FluidDisplay extends Gui{ - private final FluidTank fluidReference; + private FluidTank fluidReference; private Fluid oldFluid; - private final int x; - private final int y; - private final boolean outline; + private int x; + private int y; + private boolean outline; private ResourceLocation resLoc; - public FluidDisplay(int x, int y, FluidTank fluidReference, boolean outline){ + private boolean drawTextNextTo; + + public FluidDisplay(int x, int y, FluidTank fluidReference, boolean outline, boolean drawTextNextTo){ + this.setData(x, y, fluidReference, outline, drawTextNextTo); + } + + public FluidDisplay(int x, int y, FluidTank fluidReference){ + this(x, y, fluidReference, false, false); + } + + public void setData(int x, int y, FluidTank fluidReference, boolean outline, boolean drawTextNextTo){ 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); + this.drawTextNextTo = drawTextNextTo; } public void draw(){ @@ -82,15 +90,21 @@ public class FluidDisplay extends Gui{ GlStateManager.disableBlend(); GlStateManager.enableAlpha(); } + + if(this.drawTextNextTo){ + this.drawString(mc.fontRendererObj, this.getOverlayText(), barX+25, barY+78, StringUtil.DECIMAL_COLOR_WHITE); + } } 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); + GuiUtils.drawHoveringText(Collections.singletonList(this.getOverlayText()), mouseX, mouseY, mc.displayWidth, mc.displayHeight, -1, mc.fontRendererObj); } } + + private String getOverlayText(){ + FluidStack stack = this.fluidReference.getFluid(); + return stack == null || stack.getFluid() == null ? "0/"+this.fluidReference.getCapacity()+" mB" : this.fluidReference.getFluidAmount()+"/"+this.fluidReference.getCapacity()+" mB "+stack.getLocalizedName(); + } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoalGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoalGenerator.java index 36ea1bb24..c28d3cff5 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoalGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoalGenerator.java @@ -28,6 +28,7 @@ public class GuiCoalGenerator extends GuiContainer{ private static final ResourceLocation RES_LOC = AssetUtil.getGuiLocation("guiCoalGenerator"); private final TileEntityCoalGenerator generator; + private EnergyDisplay energy; public GuiCoalGenerator(InventoryPlayer inventory, TileEntityBase tile){ super(new ContainerCoalGenerator(inventory, tile)); @@ -36,13 +37,16 @@ public class GuiCoalGenerator extends GuiContainer{ this.ySize = 93+86; } + @Override + public void initGui(){ + super.initGui(); + this.energy = new EnergyDisplay(this.guiLeft+42, this.guiTop+5, this.generator.storage); + } + @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); - String text1 = this.generator.storage.getEnergyStored()+"/"+this.generator.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); - } + this.energy.drawOverlay(x, y); } @Override @@ -60,14 +64,11 @@ public class GuiCoalGenerator extends GuiContainer{ this.mc.getTextureManager().bindTexture(RES_LOC); this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); - if(this.generator.storage.getEnergyStored() > 0){ - int i = this.generator.getEnergyScaled(83); - this.drawTexturedModalRect(this.guiLeft+43, this.guiTop+89-i, 176, 0, 16, i); - } - if(this.generator.currentBurnTime > 0){ int i = this.generator.getBurningScaled(13); this.drawTexturedModalRect(this.guiLeft+87, this.guiTop+27+12-i, 176, 96-i, 14, i); } + + this.energy.draw(); } } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoffeeMachine.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoffeeMachine.java index e745b36d3..6db2da248 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoffeeMachine.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiCoffeeMachine.java @@ -41,6 +41,9 @@ public class GuiCoffeeMachine extends GuiContainer{ private final int z; private final World world; + private EnergyDisplay energy; + private FluidDisplay fluid; + public GuiCoffeeMachine(InventoryPlayer inventory, TileEntityBase tile, int x, int y, int z, World world){ super(new ContainerCoffeeMachine(inventory, tile)); this.machine = (TileEntityCoffeeMachine)tile; @@ -58,6 +61,9 @@ public class GuiCoffeeMachine extends GuiContainer{ GuiButton buttonOkay = new GuiButton(0, this.guiLeft+60, this.guiTop+11, 58, 20, StringUtil.localize("info."+ModUtil.MOD_ID+".gui.ok")); this.buttonList.add(buttonOkay); + + this.energy = new EnergyDisplay(this.guiLeft+16, this.guiTop+5, this.machine.storage); + this.fluid = new FluidDisplay(this.guiLeft-30, this.guiTop+1, this.machine.tank, true, false); } @Override @@ -77,6 +83,9 @@ public class GuiCoffeeMachine extends GuiContainer{ if(x >= this.guiLeft+40 && y >= this.guiTop+25 && x <= this.guiLeft+49 && y <= this.guiTop+56){ this.drawHoveringText(Collections.singletonList(text2), x, y); } + + this.energy.drawOverlay(x, y); + this.fluid.drawOverlay(x, y); } @Override @@ -94,15 +103,6 @@ public class GuiCoffeeMachine extends GuiContainer{ this.mc.getTextureManager().bindTexture(RES_LOC); this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); - if(this.machine.storage.getEnergyStored() > 0){ - int i = this.machine.getEnergyScaled(83); - this.drawTexturedModalRect(this.guiLeft+17, this.guiTop+89-i, 176, 0, 6, i); - } - if(this.machine.tank.getFluidAmount() > 0){ - int i = this.machine.getWaterScaled(64); - this.drawTexturedModalRect(this.guiLeft+27, this.guiTop+70-i, 182, 0, 6, i); - } - if(this.machine.coffeeCacheAmount > 0){ int i = this.machine.getCoffeeScaled(30); this.drawTexturedModalRect(this.guiLeft+41, this.guiTop+56-i, 192, 0, 8, i); @@ -115,6 +115,9 @@ public class GuiCoffeeMachine extends GuiContainer{ int j = this.machine.getBrewScaled(26); this.drawTexturedModalRect(this.guiLeft+99+25-j, this.guiTop+44, 192+25-j, 46, j, 12); } + + this.energy.draw(); + this.fluid.draw(); } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiDirectionalBreaker.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiDirectionalBreaker.java index 5bb51f2ef..445ad6ca8 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiDirectionalBreaker.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiDirectionalBreaker.java @@ -28,6 +28,7 @@ public class GuiDirectionalBreaker extends GuiContainer{ private static final ResourceLocation RES_LOC = AssetUtil.getGuiLocation("guiDirectionalBreaker"); private final TileEntityDirectionalBreaker breaker; + private EnergyDisplay energy; public GuiDirectionalBreaker(InventoryPlayer inventory, TileEntityBase tile){ super(new ContainerDirectionalBreaker(inventory, tile)); @@ -36,14 +37,17 @@ public class GuiDirectionalBreaker extends GuiContainer{ this.ySize = 93+86; } + @Override + public void initGui(){ + super.initGui(); + this.energy = new EnergyDisplay(this.guiLeft+42, this.guiTop+5, this.breaker.storage); + } + @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); - String text1 = this.breaker.storage.getEnergyStored()+"/"+this.breaker.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); - } + this.energy.drawOverlay(x, y); } @Override @@ -61,9 +65,6 @@ public class GuiDirectionalBreaker extends GuiContainer{ this.mc.getTextureManager().bindTexture(RES_LOC); this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); - if(this.breaker.storage.getEnergyStored() > 0){ - int i = this.breaker.getEnergyScaled(83); - this.drawTexturedModalRect(this.guiLeft+43, this.guiTop+89-i, 176, 29, 16, i); - } + this.energy.draw(); } } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnergizer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnergizer.java index 2e8251dc1..1bf92db29 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnergizer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnergizer.java @@ -28,6 +28,7 @@ public class GuiEnergizer extends GuiContainer{ private static final ResourceLocation RES_LOC = AssetUtil.getGuiLocation("guiEnergizer"); private final TileEntityEnergizer energizer; + private EnergyDisplay energy; public GuiEnergizer(EntityPlayer inventory, TileEntityBase tile){ super(new ContainerEnergizer(inventory, tile)); @@ -36,13 +37,16 @@ public class GuiEnergizer extends GuiContainer{ this.ySize = 93+86; } + @Override + public void initGui(){ + super.initGui(); + this.energy = new EnergyDisplay(this.guiLeft+56, this.guiTop+5, this.energizer.storage); + } + @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); - String text1 = this.energizer.storage.getEnergyStored()+"/"+this.energizer.storage.getMaxEnergyStored()+" RF"; - if(x >= this.guiLeft+57 && y >= this.guiTop+6 && x <= this.guiLeft+72 && y <= this.guiTop+88){ - this.drawHoveringText(Collections.singletonList(text1), x, y); - } + this.energy.drawOverlay(x, y); } @Override @@ -60,9 +64,6 @@ public class GuiEnergizer extends GuiContainer{ this.mc.getTextureManager().bindTexture(RES_LOC); this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); - if(this.energizer.storage.getEnergyStored() > 0){ - int i = this.energizer.getEnergyScaled(83); - this.drawTexturedModalRect(this.guiLeft+57, this.guiTop+89-i, 176, 0, 16, i); - } + this.energy.draw(); } } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnervator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnervator.java index 49a30f393..c2b2cfcec 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnervator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiEnervator.java @@ -28,6 +28,7 @@ public class GuiEnervator extends GuiContainer{ private static final ResourceLocation RES_LOC = AssetUtil.getGuiLocation("guiEnergizer"); private final TileEntityEnervator enervator; + private EnergyDisplay energy; public GuiEnervator(EntityPlayer inventory, TileEntityBase tile){ super(new ContainerEnervator(inventory, tile)); @@ -36,13 +37,16 @@ public class GuiEnervator extends GuiContainer{ this.ySize = 93+86; } + @Override + public void initGui(){ + super.initGui(); + this.energy = new EnergyDisplay(this.guiLeft+56, this.guiTop+5, this.enervator.storage); + } + @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); - String text1 = this.enervator.storage.getEnergyStored()+"/"+this.enervator.storage.getMaxEnergyStored()+" RF"; - if(x >= this.guiLeft+57 && y >= this.guiTop+6 && x <= this.guiLeft+72 && y <= this.guiTop+88){ - this.drawHoveringText(Collections.singletonList(text1), x, y); - } + this.energy.drawOverlay(x, y); } @Override @@ -60,9 +64,6 @@ public class GuiEnervator extends GuiContainer{ this.mc.getTextureManager().bindTexture(RES_LOC); this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); - if(this.enervator.storage.getEnergyStored() > 0){ - int i = this.enervator.getEnergyScaled(83); - this.drawTexturedModalRect(this.guiLeft+57, this.guiTop+89-i, 176, 0, 16, i); - } + this.energy.draw(); } } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFermentingBarrel.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFermentingBarrel.java index 9d45e29df..27d0a6708 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFermentingBarrel.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFermentingBarrel.java @@ -29,6 +29,8 @@ public class GuiFermentingBarrel extends GuiContainer{ private static final ResourceLocation RES_LOC = AssetUtil.getGuiLocation("guiFermentingBarrel"); private final TileEntityFermentingBarrel press; + private FluidDisplay input; + private FluidDisplay output; public GuiFermentingBarrel(InventoryPlayer inventory, TileEntityBase tile){ super(new ContainerFermentingBarrel(inventory, tile)); @@ -40,16 +42,15 @@ public class GuiFermentingBarrel extends GuiContainer{ @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); + this.input.drawOverlay(x, y); + this.output.drawOverlay(x, y); + } - String text1 = StringUtil.getFluidInfo(this.press.canolaTank); - if(x >= this.guiLeft+61 && y >= this.guiTop+6 && x <= this.guiLeft+76 && y <= this.guiTop+88){ - this.drawHoveringText(Collections.singletonList(text1), x, y); - } - - String text2 = StringUtil.getFluidInfo(this.press.oilTank); - if(x >= this.guiLeft+99 && y >= this.guiTop+6 && x <= this.guiLeft+114 && y <= this.guiTop+88){ - this.drawHoveringText(Collections.singletonList(text2), x, y); - } + @Override + public void initGui(){ + super.initGui(); + this.input = new FluidDisplay(this.guiLeft+60, this.guiTop+5, this.press.canolaTank); + this.output = new FluidDisplay(this.guiLeft+98, this.guiTop+5, this.press.oilTank); } @Override @@ -67,19 +68,12 @@ public class GuiFermentingBarrel extends GuiContainer{ this.mc.getTextureManager().bindTexture(RES_LOC); this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); - if(this.press.canolaTank.getFluidAmount() > 0){ - int i = this.press.getCanolaTankScaled(83); - this.drawTexturedModalRect(this.guiLeft+61, this.guiTop+89-i, 192, 29, 16, i); - } - - if(this.press.oilTank.getFluidAmount() > 0){ - int i = this.press.getOilTankScaled(83); - this.drawTexturedModalRect(this.guiLeft+99, this.guiTop+89-i, 176, 29, 16, i); - } - if(this.press.currentProcessTime > 0){ int i = this.press.getProcessScaled(29); this.drawTexturedModalRect(this.guiLeft+82, this.guiTop+34, 176, 0, 12, i); } + + this.input.draw(); + this.output.draw(); } } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFluidCollector.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFluidCollector.java index bcb33a796..f62629afb 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFluidCollector.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFluidCollector.java @@ -29,6 +29,7 @@ public class GuiFluidCollector extends GuiContainer{ private static final ResourceLocation RES_LOC = AssetUtil.getGuiLocation("guiFluidCollector"); private final TileEntityFluidCollector collector; + private FluidDisplay fluid; public GuiFluidCollector(InventoryPlayer inventory, TileEntityBase tile){ super(new ContainerFluidCollector(inventory, tile)); @@ -41,10 +42,13 @@ public class GuiFluidCollector extends GuiContainer{ public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); - String text2 = StringUtil.getFluidInfo(this.collector.tank); - if(x >= this.guiLeft+68 && y >= this.guiTop+6 && x <= this.guiLeft+83 && y <= this.guiTop+88){ - this.drawHoveringText(Collections.singletonList(text2), x, y); - } + this.fluid.drawOverlay(x, y); + } + + @Override + public void initGui(){ + super.initGui(); + this.fluid = new FluidDisplay(this.guiLeft+67, this.guiTop+5, this.collector.tank); } @Override @@ -62,9 +66,6 @@ public class GuiFluidCollector extends GuiContainer{ this.mc.getTextureManager().bindTexture(RES_LOC); this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); - if(this.collector.tank.getFluidAmount() > 0){ - int i = this.collector.getTankScaled(83); - this.drawTexturedModalRect(this.guiLeft+68, this.guiTop+89-i, 176, 0, 16, i); - } + this.fluid.draw(); } } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFurnaceDouble.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFurnaceDouble.java index 9e97b5af5..1a4aea4dd 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFurnaceDouble.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFurnaceDouble.java @@ -28,6 +28,7 @@ public class GuiFurnaceDouble extends GuiContainer{ private static final ResourceLocation RES_LOC = AssetUtil.getGuiLocation("guiFurnaceDouble"); private final TileEntityFurnaceDouble tileFurnace; + private EnergyDisplay energy; public GuiFurnaceDouble(InventoryPlayer inventory, TileEntityBase tile){ super(new ContainerFurnaceDouble(inventory, tile)); @@ -39,10 +40,13 @@ public class GuiFurnaceDouble extends GuiContainer{ @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); - String text = this.tileFurnace.storage.getEnergyStored()+"/"+this.tileFurnace.storage.getMaxEnergyStored()+" RF"; - if(x >= this.guiLeft+28 && y >= this.guiTop+6 && x <= this.guiLeft+43 && y <= this.guiTop+88){ - this.drawHoveringText(Collections.singletonList(text), x, y); - } + this.energy.drawOverlay(x, y); + } + + @Override + public void initGui(){ + super.initGui(); + this.energy = new EnergyDisplay(this.guiLeft+27, this.guiTop+5, this.tileFurnace.storage); } @Override @@ -60,10 +64,6 @@ public class GuiFurnaceDouble extends GuiContainer{ this.mc.getTextureManager().bindTexture(RES_LOC); this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); - if(this.tileFurnace.storage.getEnergyStored() > 0){ - int i = this.tileFurnace.getEnergyScaled(83); - this.drawTexturedModalRect(this.guiLeft+28, this.guiTop+89-i, 176, 44, 16, i); - } if(this.tileFurnace.firstSmeltTime > 0){ int i = this.tileFurnace.getFirstTimeToScale(23); this.drawTexturedModalRect(this.guiLeft+51, this.guiTop+40, 176, 0, 24, i); @@ -72,5 +72,7 @@ public class GuiFurnaceDouble extends GuiContainer{ int i = this.tileFurnace.getSecondTimeToScale(23); this.drawTexturedModalRect(this.guiLeft+101, this.guiTop+40, 176, 22, 24, i); } + + this.energy.draw(); } } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiGrinder.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiGrinder.java index 5336aa460..09ab6115e 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiGrinder.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiGrinder.java @@ -30,6 +30,7 @@ public class GuiGrinder extends GuiContainer{ private static final ResourceLocation RES_LOC_DOUBLE = AssetUtil.getGuiLocation("guiGrinderDouble"); private final TileEntityGrinder tileGrinder; private final boolean isDouble; + private EnergyDisplay energy; public GuiGrinder(InventoryPlayer inventoryPlayer, TileEntityBase tile){ this(inventoryPlayer, tile, false); @@ -43,13 +44,16 @@ public class GuiGrinder extends GuiContainer{ this.ySize = 93+86; } + @Override + public void initGui(){ + super.initGui(); + this.energy = new EnergyDisplay(this.guiLeft+(this.isDouble ? 13 : 42), this.guiTop+5, this.tileGrinder.storage); + } + @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); - String text = this.tileGrinder.storage.getEnergyStored()+"/"+this.tileGrinder.storage.getMaxEnergyStored()+" RF"; - if((this.isDouble && x >= this.guiLeft+14 && y >= this.guiTop+6 && x <= this.guiLeft+29 && y <= this.guiTop+88) || (!this.isDouble && x >= this.guiLeft+43 && y >= this.guiTop+6 && x <= this.guiLeft+58 && y <= this.guiTop+88)){ - this.drawHoveringText(Collections.singletonList(text), x, y); - } + this.energy.drawOverlay(x, y); } @Override @@ -67,10 +71,6 @@ public class GuiGrinder extends GuiContainer{ this.mc.getTextureManager().bindTexture(this.isDouble ? RES_LOC_DOUBLE : RES_LOC); this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); - if(this.tileGrinder.storage.getEnergyStored() > 0){ - int i = this.tileGrinder.getEnergyScaled(83); - this.drawTexturedModalRect(this.guiLeft+(this.isDouble ? 14 : 43), this.guiTop+89-i, 176, (this.isDouble ? 44 : 23), 16, i); - } if(this.tileGrinder.firstCrushTime > 0){ int i = this.tileGrinder.getFirstTimeToScale(23); this.drawTexturedModalRect(this.guiLeft+(this.isDouble ? 51 : 80), this.guiTop+40, 176, 0, 24, i); @@ -81,6 +81,8 @@ public class GuiGrinder extends GuiContainer{ this.drawTexturedModalRect(this.guiLeft+101, this.guiTop+40, 176, 22, 24, i); } } + + this.energy.draw(); } public static class GuiGrinderDouble extends GuiGrinder{ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiOilGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiOilGenerator.java index 0a6cf6942..87312e248 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiOilGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiOilGenerator.java @@ -30,6 +30,9 @@ public class GuiOilGenerator extends GuiContainer{ private static final ResourceLocation RES_LOC = AssetUtil.getGuiLocation("guiOilGenerator"); private final TileEntityOilGenerator generator; + private EnergyDisplay energy; + private FluidDisplay fluid; + public GuiOilGenerator(InventoryPlayer inventory, TileEntityBase tile){ super(new ContainerOilGenerator(inventory, tile)); this.generator = (TileEntityOilGenerator)tile; @@ -37,17 +40,18 @@ public class GuiOilGenerator extends GuiContainer{ this.ySize = 93+86; } + @Override + public void initGui(){ + super.initGui(); + this.energy = new EnergyDisplay(this.guiLeft+42, this.guiTop+5, this.generator.storage); + this.fluid = new FluidDisplay(this.guiLeft+116, this.guiTop+5, this.generator.tank); + } + @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); - String text1 = this.generator.storage.getEnergyStored()+"/"+this.generator.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.generator.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 @@ -65,19 +69,12 @@ public class GuiOilGenerator extends GuiContainer{ this.mc.getTextureManager().bindTexture(RES_LOC); this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); - if(this.generator.storage.getEnergyStored() > 0){ - int i = this.generator.getEnergyScaled(83); - this.drawTexturedModalRect(this.guiLeft+43, this.guiTop+89-i, 176, 0, 16, i); - } - - if(this.generator.tank.getFluidAmount() > 0){ - int i = this.generator.getTankScaled(83); - this.drawTexturedModalRect(this.guiLeft+117, this.guiTop+89-i, 192, 0, 16, i); - } - if(this.generator.currentBurnTime > 0){ int i = this.generator.getBurningScaled(13); this.drawTexturedModalRect(this.guiLeft+72, this.guiTop+44+12-i, 176, 96-i, 14, i); } + + this.energy.draw(); + this.fluid.draw(); } } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiRepairer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiRepairer.java index 530df742b..526112be5 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiRepairer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiRepairer.java @@ -28,6 +28,7 @@ public class GuiRepairer extends GuiContainer{ private static final ResourceLocation RES_LOC = AssetUtil.getGuiLocation("guiRepairer"); private final TileEntityItemRepairer tileRepairer; + private EnergyDisplay energy; public GuiRepairer(InventoryPlayer inventory, TileEntityBase tile){ super(new ContainerRepairer(inventory, tile)); @@ -36,13 +37,16 @@ public class GuiRepairer extends GuiContainer{ this.ySize = 93+86; } + @Override + public void initGui(){ + super.initGui(); + this.energy = new EnergyDisplay(this.guiLeft+27, this.guiTop+5, this.tileRepairer.storage); + } + @Override public void drawScreen(int x, int y, float f){ super.drawScreen(x, y, f); - String text = this.tileRepairer.storage.getEnergyStored()+"/"+this.tileRepairer.storage.getMaxEnergyStored()+" RF"; - if(x >= this.guiLeft+28 && y >= this.guiTop+6 && x <= this.guiLeft+43 && y <= this.guiTop+88){ - this.drawHoveringText(Collections.singletonList(text), x, y); - } + this.energy.drawOverlay(x, y); } @Override @@ -60,13 +64,11 @@ public class GuiRepairer extends GuiContainer{ this.mc.getTextureManager().bindTexture(RES_LOC); this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); - if(this.tileRepairer.storage.getEnergyStored() > 0){ - int i = this.tileRepairer.getEnergyScaled(83); - this.drawTexturedModalRect(this.guiLeft+28, this.guiTop+89-i, 176, 44, 16, i); - } if(TileEntityItemRepairer.canBeRepaired(this.tileRepairer.slots[TileEntityItemRepairer.SLOT_INPUT])){ int i = this.tileRepairer.getItemDamageToScale(22); this.drawTexturedModalRect(this.guiLeft+73, this.guiTop+52, 176, 28, i, 16); } + + this.energy.draw(); } } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/IEnergyDisplay.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/IEnergyDisplay.java index 4c3c22201..377845621 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/IEnergyDisplay.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/IEnergyDisplay.java @@ -10,16 +10,14 @@ package de.ellpeck.actuallyadditions.mod.tile; +import cofh.api.energy.EnergyStorage; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public interface IEnergyDisplay{ @SideOnly(Side.CLIENT) - int getEnergy(); - - @SideOnly(Side.CLIENT) - int getMaxEnergy(); + EnergyStorage getEnergyStorage(); @SideOnly(Side.CLIENT) boolean needsHoldShift(); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java index b0ddeb168..236e973d8 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java @@ -202,9 +202,8 @@ public class TileEntityAtomicReconstructor extends TileEntityInventoryBase imple } @Override - @SideOnly(Side.CLIENT) - public int getMaxEnergy(){ - return this.storage.getMaxEnergyStored(); + public EnergyStorage getEnergyStorage(){ + return this.storage; } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDisplayStand.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDisplayStand.java index b183faa55..06f244ca4 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDisplayStand.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityDisplayStand.java @@ -104,13 +104,8 @@ public class TileEntityDisplayStand extends TileEntityInventoryBase implements I } @Override - public int getEnergy(){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergy(){ - return this.storage.getMaxEnergyStored(); + public EnergyStorage getEnergyStorage(){ + return this.storage; } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFireworkBox.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFireworkBox.java index 923860e90..853971bec 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFireworkBox.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFireworkBox.java @@ -166,14 +166,8 @@ public class TileEntityFireworkBox extends TileEntityBase implements IEnergyRece } @Override - public int getEnergy(){ - return this.storage.getEnergyStored(); - } - - @Override - @SideOnly(Side.CLIENT) - public int getMaxEnergy(){ - return this.storage.getMaxEnergyStored(); + public EnergyStorage getEnergyStorage(){ + return this.storage; } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java index acd406253..e29b235dd 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFurnaceSolar.java @@ -90,14 +90,8 @@ public class TileEntityFurnaceSolar extends TileEntityBase implements IEnergyPro } @Override - public int getEnergy(){ - return this.storage.getEnergyStored(); - } - - @Override - @SideOnly(Side.CLIENT) - public int getMaxEnergy(){ - return this.storage.getMaxEnergyStored(); + public EnergyStorage getEnergyStorage(){ + return this.storage; } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java index 4a3711cee..d67a331eb 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityHeatCollector.java @@ -101,16 +101,9 @@ public class TileEntityHeatCollector extends TileEntityBase implements IEnergyPr } @Override - public int getEnergy(){ - return this.storage.getEnergyStored(); + public EnergyStorage getEnergyStorage(){ + return this.storage; } - - @Override - @SideOnly(Side.CLIENT) - public int getMaxEnergy(){ - return this.storage.getMaxEnergyStored(); - } - @Override public boolean needsHoldShift(){ return false; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java index 5a48e48bf..97988a17c 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLavaFactoryController.java @@ -122,14 +122,8 @@ public class TileEntityLavaFactoryController extends TileEntityBase implements I } @Override - public int getEnergy(){ - return this.storage.getEnergyStored(); - } - - @Override - @SideOnly(Side.CLIENT) - public int getMaxEnergy(){ - return this.storage.getMaxEnergyStored(); + public EnergyStorage getEnergyStorage(){ + return this.storage; } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java index 21ec7ba3a..208cb3e0c 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLeafGenerator.java @@ -123,14 +123,8 @@ public class TileEntityLeafGenerator extends TileEntityBase implements IEnergyPr } @Override - public int getEnergy(){ - return this.storage.getEnergyStored(); - } - - @Override - @SideOnly(Side.CLIENT) - public int getMaxEnergy(){ - return this.storage.getMaxEnergyStored(); + public EnergyStorage getEnergyStorage(){ + return this.storage; } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityMiner.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityMiner.java index a2bd10001..80a95e1d8 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityMiner.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityMiner.java @@ -234,14 +234,8 @@ public class TileEntityMiner extends TileEntityInventoryBase implements IEnergyR } @Override - public int getEnergy(){ - return this.storage.getEnergyStored(); - } - - @Override - @SideOnly(Side.CLIENT) - public int getMaxEnergy(){ - return this.storage.getMaxEnergyStored(); + public EnergyStorage getEnergyStorage(){ + return this.storage; } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPlayerInterface.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPlayerInterface.java index df88393cc..0da9057ad 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPlayerInterface.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPlayerInterface.java @@ -216,13 +216,8 @@ public class TileEntityPlayerInterface extends TileEntityInventoryBase implement } @Override - public int getEnergy(){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergy(){ - return this.storage.getMaxEnergyStored(); + public EnergyStorage getEnergyStorage(){ + return this.storage; } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityShockSuppressor.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityShockSuppressor.java index b45203bfa..37d95aaf2 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityShockSuppressor.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityShockSuppressor.java @@ -98,13 +98,8 @@ public class TileEntityShockSuppressor extends TileEntityBase implements IEnergy } @Override - public int getEnergy(){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergy(){ - return this.storage.getMaxEnergyStored(); + public EnergyStorage getEnergyStorage(){ + return this.storage; } @Override diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiCoalGenerator.png b/src/main/resources/assets/actuallyadditions/textures/gui/guiCoalGenerator.png index 7ee6c1cbc5a2b4de07126afd4727c33af624bcf1..c900e4925b0f4ece6bcf9331c2849dfa2dc9aef0 100644 GIT binary patch literal 1753 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6&2?&#~tz_78O`%fY(kk47* z5n0T@z_${F89xfKmjVSPN?apKg7ec#$`gxH8440J^GfvcQcDy}^bGVYbByc!7#P^X zJzX3_D&pSWy_hQ{);@!qFbtM2%F74W`vn|ZaMRI)0C-QZ90`a-@B2gQ`x zPGywo*gt*xDDLYQy|-V#nuo z+biR};`x`KpPz596>Wid;xcZ&l?d!cVhVMYvoLS|wrv>el zX#mMYj?-~*AFdNkere&W~l3p zniv5ImffW`cP=y6{lDct|MMG|f1l=AGVJ$T>!AY<#8Y#vS*Z*GJFWX>yN3Ndz!Ogb?4EO$()c<|__o1DY-M;^t4?aG= zeS7DM$2aSX>kfaJQ)a<%eEz$B_6Ie8|9<~^{=NOay>q*(s(=__;db;|#taD0e0ss?D8TtSK literal 2036 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5Fo{p?&#~tz_78O`%fY(0|PTd zfKP}kP~6;=b!%m-s7G4j&Yi}u{Fc>pC)Aj4{j^#Uf;)A&GF%LqwjkzW{Cp~ zIc9ty4HC=`3V9M3Kq71j?--d2-p&T`8qOXA8<5Ok)5i#suQ5CD`g~9N-!C^9j$1R8 zzMFpBgw5if;11rndGGX>863FCv}OCw*O&iZ6=CNwuwiGf*vqSC`Ao1PII%0aPEh4Q zZQ`88Y!xdFP6qZLIDJ{=_-KXNFIRnnu$9rwq(X>hX z|K^VxrU&}(^XJGW%qlwg+5zik_RzqH*|a!|58O91}0i3tygZv%X%we_2A8 z=oRyFwwNcuiK`8FUH)3ebZU0|Ja5)z5eIb{!asb~e7@xU>FfKJ<)0S3p~i5Jcl+-D zWzsRH5)%qpcXJ2$dGQvkbbofgR{2Y7#;;%E4zm09c=3GrXKoZ3bMPHgPA_AD4%>l^ m5)8+a7-YIf9;dx%??1+u*SlxTWeTzZ6~LaZelF{r5}E*^;+rD? diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiCoffeeMachine.png b/src/main/resources/assets/actuallyadditions/textures/gui/guiCoffeeMachine.png index 71dd7595eed4d5134289b2aac6a7d8a294f4e095..83261bfa9a2baa968372d9d977e09679c3ef9d79 100644 GIT binary patch literal 2916 zcmd5;cT`hZ9)1BgJIIO5$|@KXT+v`93?!kbpbkZ3z=8w1!2r@i=tU3+Ni3rx#0(bt z5+UQDf)ptkFqB!)h?Ecnf|TG8ATTO5^g#B8jHr9gp0oSk=A4|DynElf-|zc=_xo<# z2?ra*TI5;?f)KVxEl)uZ4E%&aU%|n}CG?>;xUBIxY=0PniWsU=_dkLED#1t3hC$G} zJoy*a^YHu?a8onf>P)y}kau{bd#D!_?Cu*Ft{>KEuSg@iN_G`RXUWp-yWk*5TZ{eS*M%lY_WDE%^mB(ByO62dqquK-7inSRJ^NUJbN!4 z7wfP;;petOWUpnS9}D*W+ehx$ia4Xm(Pv}%%{fep*=GDud!%IULH(?)a_99^wY$-e zQ%6)i?8`Fxghshl#bbBig=!D3eNQ-T#De*2A>Ouqgptd6=xwdsi9^;r;{VL^z0SXj zbc#CJlmIUbz|b67_RQDoSi7)!li6vT5N_Q>DCZ;8GlN!GBVV4Og^UPI`$z8gG};@9P`91a4@vk zovT&$RKO&4;w+xs=UhJFcN!La&g4^Oo%3jET$4q#w6)G8mVm4=U*WEv(rPSByLwh6 ziSmUOPmlmnrCyWH31M;1G0{&rnS=tYO7V-4sa9wvtE~`F)=+n3v5zWS@)Qn{XSBc6 zrYr$&VEm;v0YHerFSY41MAr0tsZFUDhE@)=8SHYoO_hp+YPm68JtKsgv6pbt-#|&Mc;Pn1`$GftZ37_|s^ywR#;ICT z)US9e#zaubGvea|UF4b4#EjfndVjM&-UNHyy6ytv*&oUM@Qc);>e1th*zP$C{j zdpZ0|=00RiIbFIm+sDj6SC3ZC3S;I5?i|l-Ujv$>9LKT@qnA@=-uN(P?^`T?VE37m z=LeG+Jh3R*H^(#q$QNFO9{}xdXofS4QI||uYel_*lDL-Y!?Ige^IRRO^d7k<&y-g+ zgU8Yyz7sR4lvAwCi~2aq4YL{4*KticjOSb;JcLY^4y6ZazvdFbYq{sIQZC{3Hg*Bh z_KJ=E?(cVpJC<6ha$fWzWqxx*-4xGssK?a1DXIhP7&ZxVB~LuBMORBh%TzooRq8|& zW8>XH)d#C^xFu)T*y)sl>g9z3REtBHCPQOOXkyuSdrN>#oo)6h>Ga;t)CIsTg_5L6 zQ$Ez}Ga_)M?o$)cdyFF;%E*HDzH`s_U+$bcw^@*WXn&J?iCr7C4UeIDWlqH|8ID!U zmTTojIxifdgRMhZ7|EF&udQWREMF{}zh>NfJ@JH?s zCr`(Tleu*=6-(V416(Z4F=Uje6sw(>f?qzc{z5a;ruZeoV|!JloQ?=z^fQ=C`k>N> zOk<#19vg@24fOU@ALy;}b8cO#} z?6W!`1m%C29PDF{(LTw#7oJXOc@RUPcyHSLsQjD(}Ku zj6>TDhcwdOAqNyLLYrig_OPX}#`g7ygEh(`bR_IK{GC3x?ERWFqH)|Ri zQ(`#1jDg6tVnaWX_5)Y~sYA<`njbVHT(clP$5A(NURlyi($7bEi)EXop5AhPZI;yL0b_>hYnHx$+)6bh>s`wQD4c9~!cP4&Bi>P%dI@n2nRs{Ti0%6B(3hX%Zhg12DXbKSp4{$A_+dijslpI`lQk59ZO!PXBR^XGT?v z4X<}M67o~PF^SFMKD#u?WC%aq%dMj>&^N~XB*VTLz7Vu$b#Cs!*isnbpF<2Hly_2| z9y@a4=v8FB@%6%G8w}L3l2f-s`q_|2R`uN`omCVwcl>ap!v%BR^w;7CD~ALSzLhB4 zuU&Q4n)J%=7fcK46@;(GUipgOehkwJ!TTZ@r;WIhg7m=tN{|*BilpY-bATmI zfh<;>Wo9=b+z5*2tc@px*|5g=6;;}YQ9`h1qk!9kutfIO#l*u6(2A&KrC$u_++$S=~Jf$t!!uj literal 3686 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 literal 2077 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6&2?&#~tz_78O`%fY(kk47* z5n0T@z_$^E8RzuK-vSCsl(rIsj|=o#pl{pm@*&%nSw z+tbA{q$2L^?XweQjtjCT%y80A;EZv+z<$Hgxuj9CAZ2Rro2&d^7lp(I&w0zZU;j~T z!HLdOXX_kgzr1YTb5egg|Hp6NzFqmSs;^eum3+m zXvO@xtO}pEAMW=po*1tjzpv)!%*Xk6>R&xyVO#~0*sxT2()C`Z1UC>%>gng_=lP%C z-kx8$%|?#(K+mm2Z+DYZ9~u9D{QaIk^=Wyk9#@0p*2B~KGDKJl-fJ+VUEzziS`;X9 zVDDmv8G+V0FFV`<8NT^3p<-LEq_{$JGc@9(Q`=1jh~OA79x!YwZs z@0&FBzU`-f2W=)DzWZ#+_H}NI28+vXToUYE#9(FpeBcD0E#`V4zyI&IZyu-q*F0JL zVFox3x|m*|`hh+Ir`*L3{AT~WV)t3k{8&UPS^S^-!9^MQ++W{U-?UWUTWSi6#Jic^A`;auEjOtae@5iyB-H?gcWOSs}Zv#AUHY zL$y01yT6mAuZFm-4Cf4OPM+`oFacVQHeCPy@Az-;&w4<2#_zAI{r&Orap%aNu`^H4 z=X$XI-2Nr~zr4;F)>qrx_oaKXtE``&ZuxHO`7p*e1?#?AUV3<9{p56uy5~D?Kdu1f zzT-XncNedHd%iwk;_j#R|DU`4TCskKJ>vt_rC?(YXnVrIsj|=o#o)<`~!cF)*+# z^>lFzsfc@fBd|#3BrmJOT`%>ED@*iay^l%caVJeVe01)ylIF>hANP6ic5c^LQ?|d> zaewMe{g>b0-%obh|6=A;ck{@L*FQ<*dc6>p{k;FrudlDYV<062%~| z4@Ift%ynUZeW3AD`ceJaNArgC&lXBwjb$5NJFkCXarNl@8IKw5C->W0FkEjZ&CBV} zJ{rtF`?zqO-R@^U_N9N?$PTyYywCB&F-IA1h$r`fQb&mR|1%a0--QPYZ_g_Rnfu?@ z{F=#k;OoNhk~yy)&7T?mkN3e%8hy!uRpTF>Yx2b30Z7LY8Tt=yL#PDm^~rB$5IWF z(8Hfq)T~}#tA=9DnU6oh;(z-fJ2-ykYW)R1lX-3iOa^2NKD+l^xt!z vAFn6gwLEY#jQ{OAP|Y%^!H=H&`~O&1EIR#-_lwY7kW)Qf{an^LB{Ts5f^tkU literal 1962 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5Fo{p?&#~tz_78O`%fY(0|PTd zfKP}kP~6D;b)~j!99##!d#nE{_X}kFrv1xW8dLR`xi@wj9N6@#lIOs^R>oTw z7}yLL++`Z~av!@a!N6}Im{9*`YKQ-p#4Dm3j#)e9W-u^IG${9hU9^qofbgBpUt1SW zVaN%;;+n|7hG_uMJrWDv9|0Pz$HK8wx#S^N#OFEXEj1h)ViOxuf4g}!Z1ykZR%G0# zu5;ku>G%t&tS`7fJ(6Fk-;0Kd9L8Vj+eIT8BiAN5f95}a9m%w3-})V29)EoQj-&UGXa31` z^$zZqd8NiOxeeALFXYb$TKvELu;RM$_x&^UH?cgZ`B(q$!TM|FqMYPIqSK+x_l-=iGbl zxifolZ{Qc^%WReb0ATLt>$M*MQ1BxPSYiq`+0dD zJP|S4i%D7GXJr~mN3T80OET+!y!N7-Y+$9JIk=MU^RbftY#YA1>Y|#XJrYfG>+0y( zVn%MqV3vkV-P z9Syq{GKZf=kH1lft3yG}yly6xVgTqIr|h(MV9WTFPypK2v+*8KQ@F~SC{f&HXKLlb zOdXdWz4M#j?u%nkVLN%BFFG+j^0Jz$&ZU4}k#F}W8sG!3F$3+_-Q1ia1dYd97%YKq zVz8}UH=_>9Wn}H^9eQ+3i4D#PnnHJG2`o>@poZd990(RdyqQMwFAtc1qN{x%q+zc32kB-s5_#w+Cj1Cp{{JWB!Z7s)d58wnJ0&P zZ?-kGY^JYaVFq5^5dzb8YPmv}uA3Lkv`KKoFJVOz^;_BT6>}ypvRE=Rp(P6{E1Ca@ z%>{<>;f-U04;5NCgUn8+QKiu7>q$e+{;>vT(V)B-J<=g*Cal;2LGEwK!vhUOb9kRK z{oTc=FlGXx1}tB`YRJ%_K?V$A@5uJh>n?fD0MFANoamcvy)t0&Zvw{pn{^FOMZ3KrdOcj_Tn|&nSUe`0nvvJ7^GWW}%EEz6HWc_N zD^W?NqBOrkaBuIF_hnh)9`VZ-TDFir+*|Ob5F8d!M9gMaJ#%?uc{e*viRJHSa?yG5 z1c|B{&>dEZwh0LLVcZJTP=}N1^-GE_6v!w|?eESKiCnbWi9vqb{g%yRF1CHM=x}#y zqEL0?)Z91=)XyGNf)VWbvL9eO7CMHdXHdV&LFYMrrgYa?jW3UMe+M|L8S3U&y{WGj z0Hq1ACt`^YRO_E4!>tP8IIQ@i{-pW715c7`fj5r?B)(nTmv~2OV#HP1Ygey;Ep4qP zKVc?An$O?fqG&t>WKbh`vJYI#)?zWXPQS!Y*_4)t*)>gye47qCum#S1Y5aw2btmUK z)eLQhM%C30o4rL6YKP#F-K`%czh@;$6ef-7>IiLy{bPiOR{@bL=bfM`eV?ce*)?LP zDZE%5VZ|_x115PZkfdl*4T`1LPE^bE^Ak*h?cAX$AJLE=tNp;A`^d1BhcN{r2|~)qGc= zUW(LVEPPdw>JpLnBchPKQt!%w6eX%uQZ|A}l89*9Q%G<2=Wviv&DCHv20>QDk!OW$ zqaes-lLStYNIfZGe~I$+zvkXr7iQ5*NhA2*PR($h;>4ZDz3>p~pZ!?9cI_89z3-fD^S z=t;-lK%<#{yyeq|D#xV&bS=(-i@Mr*5pqL>L+=d;(YNQQVnxm zVm#_-jFJ@e>_STO!KadnnbGG0@vX|^bk+mG_dCXQCA-7~FWSH{t&U?K?J5a2|KEHJ{~Y{R*F#9rQ3wIg6-#9+ SJe-AZ)9~{S^s3nvdHPR2S2&OW 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)_$Tg3hlvgM;x0TF{&TPXG%??G`|RyH9xZ?WZGZpv zb=jY0*Z=&xc+#z3-{a@~IRD9%rDkF-<9_Q0-8tMp?lQ)wL?3w1_e1G6Q(gH1@ta~F lb~6LZnL!JFT)ubjA5*}*#5|>~dfp&sdb;|#taD0e0sx>5HZTAH 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?t__LxKoSPB9_*cUUpgoWm)!f`?HO5wm6^02p+O0W)7mm&Dxj9CUe&8?`^j7|+EDj$^%1r~=Nf~?iq&;c;#mh-yBuXZ^fC<3N6^u1e zoAY)U2X5sAH_!XJLmCx#=b$u|xh%sG-xwDu3CZz?vlq?TyhSq7a@e%CzKoFCK5{k? zXG{3jG#_@3Yjqc3x1Q||5vs_$18D*zpGhXQrdukn}>}1v-kGZ6I#RA3oSvo zAzG$J!hm;fm$2mpw2N-USncvNKo=;$l$0R+1s*4WSHK1{c2VJ`cn+j6ONy3j_%>~{DO5Gq zY)r}P@Peo>FVgR3chn>KC}xb9h& z-c0w_(sCP({L0<0z3SdH1-Ftsk@C`3%jd7qIyZ1QY`i9&99C32nYB7uBMmul4$C?% zb=-JWiGm=qe@_p8XeAi8>kl+yS?_Fj^`bP7pZ|8ztf(x*jvf#wZN<1D*(Yx8Er^~x z;kUz_m$}70tX5+3T4@L$#1O?-V&VQW3eYqvDo{~|rCSVQDj7Fqvz+R}EZ)DWVTm(` zi-1)+A}<^SixqLT5zmwak-jg5i4#4V&SU^bR}m9RTuo#isLB#k0>E)a%B9Xgh=Xr? zVO)9+8#(sRk=yEULr>0F8-#CunD421Sow4~NgNw7QJJr$=xkoUHaQ19!ddzUVd?U2 zYM>}Se$-@t**fK`z=~z9E3C3RXs>+H&_K1@niVQkEePkS7vLj9Lmm3o0_UWaht(Cl z5)XvEjx9r(d(oq{@(fv@XaM)Bwt2nqTJDLvfn`l}jcFUi528IMk!n8g z&lT(Qm(%wm$%LLVRAlEsRM|C#7&)&_EDECXn7A4_HH5dq&_TFgR+y8@RU3dA!lkL- zrIkyQVCB;~X@y?8|V)5?0Xo)7G@gUh%l zh^h^h&3^QKNCiF;hFC~ur-X8mym0uAx}pp7*z`BWaQ3km)-;;QI;mM^Jz0RHPl0tjrmp&{~m-{;TfjLFn zvDb%;8FvR|nFb%g%g*X{?IWX;FsV*V;9N*!dD$XJNb@OQ^av<-wfhwFzl%AgE%M1u zK8_8$>hJT86O7xr<4;-fZ8teepK-?sqWvm#z$OI`qJS6W=!i^8u{IYVAE6UAY5jkx z0GaKj;&ksJbNX6)UXx&5wJ`OP()K%eI^aIZ7WND>Y(mQkVo{xT!-!zFrWCGKWqJvkU`vN5se9z#rU?#T@KRzVcRBNND$x|F_e1KyUhg d^WoZ_56cx1d#HSScBO}y5zSmvw|eK7e*kk&60ZON literal 2190 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 AYybcN literal 2423 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5Fo{p?&#~tz_78O`%fY(0|PTd zfKP}kNL-hJ#f-t++?>smfjxwQvxq?>S|~I$w5+UbX+_0B1%%3- z9+AZi41AkFn9lFzsfc?!=V8=s3lUafGt;}V2Btap{|81!%ANLG(5J%WVwwI==DAl^&G9bjKNsJ{ ziI-hxO#jRtr}Vw?Wk%b>q_F($ziVZ4q-WfU<-GAe*&yc3r@ZTz{=c8@%e?XS)P~yY zuFO2*#VQK_I`5x5KR=pnnWg7}fBSwHO7I%Q_&jDh^!5F&!x;?^lloZyl%5K%*}Z5si9RAvaXrO;>{Id&v{K`LzU1P&4jNi5ntps*g*I?T0m#ki;9SDNMPK>bnM!7plPiQ z>UC378yh!2S$pOVqX}R9PG-B=cR&u__eJ@`&6NAh8Fm73K!tl7J{q4%R7?+hcAq8F z{vMm8-ZLd8IXR0PDra}iVBk68+}6FbrJ+6Xgu#Y0yXG`xBv>Wwn8D3aQ6X3NHJx`& zT5N!W!2!m@M{8mnc5FI)VZQN(d0!P7|Ic&SIg6jWV=nLC$DfxqE{-%;Re1B};q?!9 z*v)uk&hOG?T)6S$t#AFanflW1PHU*+2shudZ7(yBGo|4|v^`IMZT&O34f9H)nGSuQ zU6E-1+kReYGSjhVMf{Xo_9f)v&SAbc%6;W78)?-Zu<>@)~Ieg%(seamzDG zbp)JhaTWAhZc@mgkCX>KB^~X+`v0Px+@3PpwNsw_PKOeW{=1roE z3;FrFZpPj0X*hp~X`K(l{%g@p)^oyDd$ia49jG|3)m$6A^AeNJ0Va#3-xs`Rd77ou zu!Vtp0~G!8i)dg4qJlgS2}KUtOh5kjxHH!OFL$z7xc&cy=QfiYPEB<@FrP!+=YHqP z-m0?4Q|He-_xtw4oO_BAKvQc&jN^Vt-uwUiVa>fyn|{kM?s@-J*iQD#+y(tv+uoUn zbJnVBgeNnm7+)xFDl!#wFk>E2fh9U(4yTeBhcBhEe*J%D*=nDonu(QZpo-4Z)z4*} HQ$iB}TK7Rr diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiInventory.png b/src/main/resources/assets/actuallyadditions/textures/gui/guiInventory.png index 78f0e7a1a38463d2c491aa70493ac2210109a0db..7cd1d705c12c47c77effab7f8d2985e0759b4f2d 100644 GIT binary patch literal 5023 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 N&RaM)ceZrv-vN!xVqX9N literal 5105 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