diff --git a/dependencies.gradle b/dependencies.gradle index c454665d..42e286b5 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -2,7 +2,7 @@ dependencies { compile('com.github.GTNewHorizons:NotEnoughItems:2.3.32-GTNH:dev') - compile('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-171-GTNH:dev') + compile('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-176-GTNH:dev') compile('curse.maven:cofh-core-69162:2388751') compile('com.github.GTNewHorizons:waila:1.5.22:dev') compileOnly('com.github.GTNewHorizons:ExtraCells2:2.5.32:dev') { transitive = false } diff --git a/src/main/java/com/glodblock/github/FluidCraft.java b/src/main/java/com/glodblock/github/FluidCraft.java index b18e3e4d..855d35f4 100644 --- a/src/main/java/com/glodblock/github/FluidCraft.java +++ b/src/main/java/com/glodblock/github/FluidCraft.java @@ -13,6 +13,7 @@ import com.glodblock.github.loader.CalculatorV2PluginLoader; import com.glodblock.github.loader.ChannelLoader; import com.glodblock.github.loader.ItemAndBlockHolder; import com.glodblock.github.loader.RecipeLoader; +import com.glodblock.github.loader.filter.FluidFilter; import com.glodblock.github.proxy.CommonProxy; import com.glodblock.github.util.ModAndClassUtil; @@ -77,6 +78,9 @@ public class FluidCraft { if (ModAndClassUtil.isV2) { CalculatorV2PluginLoader.installCalculatorV2Plugins(); } + if (ModAndClassUtil.isTypeFilter) { + FluidFilter.installFilter(); + } proxy.postInit(event); } diff --git a/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java b/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java index fa8e79a1..e51b7da4 100644 --- a/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/base/FCGuiMonitor.java @@ -84,6 +84,7 @@ public abstract class FCGuiMonitor> extends FCBaseMEGui protected GuiImgButton searchBoxSettings; protected GuiImgButton terminalStyleBox; protected GuiImgButton searchStringSave; + protected GuiImgButton typeFilter; @SuppressWarnings("unchecked") public FCGuiMonitor(final InventoryPlayer inventoryPlayer, final ITerminalHost te, final FCContainerMonitor c) { @@ -228,6 +229,15 @@ public abstract class FCGuiMonitor> extends FCBaseMEGui this.configSrc.getSetting(Settings.VIEW_MODE))); this.offsetY += 20; } + if (ModAndClassUtil.isTypeFilter && this instanceof GuiItemMonitor) { + this.buttonList.add( + this.typeFilter = new GuiImgButton( + this.guiLeft - 18, + this.offsetY, + Settings.TYPE_FILTER, + this.configSrc.getSetting(Settings.TYPE_FILTER))); + this.offsetY += 20; + } this.buttonList.add( this.SortDirBox = new GuiImgButton( @@ -658,6 +668,11 @@ public abstract class FCGuiMonitor> extends FCBaseMEGui return this.configSrc.getSetting(Settings.VIEW_MODE); } + @Override + public Enum getTypeFilter() { + return this.configSrc.getSetting(Settings.TYPE_FILTER); + } + @Override public void updateSetting(final IConfigManager manager, final Enum settingName, final Enum newValue) { if (this.SortByBox != null) { @@ -671,6 +686,9 @@ public abstract class FCGuiMonitor> extends FCBaseMEGui if (this.ViewBox != null) { this.ViewBox.set(this.configSrc.getSetting(Settings.VIEW_MODE)); } + if (this.typeFilter != null) { + this.typeFilter.set(this.configSrc.getSetting(Settings.TYPE_FILTER)); + } this.repo.updateView(); } diff --git a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerMonitor.java b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerMonitor.java index 3c92521c..a2cd9fb7 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/container/base/FCContainerMonitor.java @@ -61,6 +61,7 @@ public abstract class FCContainerMonitor> extends FCBaseCo this.clientCM.registerSetting(Settings.SORT_BY, SortOrder.NAME); this.clientCM.registerSetting(Settings.VIEW_MODE, ViewItems.ALL); this.clientCM.registerSetting(Settings.SORT_DIRECTION, SortDir.ASCENDING); + this.clientCM.registerSetting(Settings.TYPE_FILTER, TypeFilter.ALL); } public IMEMonitor getMonitor() { diff --git a/src/main/java/com/glodblock/github/common/parts/base/FCPart.java b/src/main/java/com/glodblock/github/common/parts/base/FCPart.java index 7584b0d1..d4044e45 100644 --- a/src/main/java/com/glodblock/github/common/parts/base/FCPart.java +++ b/src/main/java/com/glodblock/github/common/parts/base/FCPart.java @@ -82,6 +82,7 @@ public abstract class FCPart extends AEBasePart this.cm.registerSetting(Settings.SORT_BY, SortOrder.NAME); this.cm.registerSetting(Settings.VIEW_MODE, ViewItems.ALL); this.cm.registerSetting(Settings.SORT_DIRECTION, SortDir.ASCENDING); + this.cm.registerSetting(Settings.TYPE_FILTER, TypeFilter.ALL); } @MENetworkEventSubscribe diff --git a/src/main/java/com/glodblock/github/inventory/item/WirelessCraftingTerminalInventory.java b/src/main/java/com/glodblock/github/inventory/item/WirelessCraftingTerminalInventory.java index 9dd2d21b..23c8d22c 100644 --- a/src/main/java/com/glodblock/github/inventory/item/WirelessCraftingTerminalInventory.java +++ b/src/main/java/com/glodblock/github/inventory/item/WirelessCraftingTerminalInventory.java @@ -95,6 +95,7 @@ public class WirelessCraftingTerminalInventory extends MEMonitorHandler stack, TypeFilter typeFilter) { + if (stack instanceof IAEItemStack) { + Item item = ((IAEItemStack) stack).getItem(); + if (item != null) { + switch (typeFilter) { + case ITEMS: + return !(item instanceof ItemFluidDrop); + case FLUIDS: + return item instanceof ItemFluidDrop; + } + } + } + return true; + } +} diff --git a/src/main/java/com/glodblock/github/util/ModAndClassUtil.java b/src/main/java/com/glodblock/github/util/ModAndClassUtil.java index e915f7fb..118c8fdc 100644 --- a/src/main/java/com/glodblock/github/util/ModAndClassUtil.java +++ b/src/main/java/com/glodblock/github/util/ModAndClassUtil.java @@ -27,6 +27,7 @@ public final class ModAndClassUtil { public static boolean WAILA = false; public static boolean AVARITIA = false; public static boolean isV2; + public static boolean isTypeFilter; public static boolean isDoubleButton; public static boolean isSaveText; public static boolean isSearchStringTooltip; @@ -111,6 +112,13 @@ public final class ModAndClassUtil { } catch (ClassNotFoundException e) { isV2 = false; } + try { + Field filters = Class.forName("appeng.client.me.ItemRepo").getDeclaredField("filters"); + if (filters == null) isTypeFilter = false; + isTypeFilter = true; + } catch (ClassNotFoundException | NoSuchFieldException e) { + isTypeFilter = false; + } try { essentiaGas = Class.forName("thaumicenergistics.common.fluids.GaseousEssentia");