diff options
author | Jakub <53441451+kuba6000@users.noreply.github.com> | 2022-11-24 21:44:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-24 21:44:23 +0100 |
commit | cf7b6f2e63ca1f30a567ec4ec07f7a3d2b09013c (patch) | |
tree | 3ce46c627b38546439bd68490913cb937ad09718 | |
parent | a54d284d4536d9bbb6e6932ebbbc32781c53e375 (diff) | |
download | GT5-Unofficial-cf7b6f2e63ca1f30a567ec4ec07f7a3d2b09013c.tar.gz GT5-Unofficial-cf7b6f2e63ca1f30a567ec4ec07f7a3d2b09013c.tar.bz2 GT5-Unofficial-cf7b6f2e63ca1f30a567ec4ec07f7a3d2b09013c.zip |
Prevent player inventory corruption (#235)
* Ugh
* Merge same slots
* Remove growth progress
* Update GT_TileEntity_ExtremeIndustrialGreenhouse.java
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Former-commit-id: 1878ef170e99a2285c153075e58ba58fcc0235a8
-rw-r--r-- | src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ExtremeIndustrialGreenhouse.java | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ExtremeIndustrialGreenhouse.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ExtremeIndustrialGreenhouse.java index 71077a3a31..b9123478e5 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ExtremeIndustrialGreenhouse.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ExtremeIndustrialGreenhouse.java @@ -525,20 +525,18 @@ public class GT_TileEntity_ExtremeIndustrialGreenhouse "Max slots: " + EnumChatFormatting.GREEN + this.mMaxSlots + EnumChatFormatting.RESET, "Used slots: " + ((mStorage.size() > mMaxSlots) ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + this.mStorage.size() + EnumChatFormatting.RESET)); - for (int i = 0; i < mStorage.size(); i++) { - if (!mStorage.get(i).isValid) continue; - StringBuilder a = new StringBuilder( - "Slot " + i + ": " + EnumChatFormatting.GREEN + "x" + this.mStorage.get(i).input.stackSize + " " - + this.mStorage.get(i).input.getDisplayName()); + HashMap<String, Integer> storageList = new HashMap<>(); + for (GreenHouseSlot greenHouseSlot : mStorage) { + if (!greenHouseSlot.isValid) continue; + StringBuilder a = new StringBuilder(EnumChatFormatting.GREEN + "x" + greenHouseSlot.input.stackSize + " " + + greenHouseSlot.input.getDisplayName()); if (this.isIC2Mode) { - a.append(" | Humidity: " + (this.mStorage.get(i).noHumidity ? 0 : 12) + " : "); - for (Map.Entry<String, Double> entry : - mStorage.get(i).dropprogress.entrySet()) - a.append((int) (entry.getValue() * 100d)).append("% "); + a.append(" | Humidity: ").append(greenHouseSlot.noHumidity ? 0 : 12); } a.append(EnumChatFormatting.RESET); - info.add(a.toString()); + storageList.merge(a.toString(), 1, Integer::sum); } + storageList.forEach((k, v) -> info.add("x" + v + " " + k)); if (mStorage.size() > mMaxSlots) info.add(EnumChatFormatting.DARK_RED + "There are too many crops inside to run !" + EnumChatFormatting.RESET); |