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 32d1d025..4ad7082e 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 @@ -385,8 +385,10 @@ public class FCBasePartContainer extends FCBaseMonitorContain private NBTBase createItemTag(final ItemStack i) { final NBTTagCompound c = new NBTTagCompound(); - if (i != null) { - i.writeToNBT(c); + 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 c447fdbb..725d48d6 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 @@ -355,8 +355,10 @@ public class FCBasePartContainerEx extends FCBaseMonitorContain private NBTBase createItemTag(final ItemStack i) { final NBTTagCompound c = new NBTTagCompound(); - if (i != null) { - i.writeToNBT(c); + 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 704f6004..d1967220 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; @@ -50,10 +51,13 @@ public class ItemBasicFluidStorageCell extends AEBaseItem implements IStorageFlu private final int totalBytes; private final int perType; private final double idleDrain; - private static final HashMap icon = new HashMap<>(); + private final ReadableNumberConverter format = ReadableNumberConverter.INSTANCE; + private final static HashMap icon = new HashMap<>(); - public ItemBasicFluidStorageCell(final CellType whichCell, final int kilobytes) { - super(Optional.of(kilobytes + "k")); + @SuppressWarnings("Guava") + public ItemBasicFluidStorageCell( final CellType whichCell, final int kilobytes ) + { + super( Optional.of( kilobytes + "k" ) ); setUnlocalizedName(NameConst.ITEM_FLUID_STORAGE + kilobytes); this.setFeature(EnumSet.of(AEFeature.StorageCells)); this.setMaxStackSize(1); @@ -137,11 +141,20 @@ public class ItemBasicFluidStorageCell extends AEBaseItem implements IStorageFlu lines.add(cellInventory.getStoredFluidTypes() + " " + GuiText.Of.getLocal() + ' ' + cellInventory.getTotalFluidTypes() + ' ' + GuiText.Types.getLocal()); - if (handler.isPreformatted()) { - final String list = (handler.getIncludeExcludeMode() == IncludeExclude.WHITELIST - ? GuiText.Included - : GuiText.Excluded) - .getLocal(); + if (GuiScreen.isCtrlKeyDown()) { + 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(); lines.add(GuiText.Partitioned.getLocal() + " - " + list + ' ' + GuiText.Precise.getLocal()); if (GuiScreen.isShiftKeyDown()) { 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 15272c77..2efb612f 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"; @@ -409,10 +412,18 @@ public class FluidCellInventory implements IFluidCellInventory { for (final IAEFluidStack i : this.getCellItems()) { 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 7adda2bb..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,7 +5,10 @@ import appeng.api.storage.data.IAEFluidStack; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; -public interface IFluidCellInventory extends IMEInventory { +import java.util.List; + +public interface IFluidCellInventory extends IMEInventory +{ /** * @return the item stack of this storage cell. @@ -70,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 30554a12..8a0df252 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=编写样板