From 22f7c79dcfa9117f59842096ce923c42c404fc3d Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Wed, 13 Apr 2016 20:16:34 +0200 Subject: [PATCH] GUI improvements --- .../container/ContainerGrid.java | 10 +--- .../ContainerWirelessTransmitter.java | 4 +- src/main/java/refinedstorage/gui/GuiGrid.java | 40 ++++++++++++++- .../gui/GuiWirelessTransmitter.java | 5 +- .../network/MessageGridPatternCreate.java | 47 ++++++++++++++++++ .../refinedstorage/proxy/CommonProxy.java | 1 + .../tile/TileWirelessTransmitter.java | 4 +- .../assets/refinedstorage/lang/en_US.lang | 4 +- .../assets/refinedstorage/lang/nl_NL.lang | 4 +- .../textures/gui/pattern_grid.png | Bin 2129 -> 2639 bytes .../textures/gui/wireless_transmitter.png | Bin 1794 -> 2101 bytes 11 files changed, 101 insertions(+), 18 deletions(-) create mode 100755 src/main/java/refinedstorage/network/MessageGridPatternCreate.java diff --git a/src/main/java/refinedstorage/container/ContainerGrid.java b/src/main/java/refinedstorage/container/ContainerGrid.java index bf8257afc..33ac2e3a1 100755 --- a/src/main/java/refinedstorage/container/ContainerGrid.java +++ b/src/main/java/refinedstorage/container/ContainerGrid.java @@ -67,8 +67,8 @@ public class ContainerGrid extends ContainerBase { addSlotToContainer(new SlotDisabled(((TileGrid) grid).getCraftingResultInventory(), 0, 116 + 4, 120 + 4)); - addSlotToContainer(new SlotFiltered(((TileGrid) grid).getPatternsInventory(), 0, 152, 106, new BasicItemValidator(RefinedStorageItems.PATTERN))); - addSlotToContainer(new SlotOutput(((TileGrid) grid).getPatternsInventory(), 1, 152, 142)); + addSlotToContainer(new SlotFiltered(((TileGrid) grid).getPatternsInventory(), 0, 152, 104, new BasicItemValidator(RefinedStorageItems.PATTERN))); + addSlotToContainer(new SlotOutput(((TileGrid) grid).getPatternsInventory(), 1, 152, 144)); } } @@ -121,12 +121,6 @@ public class ContainerGrid extends ContainerBase { } } - if (!player.worldObj.isRemote && slot instanceof SlotDisabled && grid.getType() == EnumGridType.PATTERN && slot.getHasStack()) { - ((TileGrid) grid).onCreatePattern(); - - return null; - } - return super.func_184996_a(id, clickedButton, clickType, player); } } diff --git a/src/main/java/refinedstorage/container/ContainerWirelessTransmitter.java b/src/main/java/refinedstorage/container/ContainerWirelessTransmitter.java index 95b0d5867..870e3994e 100755 --- a/src/main/java/refinedstorage/container/ContainerWirelessTransmitter.java +++ b/src/main/java/refinedstorage/container/ContainerWirelessTransmitter.java @@ -13,8 +13,8 @@ public class ContainerWirelessTransmitter extends ContainerBase { public ContainerWirelessTransmitter(EntityPlayer player, TileWirelessTransmitter wirelessTransmitter) { super(player); - for (int i = 0; i < 9; ++i) { - addSlotToContainer(new SlotFiltered(wirelessTransmitter, i, 8 + (i * 18), 20, new IItemValidator() { + for (int i = 0; i < 4; ++i) { + addSlotToContainer(new SlotFiltered(wirelessTransmitter, i, 187, 6 + (i * 18), new IItemValidator() { @Override public boolean isValid(ItemStack stack) { return stack.getItem() == RefinedStorageItems.UPGRADE && stack.getMetadata() == ItemUpgrade.TYPE_RANGE; diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index 1a1548c15..e908f1865 100755 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -19,6 +19,7 @@ import refinedstorage.jei.PluginRefinedStorage; import refinedstorage.network.GridPullFlags; import refinedstorage.network.MessageGridCraftingClear; import refinedstorage.network.MessageGridCraftingPush; +import refinedstorage.network.MessageGridPatternCreate; import refinedstorage.storage.ItemGroup; import refinedstorage.tile.grid.IGrid; import refinedstorage.tile.grid.TileGrid; @@ -153,6 +154,18 @@ public class GuiGrid extends GuiBase { return false; } + public boolean isHoveringOverCreatePattern(int mouseX, int mouseY) { + if (grid.getType() == EnumGridType.PATTERN) { + return inBounds(152, 124, 16, 16, mouseX, mouseY) && isCreatePatternEnabled(); + } + + return false; + } + + public boolean isCreatePatternEnabled() { + return ((TileGrid) grid).getCraftingResultInventory().getStackInSlot(0) != null && ((TileGrid) grid).getPatternsInventory().getStackInSlot(0) != null; + } + @Override public void drawBackground(int x, int y, int mouseX, int mouseY) { if (grid.getType() == EnumGridType.CRAFTING) { @@ -165,6 +178,20 @@ public class GuiGrid extends GuiBase { drawTexture(x, y, 0, 0, width, height); + if (grid.getType() == EnumGridType.PATTERN) { + int ty = 0; + + if (isHoveringOverCreatePattern(mouseX - guiLeft, mouseY - guiTop)) { + ty = 1; + } + + if (!isCreatePatternEnabled()) { + ty = 2; + } + + drawTexture(x + 152, y + 124, 195, ty * 16, 16, 16); + } + scrollbar.draw(this); searchField.drawTextBox(); @@ -259,6 +286,10 @@ public class GuiGrid extends GuiBase { if (isHoveringOverClear(mouseX, mouseY)) { drawTooltip(mouseX, mouseY, t("misc.refinedstorage:clear")); } + + if (isHoveringOverCreatePattern(mouseX, mouseY)) { + drawTooltip(mouseX, mouseY, t("gui.refinedstorage:grid.pattern_create")); + } } @Override @@ -266,9 +297,14 @@ public class GuiGrid extends GuiBase { super.mouseClicked(mouseX, mouseY, clickedButton); boolean clickedClear = clickedButton == 0 && isHoveringOverClear(mouseX - guiLeft, mouseY - guiTop); + boolean playClickSound = clickedClear; if (grid.isConnected()) { - if (isHoveringOverSlot() && container.getPlayer().inventory.getItemStack() != null && (clickedButton == 0 || clickedButton == 1)) { + if (isHoveringOverCreatePattern(mouseX - guiLeft, mouseY - guiTop)) { + RefinedStorage.NETWORK.sendToServer(new MessageGridPatternCreate((TileGrid) grid)); + + playClickSound = true; + } else if (isHoveringOverSlot() && container.getPlayer().inventory.getItemStack() != null && (clickedButton == 0 || clickedButton == 1)) { grid.onItemPush(-1, clickedButton == 1); } else if (isHoveringOverItemInSlot() && container.getPlayer().inventory.getItemStack() == null) { if (items.get(hoveringSlot).getQuantity() == 0) { @@ -313,7 +349,7 @@ public class GuiGrid extends GuiBase { } } - if (clickedClear) { + if (playClickSound) { mc.getSoundHandler().playSound(PositionedSoundRecord.getMasterRecord(SoundEvents.ui_button_click, 1.0F)); } } diff --git a/src/main/java/refinedstorage/gui/GuiWirelessTransmitter.java b/src/main/java/refinedstorage/gui/GuiWirelessTransmitter.java index 8b200e9f5..5abe7b8ce 100755 --- a/src/main/java/refinedstorage/gui/GuiWirelessTransmitter.java +++ b/src/main/java/refinedstorage/gui/GuiWirelessTransmitter.java @@ -8,7 +8,7 @@ public class GuiWirelessTransmitter extends GuiBase { private TileWirelessTransmitter wirelessTransmitter; public GuiWirelessTransmitter(ContainerWirelessTransmitter container, TileWirelessTransmitter wirelessTransmitter) { - super(container, 176, 137); + super(container, 211, 137); this.wirelessTransmitter = wirelessTransmitter; } @@ -31,7 +31,8 @@ public class GuiWirelessTransmitter extends GuiBase { @Override public void drawForeground(int mouseX, int mouseY) { - drawString(7, 7, t("gui.refinedstorage:wireless_transmitter", wirelessTransmitter.getRange())); + drawString(7, 7, t("gui.refinedstorage:wireless_transmitter")); + drawString(28, 24, t("gui.refinedstorage:wireless_transmitter.distance", wirelessTransmitter.getRange())); drawString(7, 43, t("container.inventory")); } } diff --git a/src/main/java/refinedstorage/network/MessageGridPatternCreate.java b/src/main/java/refinedstorage/network/MessageGridPatternCreate.java new file mode 100755 index 000000000..6d4cf42cf --- /dev/null +++ b/src/main/java/refinedstorage/network/MessageGridPatternCreate.java @@ -0,0 +1,47 @@ +package refinedstorage.network; + +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraftforge.fml.common.network.simpleimpl.IMessage; +import refinedstorage.block.EnumGridType; +import refinedstorage.tile.grid.TileGrid; + +public class MessageGridPatternCreate extends MessageHandlerPlayerToServer implements IMessage { + private int x; + private int y; + private int z; + + public MessageGridPatternCreate() { + } + + public MessageGridPatternCreate(TileGrid grid) { + this.x = grid.getPos().getX(); + this.y = grid.getPos().getY(); + this.z = grid.getPos().getZ(); + } + + @Override + public void fromBytes(ByteBuf buf) { + x = buf.readInt(); + y = buf.readInt(); + z = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + } + + @Override + public void handle(MessageGridPatternCreate message, EntityPlayerMP player) { + TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z)); + + if (tile instanceof TileGrid && ((TileGrid) tile).getType() == EnumGridType.PATTERN) { + ((TileGrid) tile).onCreatePattern(); + } + } +} diff --git a/src/main/java/refinedstorage/proxy/CommonProxy.java b/src/main/java/refinedstorage/proxy/CommonProxy.java index 3cfd6af4b..723bb042c 100755 --- a/src/main/java/refinedstorage/proxy/CommonProxy.java +++ b/src/main/java/refinedstorage/proxy/CommonProxy.java @@ -50,6 +50,7 @@ public class CommonProxy { RefinedStorage.NETWORK.registerMessage(MessageGridCraftingShift.class, MessageGridCraftingShift.class, 19, Side.SERVER); RefinedStorage.NETWORK.registerMessage(MessageGridCraftingStart.class, MessageGridCraftingStart.class, 20, Side.SERVER); RefinedStorage.NETWORK.registerMessage(MessageWirelessGridCraftingStart.class, MessageWirelessGridCraftingStart.class, 21, Side.SERVER); + RefinedStorage.NETWORK.registerMessage(MessageGridPatternCreate.class, MessageGridPatternCreate.class, 22, Side.SERVER); NetworkRegistry.INSTANCE.registerGuiHandler(RefinedStorage.INSTANCE, new GuiHandler()); diff --git a/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java b/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java index b59080e73..784f3971f 100755 --- a/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java +++ b/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java @@ -13,7 +13,7 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory { public static final int RANGE_PER_UPGRADE = 8; public static final int RF_PER_UPGRADE = 8; - private InventorySimple inventory = new InventorySimple("upgrades", 9, this); + private InventorySimple inventory = new InventorySimple("upgrades", 4, this); @Override public int getEnergyUsage() { @@ -45,7 +45,7 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory { private int getUpgrades() { int upgrades = 0; - for (int i = 0; i < 9; ++i) { + for (int i = 0; i < inventory.getSizeInventory(); ++i) { if (inventory.getStackInSlot(i) != null) { upgrades++; } diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index f3d1edf02..a6396e475 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -7,6 +7,7 @@ gui.refinedstorage:controller.machine_position.y=Y: %d gui.refinedstorage:controller.machine_position.z=Z: %d gui.refinedstorage:grid=Grid gui.refinedstorage:grid.pattern=Pattern +gui.refinedstorage:grid.pattern_create=Create Pattern gui.refinedstorage:wireless_grid=Wireless Grid gui.refinedstorage:disk_drive=Drive gui.refinedstorage:external_storage=External Storage @@ -21,7 +22,8 @@ gui.refinedstorage:interface.import=Interface Import gui.refinedstorage:interface.export=Interface Export gui.refinedstorage:interface.patterns=Patterns gui.refinedstorage:crafting_monitor=Crafting Monitor -gui.refinedstorage:wireless_transmitter=Wireless Transmitter (%d blocks) +gui.refinedstorage:wireless_transmitter=Wireless Transmitter +gui.refinedstorage:wireless_transmitter.distance=%d blocks misc.refinedstorage:energy_stored=%d / %d RF misc.refinedstorage:energy_usage=Usage: %d RF/t diff --git a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang index fdb3fc614..2f89c4035 100755 --- a/src/main/resources/assets/refinedstorage/lang/nl_NL.lang +++ b/src/main/resources/assets/refinedstorage/lang/nl_NL.lang @@ -7,6 +7,7 @@ gui.refinedstorage:controller.machine_position.y=Y: %d gui.refinedstorage:controller.machine_position.z=Z: %d gui.refinedstorage:grid=Rooster gui.refinedstorage:grid.pattern=Patroon +gui.refinedstorage:grid.pattern_create=Patroon maken gui.refinedstorage:wireless_grid=Draadloos Rooster gui.refinedstorage:disk_drive=Schijf gui.refinedstorage:external_storage=Externe Opslag @@ -21,7 +22,8 @@ gui.refinedstorage:interface.import=Interface Import gui.refinedstorage:interface.export=Interface Export gui.refinedstorage:interface.patterns=Patronen gui.refinedstorage:crafting_monitor=Crafting Monitor -gui.refinedstorage:wireless_transmitter=Draadloze Zender (%d blokken) +gui.refinedstorage:wireless_transmitter=Draadloze Zender +gui.refinedstorage:wireless_transmitter.distance=%d blokken misc.refinedstorage:energy_stored=%d / %d RF misc.refinedstorage:energy_usage=Vebruik: %d RF/t diff --git a/src/main/resources/assets/refinedstorage/textures/gui/pattern_grid.png b/src/main/resources/assets/refinedstorage/textures/gui/pattern_grid.png index 1ab9ccd7dcab43bd02644684677e9847dca38108..7039086c7154db9844c7f690e526f7fff8fb1dc9 100755 GIT binary patch delta 1803 zcmYLI3pmtSA3pz?L7zq$AzEag&nP0-u!&}c!C^tnmN4d@fBf-z2xz zQWmpjUCM@$OO2W~ZDzDKrAS*@N$4V$G|SX(zvn#X_q^wM-{<_!`@CmJRie%{_`ih~ ztgWqWWMpJ)Y;0m;Vrpt?W@ct?Zf;>=VQFb;Wo2b;ZEb67YiDQYE(<(bK?|*< zhn+nX{#_8Wit$bLk%*e$sPkcQ^$8imB)BUzyE`qn`}qHQ((~3O;Y zZ)j-X^ZAX9jRJuHIdLV6b2aX)U)s^DTZS%PA{|RMkN4pS*KlwPyIqW=3RI&ZCv00qI}Vj%sy~N*iUv zmpvvXEgiey>KS^0WT88NLbt!)LaO(zmK0ow9QJS7K(e=QgKh(5ncV9W&n$}6#OVlkS zU1|SG;@B6LWIq;qi?@NRtYUh^6Ybg0u^>)i1os^f(;cYJgWtY-FI)>idKQqS_6}T< zId|+=M|YkbEEzTE2%^2HYnEc?zh4?@)1R+4%4y36?54skGxYGLvMwjkmj;gu8^HUD zxhiGM68UzzWCZleMv74oBQ*fdCtayt3TVEDubEpG=u@^{y=g{;nupcq2PHj)ZopxA z=ZA$9HHay3BOJzF-wiorN)`vVZ^SH(EE@Kv>6yPeW<~x(tz0Wadt|iR2!}jS!1A>ne0b(3((feNb$e$y-rR~>IEy@#(MO$((r=Kh08 z9p;bJ60?|>@vlPW`ShMQ$w{~@un@V>Up(I8-%l=VQJ|hX_w1G<=spNOmT|iMSM|of zf}iJjxvaSSQ3IjzL%<%kJ9%0ds352KH-4f5fGAR}<)CKs?T*u-jj#wySlR8awV2HJ z;t5151mdZFy9$nkq&zm0$aR+ZJZN2Z2TtNct&0BO>nK~1Z zDl7l>9W=F%^*WY{dE9h)STZ4w|T?B#smI%|P3 z#t9S9CDb_x*im>Mm=Z@~Aj;VjI!Hj+4yg6NC7Y6SU;By}F*-n6+!Fpg)%pf6w=ISY z?zZ4LQd@plbrc!A#sKySJ0O*N3=hYJLhBA8Gh0wd>^0~L109`6+(~ZV)Eb4`%yoEx zfx?v52@4Mb*Bd~J7}@K6&DvWiWIV@<_hJ#v_Yws@R;&rAVkN{BM7N>V3G(7U5`PAO zGP8(or-dliWRw}4JZ?X1coX(plT~Quvn;m?{?Pz1-ErYF0P`=OmN%NCrM)DzPkE0= zOFcQCb0X*dGv7zyQgVW)UpX{@TZe0Jqyg!8l$v<;@cMUIlh=Cbh?Rams^R~UzP1xq zZ8ZM{0Q8Op`Diea1PlON6=^ucpL$YiI0+5!(7lZPF&<3OD5cI-Hf4Xkhg&>C@(Nml P38$lZxy-8q?;Kn_c~qpu?a z!^VE@KZ&di49pAxJ|V6^adUI?(9qEC?(Sp9j{X1tA1E>kMnhnPgh10{aTQRmDGBlm z1}6TI3>bpHv#SE5owL9rvY3H^?=T269?xHq0u+=eag8Vm&QB{TPb^AhC`ioAE78kK zEm1JhGtjflF|P9i7AUJcT^vIy;@;lvF1lqP(vrx2=(oL*YlU{=nll=YbT(et|F-9@ z^QzP4UK;INV%J?yeGn6Wt|(TI`FUw$>Wjbe`{KoRFxT+UzWg$@k!8U_w=*9Z{MOAe zJ!rGk$AU!>pSXau?54ezZ>xD&B}^E6_zGt6CH!@tCT}d> zVD@)H_;-7mhJW#mGP#TG4>M-mO$7Vw!V6{=28JAlD)D_wzS{o&I`!q>yT4Clv`zZW zw~gg?xAw*TnI z-&+{27~ficfZsuw@d|4i(+Vyh)&Sud+zXTpBoD+rn9TU)fLWDJx>ZAZ<4cAw5$DvI zb2isasS7lcYwA zUx4?kVoAnh9H3Y%Z3p>`!C^7K0El|c$IZa71{`EBe>0cp8iw6rcxC;>#MI?pBs{r* z!T}Dx)Yc!c)=p#i8tc`wS2osrmR26a+$}PX6W^_dtBER)fU_BD=FVBsCFxK*T_`!< z{raS3UD6Kfx`-48RM>D$Rt%v&UR`}v5}SlFL}J>1hF5#1N&MaoNt;#MP8!-R{2B^Z z4)ZTqU|(Kd$Wa~xHwK1;yoSlF37(JnCRa4v_V2ZI5@UC;VqKgPTN1PGdcEG-4Zqg8 RXi0-KdAj_pxKg{{R0Ebk8Ul z4FS4^!2D+krl5>c666;QOnxI7Fa&>RR|N(xJ5bjP=G7_E~aW_#yxH`T6ckPdY><+^ehmpz^+U)#Le`A`{~3t15qA zTb%c2|17SGZ;$SM`}UW!zg{iq!0P4Y+qcR2ReqP9$aHW2&6|~fj)oubtor`v@bS*~ z_8|wh+-K_wVAO43U{P3L(#yb7!hguGMeWQdmNkd&bMS`uurqQvFfg6E<%^_3U_tHo z81IIA{yb-EHTdV1Rr#JO-z4&#nVV=D2YNl0< zKu-bPJz?sB&9YAqtnk{x;2Y)tz#x8Y6I1~M)0J{l0gw+t${Cm*`4we_ zHnDDD1jZ}F*VtZTMyqOB4x9U-d_AjNxG&_-o_8QVBYZVfHCPQVOfN7c?6`a%BA2ZgRbB${DdqS75;wRz|Pr f;X#?C+Wlv)=bz&GD`xKzP{Hcy>gTe~DWM4fa|hB~ literal 1794 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5Fo{p?&#~tz_78O`%fY(0|PTd zfKP}kP~62^QA&dRf`N&DBm;)v@9e6; zXy+{Oh%9Dc;5!7ujG`J|4M0JO64!{5;QX|b^2DN4hJwV*yb`^<)Di^~Jp(<<9OF7a z1_q`KPZ!6KinzD8E@s_!kZ1|K+IRo|#Jg5Aqg2C>z470C=BEbFo7MpSrUQ>2*V%u2 zxo_X&x;x)89Uk0x`M>^mg#HK44;#IwpDt=-cbK;iSWq#XsMhBOQVgHI@G>zlINYm_ z1af|`{P?;z``a7)`991s`%8aks)LjOLBpQ!n;CNAF-`qUi zZyDpK>(6dJkl%vKs%PtfP6KJ(#i*yuaQyMk+gs!woZoL#-QLI9a6Ej2cf9`IO^xpF uL>qE)88&TYJaLUpAzFIKai*2+|Ic