From 4fd505355991ad2e4188fbfaa05bddc618a479fa Mon Sep 17 00:00:00 2001 From: rjnasers Date: Mon, 6 Nov 2023 19:57:44 -0600 Subject: [PATCH 1/2] Adding sticky support for AE2-FC --- .../github/common/item/FCBaseItemCell.java | 9 ++++++-- .../common/storage/FluidCellInventory.java | 7 +++++++ .../storage/FluidCellInventoryHandler.java | 21 +++++++++++++++++++ .../common/storage/IFluidCellInventory.java | 5 +++++ .../glodblock/github/proxy/CommonProxy.java | 20 ++++++++++++++++++ 5 files changed, 60 insertions(+), 2 deletions(-) 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 66c63b7cd..ed6debc1b 100644 --- a/src/main/java/com/glodblock/github/common/item/FCBaseItemCell.java +++ b/src/main/java/com/glodblock/github/common/item/FCBaseItemCell.java @@ -4,6 +4,8 @@ import java.util.EnumSet; import java.util.List; +import com.glodblock.github.common.storage.FluidCellInventory; +import com.glodblock.github.common.storage.FluidCellInventoryHandler; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -96,7 +98,7 @@ public void addCheckedInformation(final ItemStack stack, final EntityPlayer play final IMEInventoryHandler inventory = AEApi.instance().registries().cell() .getCellInventory(stack, null, StorageChannel.FLUIDS); - if (inventory instanceof final IFluidCellInventoryHandler handler) { + if (inventory instanceof final FluidCellInventoryHandler handler) { final IFluidCellInventory cellInventory = handler.getCellInv(); if (cellInventory != null) { @@ -155,6 +157,9 @@ public void addCheckedInformation(final ItemStack stack, final EntityPlayer play } else { lines.add(StatCollector.translateToLocal(NameConst.TT_SHIFT_FOR_MORE)); } + if (handler.getSticky()) { + lines.add(GuiText.Sticky.getLocal()); + } } } } @@ -187,7 +192,7 @@ public boolean isEditable(ItemStack is) { @Override public IInventory getUpgradesInventory(ItemStack is) { - return new CellUpgrades(is, 0); + return new CellUpgrades(is, 2); } @Override 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 4bd476c56..629f87fd4 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java @@ -5,6 +5,8 @@ import javax.annotation.Nonnull; +import appeng.api.config.Upgrades; +import appeng.api.implementations.items.IUpgradeModule; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -401,6 +403,11 @@ public List getContents() { return ret; } + @Override + public IInventory getUpgradesInventory() { + return this.cellType.getUpgradesInventory(this.cellItem); + } + @Override public StorageChannel getChannel() { return StorageChannel.FLUIDS; 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 8ce169149..64273b195 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java @@ -1,5 +1,7 @@ package com.glodblock.github.common.storage; +import appeng.api.config.Upgrades; +import appeng.api.implementations.items.IUpgradeModule; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -37,6 +39,25 @@ protected FluidCellInventoryHandler(final IMEInventory c) { if (!priorityList.isEmpty()) { this.setPartitionList(new PrecisePriorityList<>(priorityList)); } + + final IInventory upgrades = ci.getUpgradesInventory(); + boolean hasSticky = false; + + for (int x = 0; x < upgrades.getSizeInventory(); x++) { + final ItemStack is = upgrades.getStackInSlot(x); + if (is != null && is.getItem() instanceof IUpgradeModule) { + final Upgrades u = ((IUpgradeModule) is.getItem()).getType(is); + if (u != null) { + if (u == Upgrades.STICKY) { + hasSticky = true; + } + } + } + } + + if (hasSticky) { + setSticky(true); + } } } 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 f19ea2f7e..486591792 100644 --- a/src/main/java/com/glodblock/github/common/storage/IFluidCellInventory.java +++ b/src/main/java/com/glodblock/github/common/storage/IFluidCellInventory.java @@ -86,4 +86,9 @@ public interface IFluidCellInventory extends IMEInventory { long getTotalFluidTypes(); List getContents(); + + /** + * @return access installed upgrades. + */ + IInventory getUpgradesInventory(); } diff --git a/src/main/java/com/glodblock/github/proxy/CommonProxy.java b/src/main/java/com/glodblock/github/proxy/CommonProxy.java index efec9d61c..b27072391 100644 --- a/src/main/java/com/glodblock/github/proxy/CommonProxy.java +++ b/src/main/java/com/glodblock/github/proxy/CommonProxy.java @@ -1,5 +1,6 @@ package com.glodblock.github.proxy; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import com.glodblock.github.FluidCraft; @@ -54,6 +55,25 @@ public void postInit(FMLPostInitializationEvent event) { Upgrades.ADVANCED_BLOCKING.registerItem(new ItemStack(ItemAndBlockHolder.INTERFACE), 1); Upgrades.CAPACITY.registerItem(new ItemStack(ItemAndBlockHolder.FLUID_STORAGE_BUS), 5); Upgrades.INVERTER.registerItem(new ItemStack(ItemAndBlockHolder.FLUID_STORAGE_BUS), 1); + + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL1K), 1); + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL4K), 1); + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL16K), 1); + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL64K), 1); + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL256K), 1); + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL1024K), 1); + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL4096K), 1); + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL16384K), 1); + + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL1KM), 1); + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL4KM), 1); + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL16KM), 1); + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL64KM), 1); + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL256KM), 1); + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL1024KM), 1); + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL4096KM), 1); + Upgrades.STICKY.registerItem(new ItemStack(ItemAndBlockHolder.CELL16384KM), 1); + if (Config.fluidIOBus) { Upgrades.CAPACITY.registerItem(new ItemStack(ItemAndBlockHolder.FLUID_EXPORT_BUS), 2); Upgrades.CAPACITY.registerItem(new ItemStack(ItemAndBlockHolder.FLUID_IMPORT_BUS), 2); From fa4830ac080a37288bc8ec61c2edff6028ce4cc9 Mon Sep 17 00:00:00 2001 From: rjnasers Date: Tue, 9 Jan 2024 19:44:57 -0600 Subject: [PATCH 2/2] Spotless whoopsies --- .../java/com/glodblock/github/common/item/FCBaseItemCell.java | 4 +--- .../glodblock/github/common/storage/FluidCellInventory.java | 2 -- .../github/common/storage/FluidCellInventoryHandler.java | 4 ++-- src/main/java/com/glodblock/github/proxy/CommonProxy.java | 1 - 4 files changed, 3 insertions(+), 8 deletions(-) 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 c462ee422..e63c78f57 100644 --- a/src/main/java/com/glodblock/github/common/item/FCBaseItemCell.java +++ b/src/main/java/com/glodblock/github/common/item/FCBaseItemCell.java @@ -4,8 +4,6 @@ import java.util.EnumSet; import java.util.List; -import com.glodblock.github.common.storage.FluidCellInventory; -import com.glodblock.github.common.storage.FluidCellInventoryHandler; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -18,8 +16,8 @@ import com.glodblock.github.api.FluidCraftAPI; import com.glodblock.github.common.storage.CellType; +import com.glodblock.github.common.storage.FluidCellInventoryHandler; 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.loader.ItemAndBlockHolder; import com.glodblock.github.util.NameConst; 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 629f87fd4..100a753a0 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellInventory.java @@ -5,8 +5,6 @@ import javax.annotation.Nonnull; -import appeng.api.config.Upgrades; -import appeng.api.implementations.items.IUpgradeModule; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; 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 1f13c20a7..c82356deb 100644 --- a/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java +++ b/src/main/java/com/glodblock/github/common/storage/FluidCellInventoryHandler.java @@ -1,7 +1,5 @@ package com.glodblock.github.common.storage; -import appeng.api.config.Upgrades; -import appeng.api.implementations.items.IUpgradeModule; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -10,6 +8,8 @@ import appeng.api.AEApi; import appeng.api.config.IncludeExclude; +import appeng.api.config.Upgrades; +import appeng.api.implementations.items.IUpgradeModule; import appeng.api.storage.ICellCacheRegistry; import appeng.api.storage.IMEInventory; import appeng.api.storage.StorageChannel; diff --git a/src/main/java/com/glodblock/github/proxy/CommonProxy.java b/src/main/java/com/glodblock/github/proxy/CommonProxy.java index 444cde9b5..792304b14 100644 --- a/src/main/java/com/glodblock/github/proxy/CommonProxy.java +++ b/src/main/java/com/glodblock/github/proxy/CommonProxy.java @@ -1,6 +1,5 @@ package com.glodblock.github.proxy; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import com.glodblock.github.FluidCraft;