From dffd8e07e06aa307b8fde7c697059daa92304f1c Mon Sep 17 00:00:00 2001 From: lc-1337 <62835225+lc-1337@users.noreply.github.com> Date: Thu, 19 Jun 2025 11:45:08 +0300 Subject: [PATCH] always use fluid packet for partition (#310) Co-authored-by: boubou19 --- .../github/common/item/FCBaseItemCell.java | 4 +-- .../item/ItemCreativeFluidStorageCell.java | 4 +-- .../common/item/ItemFluidVoidStorageCell.java | 4 +-- .../common/item/ItemPortableFluidCell.java | 4 +-- .../storage/FluidCellInventoryHandler.java | 7 +++++ .../storage/ProxyFluidStorageCell.java | 4 +-- .../github/inventory/FluidCellConfig.java | 27 +++++++++++++++++++ 7 files changed, 44 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/glodblock/github/inventory/FluidCellConfig.java diff --git a/src/main/java/com/glodblock/github/common/item/FCBaseItemCell.java b/src/main/java/com/glodblock/github/common/item/FCBaseItemCell.java index a4c11363..09942871 100644 --- a/src/main/java/com/glodblock/github/common/item/FCBaseItemCell.java +++ b/src/main/java/com/glodblock/github/common/item/FCBaseItemCell.java @@ -20,6 +20,7 @@ import com.glodblock.github.common.storage.CellType; import com.glodblock.github.common.storage.FluidCellInventory; import com.glodblock.github.common.storage.FluidCellInventoryHandler; import com.glodblock.github.common.storage.IStorageFluidCell; +import com.glodblock.github.inventory.FluidCellConfig; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.util.NameConst; import com.google.common.base.Optional; @@ -36,7 +37,6 @@ import appeng.core.features.AEFeature; import appeng.core.localization.GuiText; import appeng.helpers.ICellRestriction; import appeng.items.AEBaseItem; -import appeng.items.contents.CellConfig; import appeng.items.contents.CellUpgrades; import appeng.util.InventoryAdaptor; import appeng.util.IterationCounter; @@ -208,7 +208,7 @@ public abstract class FCBaseItemCell extends AEBaseItem implements IStorageFluid @Override public IInventory getConfigInventory(ItemStack is) { - return new CellConfig(is); + return new FluidCellConfig(is); } @Override diff --git a/src/main/java/com/glodblock/github/common/item/ItemCreativeFluidStorageCell.java b/src/main/java/com/glodblock/github/common/item/ItemCreativeFluidStorageCell.java index f417fca6..b7452e07 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemCreativeFluidStorageCell.java +++ b/src/main/java/com/glodblock/github/common/item/ItemCreativeFluidStorageCell.java @@ -8,12 +8,12 @@ import net.minecraft.item.ItemStack; import com.glodblock.github.FluidCraft; import com.glodblock.github.common.storage.IStorageFluidCell; import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.inventory.FluidCellConfig; import com.glodblock.github.loader.IRegister; import com.glodblock.github.util.NameConst; import appeng.api.config.FuzzyMode; import appeng.core.features.AEFeature; -import appeng.items.contents.CellConfig; import appeng.util.Platform; import cpw.mods.fml.common.registry.GameRegistry; @@ -30,7 +30,7 @@ public class ItemCreativeFluidStorageCell extends ItemBaseInfinityStorageCell @Override public IInventory getConfigInventory(ItemStack is) { - return new CellConfig(is); + return new FluidCellConfig(is); } @Override diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidVoidStorageCell.java b/src/main/java/com/glodblock/github/common/item/ItemFluidVoidStorageCell.java index 1e2d7720..9994bbfa 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidVoidStorageCell.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidVoidStorageCell.java @@ -14,6 +14,7 @@ import com.glodblock.github.common.storage.IFluidCellInventory; import com.glodblock.github.common.storage.IFluidCellInventoryHandler; import com.glodblock.github.common.storage.IStorageFluidCell; import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.inventory.FluidCellConfig; import com.glodblock.github.loader.IRegister; import com.glodblock.github.util.NameConst; @@ -25,7 +26,6 @@ import appeng.api.storage.data.IAEFluidStack; import appeng.core.features.AEFeature; import appeng.core.localization.GuiText; import appeng.items.AEBaseItem; -import appeng.items.contents.CellConfig; import appeng.items.contents.CellUpgrades; import appeng.util.Platform; import cpw.mods.fml.common.registry.GameRegistry; @@ -116,7 +116,7 @@ public class ItemFluidVoidStorageCell extends AEBaseItem @Override public IInventory getConfigInventory(ItemStack is) { - return new CellConfig(is); + return new FluidCellConfig(is); } @Override diff --git a/src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java b/src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java index 8492fcc5..6cec6095 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java +++ b/src/main/java/com/glodblock/github/common/item/ItemPortableFluidCell.java @@ -20,6 +20,7 @@ import com.glodblock.github.common.storage.IFluidCellInventory; import com.glodblock.github.common.storage.IFluidCellInventoryHandler; import com.glodblock.github.common.storage.IStorageFluidCell; import com.glodblock.github.common.tabs.FluidCraftingTabs; +import com.glodblock.github.inventory.FluidCellConfig; import com.glodblock.github.inventory.InventoryHandler; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.inventory.item.IItemInventory; @@ -37,7 +38,6 @@ import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEFluidStack; import appeng.core.features.AEFeature; import appeng.core.localization.GuiText; -import appeng.items.contents.CellConfig; import appeng.items.contents.CellUpgrades; import appeng.items.tools.powered.powersink.AEBasePoweredItem; import appeng.util.Platform; @@ -163,7 +163,7 @@ public class ItemPortableFluidCell extends AEBasePoweredItem @Override public IInventory getConfigInventory(final ItemStack is) { - return new CellConfig(is); + return new FluidCellConfig(is); } @Override diff --git a/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java b/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java index a5725207..a73af7c9 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java @@ -6,6 +6,7 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; +import com.glodblock.github.common.item.ItemFluidPacket; import com.glodblock.github.util.Ae2Reflect; import com.glodblock.github.util.Util; @@ -42,6 +43,12 @@ public class FluidCellInventoryHandler extends MEInventoryHandler AEFluidStack stack = AEFluidStack.create(fluid); stack.setStackSize(1); priorityList.add(stack); + + // convert partition on cells in network + if (!(is.getItem() instanceof ItemFluidPacket)) { + config.setInventorySlotContents(x, ItemFluidPacket.newDisplayStack(fluid)); + config.markDirty(); + } } } if (!priorityList.isEmpty()) { diff --git a/src/main/java/com/glodblock/github/crossmod/extracells/storage/ProxyFluidStorageCell.java b/src/main/java/com/glodblock/github/crossmod/extracells/storage/ProxyFluidStorageCell.java index 4ebb3190..3ae624c9 100644 --- a/src/main/java/com/glodblock/github/crossmod/extracells/storage/ProxyFluidStorageCell.java +++ b/src/main/java/com/glodblock/github/crossmod/extracells/storage/ProxyFluidStorageCell.java @@ -6,10 +6,10 @@ import net.minecraft.item.ItemStack; import com.glodblock.github.api.FluidCraftAPI; import com.glodblock.github.common.storage.IStorageFluidCell; import com.glodblock.github.crossmod.extracells.ProxyItem; +import com.glodblock.github.inventory.FluidCellConfig; import appeng.api.config.FuzzyMode; import appeng.api.storage.data.IAEFluidStack; -import appeng.items.contents.CellConfig; import appeng.items.contents.CellUpgrades; import appeng.util.Platform; @@ -88,7 +88,7 @@ public class ProxyFluidStorageCell extends ProxyItem implements IStorageFluidCel @Override public IInventory getConfigInventory(ItemStack is) { - return new CellConfig(is); + return new FluidCellConfig(is); } @Override diff --git a/src/main/java/com/glodblock/github/inventory/FluidCellConfig.java b/src/main/java/com/glodblock/github/inventory/FluidCellConfig.java new file mode 100644 index 00000000..d4a0ea34 --- /dev/null +++ b/src/main/java/com/glodblock/github/inventory/FluidCellConfig.java @@ -0,0 +1,27 @@ +package com.glodblock.github.inventory; + +import net.minecraft.item.ItemStack; + +import com.glodblock.github.common.item.ItemFluidPacket; +import com.glodblock.github.util.Util; + +import appeng.items.contents.CellConfig; + +public class FluidCellConfig extends CellConfig { + + public FluidCellConfig(ItemStack is) { + super(is); + } + + @Override + public void setInventorySlotContents(int slot, ItemStack newItemStack) { + if (newItemStack != null && !(newItemStack.getItem() instanceof ItemFluidPacket)) { + ItemStack fluidPacket = ItemFluidPacket.newDisplayStack(Util.getFluidFromItem(newItemStack)); + if (fluidPacket != null) { + super.setInventorySlotContents(slot, fluidPacket); + return; + } + } + super.setInventorySlotContents(slot, newItemStack); + } +}