From f4ef7edf862e3d5f369109336fad4a55c5f3794d Mon Sep 17 00:00:00 2001 From: fscan Date: Sat, 14 Jul 2018 21:07:00 +0200 Subject: [PATCH] InventoryTweak sorting support (#3603) --- gradle.properties | 1 + gradle/scripts/dependencies.gradle | 8 +++- .../appeng/integration/IntegrationType.java | 10 ++++- .../InventoryTweaksModule.java | 41 +++++++++++++++++++ src/main/java/appeng/util/ItemSorters.java | 6 +-- 5 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 src/main/java/appeng/integration/modules/inventorytweaks/InventoryTweaksModule.java diff --git a/gradle.properties b/gradle.properties index a00780633..4f893da4a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -25,6 +25,7 @@ ic2_version=2.8.73-ex112 top_version=1.12-1.4.23-16 cofhcore_version=1.12.2-4.5.2.19 crafttweaker_version=4.1.8.9 +inventorytweaks_version=1.63 ######################################################### # Deployment # diff --git a/gradle/scripts/dependencies.gradle b/gradle/scripts/dependencies.gradle index 38fe0a98b..efdca4198 100644 --- a/gradle/scripts/dependencies.gradle +++ b/gradle/scripts/dependencies.gradle @@ -68,6 +68,11 @@ repositories { name 'modmaven' url "https://modmaven.k-4u.nl/" } + + maven { + name = "CurseForge" + url = "https://minecraft.curseforge.com/api/maven/" + } } configurations { @@ -88,7 +93,8 @@ dependencies { compileOnly "mcjty.theoneprobe:TheOneProbe-1.12:${top_version}:api" compileOnly "cofh:CoFHCore:${cofhcore_version}:deobf" compileOnly "CraftTweaker2:CraftTweaker2-API:${crafttweaker_version}" - + compileOnly "inventory-tweaks:InventoryTweaks:${inventorytweaks_version}:api" + // at runtime, use the full JEI jar runtime "mezz.jei:jei_${minecraft_version}:${jei_version}" diff --git a/src/main/java/appeng/integration/IntegrationType.java b/src/main/java/appeng/integration/IntegrationType.java index 3c8041144..c06a485a0 100644 --- a/src/main/java/appeng/integration/IntegrationType.java +++ b/src/main/java/appeng/integration/IntegrationType.java @@ -21,6 +21,7 @@ package appeng.integration; import appeng.integration.modules.crafttweaker.CTModule; import appeng.integration.modules.ic2.IC2Module; +import appeng.integration.modules.inventorytweaks.InventoryTweaksModule; import appeng.integration.modules.jei.JEIModule; import appeng.integration.modules.theoneprobe.TheOneProbeModule; import appeng.integration.modules.waila.WailaModule; @@ -50,7 +51,14 @@ public enum IntegrationType } }, - InvTweaks( IntegrationSide.CLIENT, "Inventory Tweaks", "inventorytweaks" ), + InvTweaks( IntegrationSide.CLIENT, "Inventory Tweaks", "inventorytweaks" ) + { + @Override + public IIntegrationModule createInstance() + { + return Integrations.setInvTweaks( new InventoryTweaksModule() ); + } + }, JEI( IntegrationSide.CLIENT, "Just Enough Items", "jei" ) { diff --git a/src/main/java/appeng/integration/modules/inventorytweaks/InventoryTweaksModule.java b/src/main/java/appeng/integration/modules/inventorytweaks/InventoryTweaksModule.java new file mode 100644 index 000000000..3bcb62301 --- /dev/null +++ b/src/main/java/appeng/integration/modules/inventorytweaks/InventoryTweaksModule.java @@ -0,0 +1,41 @@ + +package appeng.integration.modules.inventorytweaks; + + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fml.common.Loader; + +import invtweaks.api.InvTweaksAPI; + +import appeng.integration.abstraction.IInvTweaks; + + +public class InventoryTweaksModule implements IInvTweaks +{ + InvTweaksAPI api = null; + + public InventoryTweaksModule() + { + try + { + api = (InvTweaksAPI) Class.forName( "invtweaks.forge.InvTweaksMod", true, Loader.instance().getModClassLoader() ) + .getField( "instance" ) + .get( null ); + } + catch( Exception ex ) + { + } + } + + @Override + public boolean isEnabled() + { + return api != null; + } + + @Override + public int compareItems( ItemStack i, ItemStack j ) + { + return api.compareItems( i, j ); + } +} diff --git a/src/main/java/appeng/util/ItemSorters.java b/src/main/java/appeng/util/ItemSorters.java index 7fc4eb92d..162d8a8ea 100644 --- a/src/main/java/appeng/util/ItemSorters.java +++ b/src/main/java/appeng/util/ItemSorters.java @@ -87,7 +87,7 @@ public class ItemSorters return CONFIG_BASED_SORT_BY_NAME.compare( o1, o2 ); } - final int cmp = api.compareItems( o1.asItemStackRepresentation(), o2.asItemStackRepresentation() ); + final int cmp = api.compareItems( o1.createItemStack(), o2.createItemStack() ); return applyDirection( cmp ); } }; @@ -120,8 +120,8 @@ public class ItemSorters } private static int applyDirection( int cmp ) - { - if ( getDirection() == SortDir.ASCENDING ) + { + if( getDirection() == SortDir.ASCENDING ) { return cmp; }