From 3de0561b21dd93ce90cb641540b0157b332fdd8c Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 29 Oct 2016 18:12:18 +0200 Subject: [PATCH] New storage GUIs, TODO re-add priority --- .../raoulvdberge/refinedstorage/RSUtils.java | 39 ++++------- .../container/ContainerDiskDrive.java | 11 ++- .../container/ContainerStorage.java | 2 +- .../refinedstorage/gui/GuiStorage.java | 64 +++++------------- .../gui/grid/stack/ClientStackItem.java | 8 +-- .../assets/refinedstorage/lang/en_US.lang | 8 +-- .../textures/gui/disk_drive.png | Bin 16211 -> 2044 bytes .../refinedstorage/textures/gui/storage.png | Bin 16133 -> 1993 bytes 8 files changed, 40 insertions(+), 92 deletions(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java b/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java index 3aff29067..c83513ef4 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RSUtils.java @@ -3,7 +3,6 @@ package com.raoulvdberge.refinedstorage; import com.raoulvdberge.refinedstorage.api.network.INetworkMaster; import com.raoulvdberge.refinedstorage.api.storage.AccessType; import com.raoulvdberge.refinedstorage.api.util.IFluidStackList; -import com.raoulvdberge.refinedstorage.api.util.IItemStackList; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.storage.fluid.FluidStorageNBT; import com.raoulvdberge.refinedstorage.apiimpl.storage.item.ItemStorageNBT; @@ -41,12 +40,12 @@ import java.util.function.Function; public final class RSUtils { public static final ItemStack EMPTY_BUCKET = new ItemStack(Items.BUCKET); + public static final DecimalFormat QUANTITY_FORMATTER = new DecimalFormat("####0.#", DecimalFormatSymbols.getInstance(Locale.US)); + private static final String NBT_INVENTORY = "Inventory_%d"; private static final String NBT_SLOT = "Slot"; private static final String NBT_ACCESS_TYPE = "AccessType"; - public static final DecimalFormat QUANTITY_FORMATTER = new DecimalFormat("####0.#", DecimalFormatSymbols.getInstance(Locale.US)); - static { QUANTITY_FORMATTER.setRoundingMode(RoundingMode.DOWN); } @@ -154,16 +153,6 @@ public final class RSUtils { } } - public static NBTTagList serializeItemStackList(IItemStackList list) { - NBTTagList tagList = new NBTTagList(); - - for (ItemStack stack : list.getStacks()) { - tagList.appendTag(stack.writeToNBT(new NBTTagCompound())); - } - - return tagList; - } - public static NBTTagList serializeFluidStackList(IFluidStackList list) { NBTTagList tagList = new NBTTagList(); @@ -174,20 +163,6 @@ public final class RSUtils { return tagList; } - public static IItemStackList readItemStackList(NBTTagList tagList) { - IItemStackList list = API.instance().createItemStackList(); - - for (int i = 0; i < tagList.tagCount(); ++i) { - ItemStack stack = ItemStack.loadItemStackFromNBT(tagList.getCompoundTagAt(i)); - - if (stack != null) { - list.add(stack); - } - } - - return list; - } - public static IFluidStackList readFluidStackList(NBTTagList tagList) { IFluidStackList list = API.instance().createFluidStackList(); @@ -279,4 +254,14 @@ public final class RSUtils { public static FluidStack copyStack(FluidStack stack) { return stack == null ? null : stack.copy(); } + + public static String formatQuantity(int qty) { + if (qty >= 1000000) { + return RSUtils.QUANTITY_FORMATTER.format((float) qty / 1000000F) + "M"; + } else if (qty >= 1000) { + return RSUtils.QUANTITY_FORMATTER.format((float) qty / 1000F) + "K"; + } + + return String.valueOf(qty); + } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDiskDrive.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDiskDrive.java index 56e976a81..af59b9a96 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDiskDrive.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerDiskDrive.java @@ -11,19 +11,18 @@ public class ContainerDiskDrive extends ContainerBase { public ContainerDiskDrive(TileDiskDrive drive, EntityPlayer player) { super(drive, player); - for (int i = 0; i < 4; ++i) { - addSlotToContainer(new SlotItemHandler(drive.getDisks(), i, 98 + (i * 18), 78)); - } + int x = 71; + int y = 54; - for (int i = 0; i < 4; ++i) { - addSlotToContainer(new SlotItemHandler(drive.getDisks(), 4 + i, 98 + (i * 18), 96)); + for (int i = 0; i < 8; ++i) { + addSlotToContainer(new SlotItemHandler(drive.getDisks(), i, x + ((i % 2) * 18), y + Math.floorDiv(i, 2) * 18)); } for (int i = 0; i < 9; ++i) { addSlotToContainer(new SlotSpecimenType(drive, i, 8 + (18 * i), 20)); } - addPlayerInventory(8, 129); + addPlayerInventory(8, 141); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerStorage.java index 783fa458d..be9dc2e2f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerStorage.java @@ -14,7 +14,7 @@ public class ContainerStorage extends ContainerBase { addSlotToContainer(new SlotSpecimen(tile.getFilters(), i, 8 + (18 * i), 20)); } - addPlayerInventory(8, 129); + addPlayerInventory(8, 141); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java index 367549f49..b31b4b1b6 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiStorage.java @@ -1,28 +1,22 @@ package com.raoulvdberge.refinedstorage.gui; -import com.google.common.primitives.Ints; +import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.container.ContainerBase; import com.raoulvdberge.refinedstorage.gui.sidebutton.*; import com.raoulvdberge.refinedstorage.tile.IStorageGui; -import com.raoulvdberge.refinedstorage.tile.data.TileDataManager; -import net.minecraft.client.gui.GuiTextField; - -import java.io.IOException; public class GuiStorage extends GuiBase { private IStorageGui gui; private String texture; - private GuiTextField priorityField; - private int barX = 8; private int barY = 54; private int barWidth = 16; - private int barHeight = 58; + private int barHeight = 70; public GuiStorage(ContainerBase container, IStorageGui gui, String texture) { - super(container, 176, 211); + super(container, 176, 223); this.gui = gui; this.texture = texture; @@ -60,14 +54,9 @@ public class GuiStorage extends GuiBase { addSideButton(new SideButtonAccessType(this, gui.getAccessTypeParameter())); } - priorityField = new GuiTextField(0, fontRendererObj, x + 98 + 1, y + 54 + 1, 29, fontRendererObj.FONT_HEIGHT); - priorityField.setEnableBackgroundDrawing(false); - priorityField.setVisible(true); - priorityField.setTextColor(16777215); - priorityField.setCanLoseFocus(true); - priorityField.setFocused(false); - - updatePriority(gui.getPriorityParameter().getValue()); + String txt = "Priority"; // @TODO: I18n + int bw = 10 + fontRendererObj.getStringWidth(txt); + addButton(x + 169 - bw, y + 41, bw, 20, txt); } @Override @@ -83,16 +72,21 @@ public class GuiStorage extends GuiBase { int barHeightNew = (int) ((float) gui.getStored() / (float) gui.getCapacity() * (float) barHeight); drawTexture(x + barX, y + barY + barHeight - barHeightNew, 179, barHeight - barHeightNew, barWidth, barHeightNew); - - priorityField.drawTextBox(); } @Override public void drawForeground(int mouseX, int mouseY) { drawString(7, 7, t(gui.getGuiTitle())); - drawString(7, 42, gui.getCapacity() == -1 ? t("misc.refinedstorage:storage.stored_minimal", gui.getStored()) : t("misc.refinedstorage:storage.stored_capacity_minimal", gui.getStored(), gui.getCapacity())); - drawString(97, 42, t("misc.refinedstorage:priority")); - drawString(7, 117, t("container.inventory")); + drawString(7, 42, gui.getCapacity() == -1 ? + t("misc.refinedstorage:storage.stored_minimal", RSUtils.formatQuantity(gui.getStored())) : + t("misc.refinedstorage:storage.stored_capacity_minimal", RSUtils.formatQuantity(gui.getStored()), RSUtils.formatQuantity(gui.getCapacity()))); + + // @TODO: I18n + if (texture.contains("disk_drive")) { // HACK! + drawString(70, 42, "Disks"); + } + + drawString(7, 129, t("container.inventory")); if (inBounds(barX, barY, barWidth, barHeight, mouseX, mouseY)) { int full = 0; @@ -105,31 +99,7 @@ public class GuiStorage extends GuiBase { } } - @Override - protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { - super.mouseClicked(mouseX, mouseY, mouseButton); - - priorityField.mouseClicked(mouseX, mouseY, mouseButton); - } - - @Override - protected void keyTyped(char character, int keyCode) throws IOException { - if (checkHotbarKeys(keyCode)) { - // NO OP - } else if (priorityField.textboxKeyTyped(character, keyCode)) { - Integer result = Ints.tryParse(priorityField.getText()); - - if (result != null) { - TileDataManager.setParameter(gui.getPriorityParameter(), result); - } - } else { - super.keyTyped(character, keyCode); - } - } - + // @TODO: Remove public void updatePriority(int priority) { - if (priorityField != null) { - priorityField.setText(String.valueOf(priority)); - } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/ClientStackItem.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/ClientStackItem.java index c715d05b7..af1512419 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/ClientStackItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/stack/ClientStackItem.java @@ -74,19 +74,13 @@ public class ClientStackItem implements IClientStack { if (advanced && qty > 1) { return String.valueOf(qty); - } - - if (qty >= 1000000) { - return RSUtils.QUANTITY_FORMATTER.format((float) qty / 1000000F) + "M"; - } else if (qty >= 1000) { - return RSUtils.QUANTITY_FORMATTER.format((float) qty / 1000F) + "K"; } else if (qty == 1) { return null; } else if (qty == 0) { return I18n.format("gui.refinedstorage:grid.craft"); } - return String.valueOf(qty); + return RSUtils.formatQuantity(qty); } @Override diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index 44970f1a5..7d5cc6f95 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -54,10 +54,10 @@ misc.refinedstorage:energy_stored=%d / %d RS misc.refinedstorage:energy_usage=Usage: %d RS/t misc.refinedstorage:energy_usage_minimal=%d RS/t -misc.refinedstorage:storage.stored=Stored: %d -misc.refinedstorage:storage.stored_capacity=Stored: %d / %d -misc.refinedstorage:storage.stored_minimal=%d -misc.refinedstorage:storage.stored_capacity_minimal=%d / %d +misc.refinedstorage:storage.stored=Stored: %s +misc.refinedstorage:storage.stored_capacity=Stored: %s / %s +misc.refinedstorage:storage.stored_minimal=%s +misc.refinedstorage:storage.stored_capacity_minimal=%s / %s misc.refinedstorage:storage.full=%d%% full misc.refinedstorage:wireless_grid.tooltip=Linked to %d, %d, %d. diff --git a/src/main/resources/assets/refinedstorage/textures/gui/disk_drive.png b/src/main/resources/assets/refinedstorage/textures/gui/disk_drive.png index 94d201a52cd082ba80ed3aadf81920a4a2a23baa..463f4a8475b4e251919e1b2f3f69f7e66e5ea033 100755 GIT binary patch literal 2044 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5Fn+H>=ES4z)+>iz|hdl!0_`w zkbcR)P-?)y@G60U!Dd)|(ylHG24$j>AirQ>QXk2HA^1Bxu-staEbxdd zW?%JeG(Tx<YR504QvxnUHWOt%Ax;y*ONq3 zJG;6+ZZG*ZtvPMWfAqlb-?wjXm%S#Fda~r-@8yy=gg(@^%ch73f0)_&y43i=JchON z8k7#$GDg`lsx+`nXgEI4lYvu#QN@A(zJ|JF3(EusAqS={RZJcZF-&^yd8>NW%V#xA zV2R0Nf4BZxCR38og5M!b{YF5h2d2JFAd`TmGT7EEo|7UVq`w)j9|N~m;`_V8Ta#m+BpmutGX9{JSxq%s<-}D zr`Up>zE8U+o-4Kn8;YV2q)B1HbKdsnWlgLZ?=Er7dAq`Fm(@k4DOEB^>B zxS6e7ux~Y3?}hr=UJvZIY~%xb0;K7}zPk`pz(#b;epXf5#QFp%F(dkbsmp;)YiG07 zGxp1`o!hADbYNPO&J^Ejp$#c|0t>8kIRfU2v8?dpW(rx(%DC!s6T{U^$A(v16dX#U f@Jk0>`>JlmQkW*+ygwV5>li#;{an^LB{Ts5VjgjL literal 16211 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 D(1LGY literal 16133 zcmeI3e{37o9l)R6gr+I98Dc7+m3jsSwAgoN$98y~L0hr0Y!t{eb(y9PrfsNcCaP2=u(DK3MZ1Ktt$XkM z`^9-pQMbR|NxpmE_kG_V@AG}{`Tn`5+qZAKrT)%(0KhG6t$_{z46tbcbvMCBw{j#3 zA1hL=T`B;p-atRYwomuJ3_#Q0q)?~U8GM)z%L%Ixk$XjJCXs@p0q|_fq=fJuQ8V?5 zF)8Ua|NZs1%qA(~H9zVIvcZ&J?2}rD6miGU_E30ePuLwXZ}Qc9GCXvU5H-P+NyL*X zpYfV?zdUTCZpLiVhiH4e<`xvt)ER6y`DH~kIjl}gnBzE;%WdTxO?I2(L6eQ;91QDb zIM%{)Jje1j)|9`@zIxd5D3K`N5!jj!2PLn$Pt#I7!=%$`Yuav=l^Dah-EM}pF*ch8 zjmWh0BLiucQLS%GPZKD&ph)?L*qAcyLq!h;`L?902{8G#fS!v4bFoEjO*WUk*Wzw;MJ;Ye zqiE@My4)6GYs#QXD9mK$+YU~jAR`!_fhQHwiK<*1ex6tN`+_sdcaten?MGu%CC zUsTqouwob1(}PZC9&J zv|NpwmMnKBCCz8cN5i_ytkB;_?rhru-*iNu)8Vi?JPh8ATeM3VG2R)F;Mu04RcUj; zEw3BlnyQvvi&~ax@|L+0mc5nen=01}-+AEc7E^rRTCm@WyWvJQN>jR#UNK)Z2nK{K zQe0#{n3m$gfRIIsi_8bpQd}4ivPf}}`CwX#3j;zHDK0V}OiOWLK*%D+MdpKPDJ~2M zS){ngd@wD=g#jUp6c?Efrlq(rAY_r^BJ;tt6c+}BEK*!#KA4u`!hn!Pii^w#(^6a* z5VA;dk@;X+iVFim7AY<=A52SeVL-?t#YN_WX(=uY2w9}K$b2v@#f1SOixd}`52mHK zFd$@+;v)0Gv=kQxge+2AWImXd;=+KCMT(2e2h&nq7!a~Zagq68T8aw;LKca*>PufR zib?p{Vj6y*xH=M+;J1yYaBD{pfT4Q<$bJ)mPp-n}1pxY406yvgfIkSp8u^*sC$|Dn zd!Q}Q63R@@yvIGXA#vOIxeGsSkH7ltPa?0KziE|u;<1s`vNPHJz74$dOLu;|!Fx2i z>%%+de>ObI&z`R`bln0~bfZ+jY%>1HXHC zYg*o!F;W#bIDDR`NjK2F!nlQ+_|rgx%f15`L>VF%}pEU{ou!M zJ^1`diP5h7sq1CE4}Itg^RB$>*@K=D5L$;c)vl@2k6*d^hdo!2t^wW9_qI!HO#R^V zuyD}e)@wYFUzD5a|IxU-syPtZH~!@fKv0MH7z#C1HfZNm-U|7u|3_>M`#*d2za zp6d9XG`?M04#2TxF#WMrXbv0EZ3f*wYvcCr7^udG?80Z!WCIKQjNGUf%2n-xB68 z|N6O+yTBwkcJ<@0{pinUc7Gi-*7RiN{LhW-`Z)GoaO%=(%L-`ruZDX-t1h($