From c087930016a5ccbef9d9c93bc612498cc34162a3 Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Sat, 3 Dec 2022 13:58:00 +0800 Subject: [PATCH] add contents display on cells and fix pattern terminal encode overflow --- .../client/gui/container/FCBasePartContainer.java | 1 + .../gui/container/FCBasePartContainerEx.java | 1 + .../common/item/ItemBasicFluidStorageCell.java | 14 ++++++++++++++ .../github/common/storage/FluidCellInventory.java | 13 ++++++++++++- .../github/common/storage/IFluidCellInventory.java | 4 ++++ .../java/com/glodblock/github/util/NameConst.java | 1 + src/main/resources/assets/ae2fc/lang/en_US.lang | 1 + src/main/resources/assets/ae2fc/lang/zh_CN.lang | 1 + 8 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainer.java b/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainer.java index 5e729316..fc716886 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainer.java +++ b/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainer.java @@ -327,6 +327,7 @@ public class FCBasePartContainer extends FCBaseMonitorContain implements IAEAppE if( i != null ) { i.writeToNBT( c ); + c.setInteger( "Count", i.stackSize ); } return c; diff --git a/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java b/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java index 72e394f6..34366869 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java +++ b/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java @@ -290,6 +290,7 @@ public class FCBasePartContainerEx extends FCBaseMonitorContain implements IAEAp if( i != null ) { i.writeToNBT( c ); + c.setInteger( "Count", i.stackSize ); } return c; diff --git a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java index 26a8ad24..6b639c94 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java +++ b/src/main/java/com/glodblock/github/common/item/ItemBasicFluidStorageCell.java @@ -17,6 +17,7 @@ import appeng.items.contents.CellConfig; import appeng.items.contents.CellUpgrades; import appeng.util.InventoryAdaptor; import appeng.util.Platform; +import appeng.util.ReadableNumberConverter; import com.glodblock.github.FluidCraft; import com.glodblock.github.common.Config; import com.glodblock.github.common.storage.CellType; @@ -52,8 +53,10 @@ public class ItemBasicFluidStorageCell extends AEBaseItem implements IStorageFlu private final int totalBytes; private final int perType; private final double idleDrain; + private final ReadableNumberConverter format = ReadableNumberConverter.INSTANCE; private final static HashMap icon = new HashMap<>(); + @SuppressWarnings("Guava") public ItemBasicFluidStorageCell( final CellType whichCell, final int kilobytes ) { super( Optional.of( kilobytes + "k" ) ); @@ -137,6 +140,17 @@ public class ItemBasicFluidStorageCell extends AEBaseItem implements IStorageFlu lines.add( cellInventory.getStoredFluidTypes() + " " + GuiText.Of.getLocal() + ' ' + cellInventory.getTotalFluidTypes() + ' ' + GuiText.Types.getLocal() ); + if (GuiScreen.isShiftKeyDown()) { + if (cellInventory.getStoredFluidTypes() > 0) { + lines.add(StatCollector.translateToLocal(NameConst.TT_CELL_CONTENTS)); + for (IAEFluidStack fluid : cellInventory.getContents()) { + if (fluid != null) { + lines.add(String.format(" %s x%smB", fluid.getFluidStack().getLocalizedName(), format.toWideReadableForm(fluid.getStackSize()))); + } + } + } + } + if( handler.isPreformatted() ) { final String list = (handler.getIncludeExcludeMode() == IncludeExclude.WHITELIST ? GuiText.Included : GuiText.Excluded).getLocal(); diff --git a/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java b/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java index 3ec27129..aa4d5a0e 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java @@ -18,6 +18,9 @@ import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; +import java.util.ArrayList; +import java.util.List; + public class FluidCellInventory implements IFluidCellInventory { private static final String FLUID_TYPE_TAG = "ft"; @@ -465,10 +468,18 @@ public class FluidCellInventory implements IFluidCellInventory { { out.add( i ); } - return out; } + @Override + public List getContents() { + List ret = new ArrayList<>(); + for (IAEFluidStack fluid : this.getCellItems()) { + ret.add(fluid); + } + return ret; + } + @Override public StorageChannel getChannel() { return StorageChannel.FLUIDS; diff --git a/src/main/java/com/glodblock/github/common/storage/IFluidCellInventory.java b/src/main/java/com/glodblock/github/common/storage/IFluidCellInventory.java index 288504ef..2b891946 100644 --- a/src/main/java/com/glodblock/github/common/storage/IFluidCellInventory.java +++ b/src/main/java/com/glodblock/github/common/storage/IFluidCellInventory.java @@ -5,6 +5,8 @@ import appeng.api.storage.data.IAEFluidStack; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import java.util.List; + public interface IFluidCellInventory extends IMEInventory { @@ -71,4 +73,6 @@ public interface IFluidCellInventory extends IMEInventory long getStoredFluidTypes(); long getTotalFluidTypes(); + + List getContents(); } diff --git a/src/main/java/com/glodblock/github/util/NameConst.java b/src/main/java/com/glodblock/github/util/NameConst.java index 79d8da28..dd5b37cf 100644 --- a/src/main/java/com/glodblock/github/util/NameConst.java +++ b/src/main/java/com/glodblock/github/util/NameConst.java @@ -34,6 +34,7 @@ public class NameConst { public static final String TT_DUMP_TANK = TT_KEY + "dump_tank"; public static final String TT_REQUEST_SIZE = TT_KEY + "request_size"; public static final String TT_BATCH_SIZE = TT_KEY + "batch_size"; + public static final String TT_CELL_CONTENTS = TT_KEY + "cell_contents"; public static final String WAILA_KEY = FluidCraft.MODID + ".waila."; public static final String WAILA_ENABLE = WAILA_KEY + "enable"; diff --git a/src/main/resources/assets/ae2fc/lang/en_US.lang b/src/main/resources/assets/ae2fc/lang/en_US.lang index cd045272..9d5f7405 100644 --- a/src/main/resources/assets/ae2fc/lang/en_US.lang +++ b/src/main/resources/assets/ae2fc/lang/en_US.lang @@ -37,6 +37,7 @@ ae2fc.waila.disable=Disable ae2fc.tooltip.request_size=Amount to Maintain ae2fc.tooltip.batch_size=Crafting Batch Size +ae2fc.tooltip.cell_contents=Contains Fluid: ae2fc.tooltip.fluid_terminal=uh So we don't need EC2 anymore? ae2fc.tooltip.invalid_fluid=Invalid fluid! ae2fc.tooltip.encode_pattern=Encode Patter diff --git a/src/main/resources/assets/ae2fc/lang/zh_CN.lang b/src/main/resources/assets/ae2fc/lang/zh_CN.lang index a90e92cd..57ada4a3 100644 --- a/src/main/resources/assets/ae2fc/lang/zh_CN.lang +++ b/src/main/resources/assets/ae2fc/lang/zh_CN.lang @@ -37,6 +37,7 @@ ae2fc.waila.disable=禁用 ae2fc.tooltip.request_size=缓存量 ae2fc.tooltip.batch_size=批量制作数量 +ae2fc.tooltip.cell_contents=内含流体: ae2fc.tooltip.fluid_terminal=我们不再需要EC2了吗? ae2fc.tooltip.invalid_fluid=流体无效! ae2fc.tooltip.encode_pattern=编写样板