From 57ad0b03193169080048747a4c9973c1672d25a3 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Wed, 23 Mar 2016 14:33:49 +0100 Subject: [PATCH] Display active machines in controller. --- .../refinedstorage/gui/GuiController.java | 67 +++++++++++++++++- src/main/java/refinedstorage/gui/GuiGrid.java | 19 ----- .../java/refinedstorage/gui/Scrollbar.java | 15 ++++ .../refinedstorage/tile/TileController.java | 24 +++++++ .../refinedstorage/tile/TileDetector.java | 2 +- .../java/refinedstorage/tile/TileGrid.java | 2 +- .../refinedstorage/tile/TileInterface.java | 2 +- .../java/refinedstorage/tile/TileStorage.java | 2 +- .../tile/TileWirelessTransmitter.java | 2 +- .../assets/refinedstorage/lang/en_US.lang | 1 + .../textures/gui/controller.png | Bin 2186 -> 2245 bytes 11 files changed, 109 insertions(+), 27 deletions(-) diff --git a/src/main/java/refinedstorage/gui/GuiController.java b/src/main/java/refinedstorage/gui/GuiController.java index f3101449d..bdb61faa3 100644 --- a/src/main/java/refinedstorage/gui/GuiController.java +++ b/src/main/java/refinedstorage/gui/GuiController.java @@ -1,8 +1,13 @@ package refinedstorage.gui; +import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.item.ItemStack; import refinedstorage.container.ContainerController; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.tile.TileController; +import refinedstorage.tile.TileMachine; public class GuiController extends GuiBase { @@ -11,7 +16,9 @@ public class GuiController extends GuiBase private int barX = 8; private int barY = 20; private int barWidth = 16; - private int barHeight = 58; + private int barHeight = 59; + + private Scrollbar scrollbar = new Scrollbar(157, 20, 12, 59); public GuiController(ContainerController container, TileController controller) { @@ -29,6 +36,7 @@ public class GuiController extends GuiBase @Override public void update(int x, int y) { + scrollbar.setCanScroll(getRows() > getVisibleRows()); } @Override @@ -41,19 +49,72 @@ public class GuiController extends GuiBase int barHeightNew = (int) ((float) controller.getEnergyStored(null) / (float) controller.getMaxEnergyStored(null) * (float) barHeight); drawTexture(x + barX, y + barY + barHeight - barHeightNew, 178, 0 + (barHeight - barHeightNew), barWidth, barHeightNew); + + scrollbar.draw(this); } @Override public void drawForeground(int mouseX, int mouseY) { + scrollbar.update(this, mouseX, mouseY); + drawString(7, 7, t("gui.refinedstorage:controller." + controller.getType().getId())); drawString(7, 87, t("container.inventory")); - drawString(31, 20, t("misc.refinedstorage:energy_usage", controller.getEnergyUsage())); + int x = 33; + int y = 26; + + int slot = getOffset() * 2; + + RenderHelper.enableGUIStandardItemLighting(); + + for (int i = 0; i < 4; ++i) + { + if (slot < controller.getMachines().size()) + { + TileMachine machine = controller.getMachines().get(slot); + IBlockState machineState = machine.getWorld().getBlockState(machine.getPos()); + Block machineBlock = machineState.getBlock(); + + ItemStack machineStack = new ItemStack(machineBlock, 1, machineBlock.getMetaFromState(machineState)); + + drawItem(x, y, machineStack); + drawString(x + 21, y + 5, t("misc.refinedstorage:energy_usage_minimal", machine.getEnergyUsage())); + } + + if (i == 1) + { + x = 33; + y += 30; + } + else + { + x += 60; + } + + slot++; + } if (inBounds(barX, barY, barWidth, barHeight, mouseX, mouseY)) { - drawTooltip(mouseX, mouseY, t("misc.refinedstorage:energy_stored", controller.getEnergyStored(null), controller.getMaxEnergyStored(null))); + drawTooltip(mouseX, mouseY, t("misc.refinedstorage:energy_usage", controller.getEnergyUsage()) + "\n" + t("misc.refinedstorage:energy_stored", controller.getEnergyStored(null), controller.getMaxEnergyStored(null))); } } + + public int getOffset() + { + return (int) (scrollbar.getCurrentScroll() / 59f * (float) getRows()); + } + + private int getRows() + { + int max = (int) Math.ceil((float) controller.getMachines().size() / (float) 2); + + return max < 0 ? 0 : max; + } + + private int getVisibleRows() + { + return 2; + } } diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index 15c1b2773..27b6b5c09 100644 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -12,7 +12,6 @@ import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.init.SoundEvents; import net.minecraft.inventory.Slot; -import org.lwjgl.input.Mouse; import refinedstorage.RefinedStorage; import refinedstorage.block.EnumGridType; import refinedstorage.container.ContainerGrid; @@ -66,24 +65,6 @@ public class GuiGrid extends GuiBase public void update(int x, int y) { scrollbar.setCanScroll(getRows() > getVisibleRows()); - - if (scrollbar.canScroll()) - { - int wheel = Mouse.getDWheel(); - - wheel = Math.max(Math.min(-wheel, 1), -1); - - float delta = 20; - - if (wheel == -1) - { - scrollbar.setCurrentScroll(scrollbar.getCurrentScroll() - delta); - } - else if (wheel == 1) - { - scrollbar.setCurrentScroll(scrollbar.getCurrentScroll() + delta); - } - } } public int getOffset() diff --git a/src/main/java/refinedstorage/gui/Scrollbar.java b/src/main/java/refinedstorage/gui/Scrollbar.java index 694f43513..6a1fe734c 100644 --- a/src/main/java/refinedstorage/gui/Scrollbar.java +++ b/src/main/java/refinedstorage/gui/Scrollbar.java @@ -73,6 +73,21 @@ public class Scrollbar } else { + int wheel = Mouse.getDWheel(); + + wheel = Math.max(Math.min(-wheel, 1), -1); + + float delta = 15; + + if (wheel == -1) + { + setCurrentScroll(currentScroll - delta); + } + else if (wheel == 1) + { + setCurrentScroll(currentScroll + delta); + } + boolean down = Mouse.isButtonDown(0); if (!wasClicking && down && gui.inBounds(x, y, scrollbarWidth, scrollbarHeight, mouseX, mouseY)) diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index 4e41d41fd..c7e297c48 100644 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -413,6 +413,21 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor { items.add(new StorageItem(buf)); } + + machines.clear(); + + size = buf.readInt(); + + for (int i = 0; i < size; ++i) + { + TileEntity tile = worldObj.getTileEntity(new BlockPos(buf.readInt(), buf.readInt(), buf.readInt())); + + if (tile instanceof TileMachine) + { + machines.add((TileMachine) tile); + } + } + } @Override @@ -429,5 +444,14 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor { item.toBytes(buf, items.indexOf(item)); } + + buf.writeInt(machines.size()); + + for (TileMachine machine : machines) + { + buf.writeInt(machine.getPos().getX()); + buf.writeInt(machine.getPos().getY()); + buf.writeInt(machine.getPos().getZ()); + } } } diff --git a/src/main/java/refinedstorage/tile/TileDetector.java b/src/main/java/refinedstorage/tile/TileDetector.java index 9f8378aaa..316563289 100644 --- a/src/main/java/refinedstorage/tile/TileDetector.java +++ b/src/main/java/refinedstorage/tile/TileDetector.java @@ -44,7 +44,7 @@ public class TileDetector extends TileMachine implements ICompareSetting @Override public int getEnergyUsage() { - return 4; + return 3; } @Override diff --git a/src/main/java/refinedstorage/tile/TileGrid.java b/src/main/java/refinedstorage/tile/TileGrid.java index cef6943b2..7b67098eb 100644 --- a/src/main/java/refinedstorage/tile/TileGrid.java +++ b/src/main/java/refinedstorage/tile/TileGrid.java @@ -52,7 +52,7 @@ public class TileGrid extends TileMachine @Override public int getEnergyUsage() { - return 5; + return 4; } @Override diff --git a/src/main/java/refinedstorage/tile/TileInterface.java b/src/main/java/refinedstorage/tile/TileInterface.java index 76335569e..bf0158de2 100644 --- a/src/main/java/refinedstorage/tile/TileInterface.java +++ b/src/main/java/refinedstorage/tile/TileInterface.java @@ -25,7 +25,7 @@ public class TileInterface extends TileMachine implements ICompareSetting, ISide @Override public int getEnergyUsage() { - return 5; + return 4; } @Override diff --git a/src/main/java/refinedstorage/tile/TileStorage.java b/src/main/java/refinedstorage/tile/TileStorage.java index 356095c36..771dc0487 100644 --- a/src/main/java/refinedstorage/tile/TileStorage.java +++ b/src/main/java/refinedstorage/tile/TileStorage.java @@ -45,7 +45,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora @Override public int getEnergyUsage() { - return 1; + return 3; } @Override diff --git a/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java b/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java index e910d24ec..55e0ced12 100644 --- a/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java +++ b/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java @@ -26,7 +26,7 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory @Override public int getEnergyUsage() { - return 4; + return 3; } @Override diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index 0299037a1..2d4b9a3fd 100644 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -21,6 +21,7 @@ gui.refinedstorage:interface.export.explanation.2=Incr. or decr. a slot: left/ r misc.refinedstorage:energy_stored=%d / %d RF misc.refinedstorage:energy_usage=Usage: %d RF/t +misc.refinedstorage:energy_usage_minimal=%d RF/t misc.refinedstorage:storage.stored=Stored: %d misc.refinedstorage:storage.stored_capacity=Stored: %d / %d diff --git a/src/main/resources/assets/refinedstorage/textures/gui/controller.png b/src/main/resources/assets/refinedstorage/textures/gui/controller.png index 2343c40fce015b416a061b1f0024314a4a7f913a..00fa5e0e0510409d9109da11e68238dfc4515dcb 100644 GIT binary patch literal 2245 zcmeHIdr*{B6h9x!TVS;zLKqE;M>e<`5DX%+yn+pOC4q@03>bMPuh^v}o{Q8vN<>N1 zfJmW1zzi=H6j(Nyp@Ar2Rsxje**FlIOOzPM<2!wim}#cz-~P!n_nUj~dHl}roVoYA zXG25*rp8vr0AMNz^g9kfP)h;~In;EjDI$!TbQ8UW-T+t1c5KG#0dOEBILx2YyScfA zhliUXSki-d0f|FM96>mOL=ZwGLNY=Q!V^OvO@Q15qy?ZgpbelMpgo`?pfjL5AfLbh z0!4t~fF}Us08as?07?LJ;T#ebBs3u0AfXefLEvcu&jEf)U?q?>fR_mT8n6Md74SNc zD(FWTK^R4tC4u}F$nODf6XYGhy97?deFX9zkc&WSsX?qz+us5I09=PH5{in7N=i!l z`}-#+ClQe<^Qk=Tz&|^1IO*&neNm*xMWNI=`9BMUt{T`;9Wu%Y6iWcil=Mdotc|)- zN&~4t=x;EiYx&GePG<9pTuNmr^^cH-rYA^cv6=CZ5u2PQ<)y_-ZCrSVc?=JEDWgFS@$jgzsVdhog^;@#*9z|t7 z*Zi+OhDly?Q?TAqv*hx)J@S^c5bp9|(~nAOr+_aN?E)uXx%0l%^S5@+r36;lI_s`E z)(X$>)|sOH6(IA`*jDcAo&LmCkYKnRqfv=hl}t>uFJo9(xaY|@-u#eJ|I9+gvrujn zlvXEir}gvMIdNKCU#hj^uU?sYxT3|RAm_1%zYGLrIe7L~vFL}H#689g-oa6?*BLq< zjCS+c5&JV)C~JSjt|k z`>$*zGM0HPg+Er(`e<-xl%!vYT)oDu14G4(k9C2iPRB+>{@f=VVH zU7r4U;j(XayS}>Iwe_dIi~ka%UJ?$6IFu4AGx2Zq$viHUm}QMv@sDYG6kN%Y?l!VI zpKGzb2ENkG-M89Bf7y^yQI>I@d`884XRY8($?Z#`NY3Jop&rFeb*961gnTKtZF>!% zQ4Q^RQ2UBJ03gIVrp~ChLD?eg;{+En4O;adA+No;+a!)Q;A0A)dp( umI6tio5IjlqDJfrEq*d;h2d1BgX&hGB+W58`|Aqlo7)#Z6>V3(dm{7y zvtuC%^%-U=(d-)@Ub=M2<$;5T_atA&FR$228QRli?|6Ans+VMv;mh+P`JL}&kjQ$lNJ8%0 zuYF+Uv%$)L$bgmGLzMdit;}V7)48_%{f>mKEHCaQtZV%fSHiI08Ejg8I8a`a=?@Rs z4f(HjgZ0KkB)!3MHC$l1{>gS{mV(@NuN`dJZm?w)(qIkx5Dl(i4L1B>4e6iPu3MJ{ z^4fC$`EMXH5U;v}z52lb=+$~2M!6QSd1oPh6$G1i{i-S0u61o-xv3C2h{vWwJeCAD zF@^(d*JnuJ>45|997NNpQ#03zf=%&*xOgSl6bnhP4eAh6>MOv;@JKTN!GSMJ8G!+$ z$50}!1>`!+uigL>W>}`r>+qeem~p}G07eD}#v!HfA8ZCb7trVDX4vSkO@Rz zSS`&0q+S&Bi-EWead#CM7&6!v{C8QOAG`g%y?rL{2Dw`?Thu|aAka{6_dS6T!UmFm ze)lgCd+V9Z@b}%N>mRnu-rW~#o5{N%|5h3A{xdrfx==K2`K_A1LcN#q%Wm)Z!}rTd zewTe+V%o4T^S0?9qv!MBX8*d=%nIjRcsG5{!g(faAL==PVi%svt< zcJ9yJmiK!Lc&w}%|5im9b!`r&Evaf&+1$uvh*?}P8hKpZHbEV`GKDn=ddtn9Z zfiKYyF1>N)k8Ga)g^S_tCdLKPW(*~#*&6b0GF;G=X4sX=?65tD;l;FiUVO6Dl)P2( aN8E7%PY&POMHL`_c)I$ztaD;YXaWF3Uamj@