From 018fc6e51683545fbdb4c0d76d80d6db3a982fbb Mon Sep 17 00:00:00 2001 From: draknyte1 Date: Tue, 7 Feb 2017 14:16:52 +1000 Subject: + Added a returnLargestNumber function to MathUtils.java + Wrote up some really bad version parsing code, will replace with a Regex function later. % Changed Growthcraft FishTrap handling to support newer versions. --- src/Java/gtPlusPlus/core/util/Utils.java | 86 ++++++++++++++++++++++ src/Java/gtPlusPlus/core/util/math/MathUtils.java | 13 ++++ .../xmod/growthcraft/fishtrap/FishTrapHandler.java | 24 +++++- .../xmod/growthcraft/fishtrap/Growthcraft_New.java | 24 ++++++ 4 files changed, 146 insertions(+), 1 deletion(-) create mode 100644 src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_New.java (limited to 'src/Java/gtPlusPlus') diff --git a/src/Java/gtPlusPlus/core/util/Utils.java b/src/Java/gtPlusPlus/core/util/Utils.java index 1e9661dd30..db8ed87231 100644 --- a/src/Java/gtPlusPlus/core/util/Utils.java +++ b/src/Java/gtPlusPlus/core/util/Utils.java @@ -19,6 +19,7 @@ import java.lang.reflect.Method; import java.util.*; import net.minecraft.block.Block; +import net.minecraft.block.Block.SoundType; import net.minecraft.entity.Entity; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemStack; @@ -536,6 +537,66 @@ public class Utils { return output; } + + public static String[] parseVersion(String version){ + return parseVersion(version, "//."); + } + + public static String[] parseVersion(String version, String delimiter){ + String[] versionArray = version.split(delimiter); + return versionArray; + } + + public static Versioning compareModVersion (String currentVersion, String expectedVersion){ + return compareModVersion(currentVersion, expectedVersion, "//."); + } + + public static Versioning compareModVersion (String currentVersion, String expectedVersion, String delimiter){ + String[] a = parseVersion(currentVersion, delimiter); + String[] b = parseVersion(expectedVersion, delimiter); + int[] c = new int[a.length]; + int[] d = new int[b.length]; + for (int r=0;r d[r]){ + e[r] = Versioning.NEWER; + } + else if (c[r] < d[r]){ + e[r] = Versioning.OLDER; + } + else if (c[r] == d[r]){ + e[r] = Versioning.EQUAL; + } + } + + for (int r=0;r b){ + return a; + } + else if (a == b){ + return a; + } + else { + return b; + } + } } diff --git a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java index 472c4c6a1f..30c799d49b 100644 --- a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java +++ b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java @@ -13,7 +13,12 @@ public class FishTrapHandler { private static final String[] fishTypes = {"fish", "junk", "treasure"}; protected static void addFish(String lootType, ItemStack lootStack, int lootChance){ - if (LoadedMods.getModVersion("Growthcraft").contains("2.3.1")){ + + String GCVersion = LoadedMods.getModVersion("Growthcraft"); + + String[] versionString = GCVersion.split("//."); + + if (LoadedMods.getModVersion("Growthcraft").contains("2.3.1") || versionString[1].equals("3")){ if (lootType.equals(fishTypes[0])){ Growthcraft_Old.addTrapFish(lootStack, lootChance); Utils.LOG_INFO("Added "+lootStack.getDisplayName()+" as an extra Fish for Growthcraft Fishtraps."); @@ -30,6 +35,23 @@ public class FishTrapHandler { return; } } + else if (LoadedMods.getModVersion("Growthcraft").contains("2.7.2")){ + if (lootType.equals(fishTypes[0])){ + Growthcraft_New.addTrapFish(lootStack, lootChance); + Utils.LOG_INFO("Added "+lootStack.getDisplayName()+" as an extra Fish for Growthcraft Fishtraps."); + } + else if (lootType.equals(fishTypes[1])){ + Growthcraft_New.addTrapJunk(lootStack, lootChance); + Utils.LOG_INFO("Added "+lootStack.getDisplayName()+" as extra Junk for Growthcraft Fishtraps."); + } + else if (lootType.equals(fishTypes[2])){ + Growthcraft_New.addTrapTreasure(lootStack, lootChance); + Utils.LOG_INFO("Added "+lootStack.getDisplayName()+" as extra Treasure for Growthcraft Fishtraps."); + } + else { + return; + } + } else { Utils.LOG_INFO("Extra Fish loot for Growthcraft Fishtraps disabled. Found V."+LoadedMods.getModVersion("Growthcraft")); diff --git a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_New.java b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_New.java new file mode 100644 index 0000000000..5b744623c7 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_New.java @@ -0,0 +1,24 @@ +package gtPlusPlus.xmod.growthcraft.fishtrap; + +import growthcraft.api.fishtrap.FishTrapEntry; +import growthcraft.api.fishtrap.FishTrapRegistry; +import net.minecraft.item.ItemStack; + +public class Growthcraft_New { + + public static void addTrapJunk(ItemStack loot, int lootChance){ + FishTrapRegistry.instance().addTrapJunk(new FishTrapEntry(loot, lootChance)); + + } + + public static void addTrapTreasure(ItemStack loot, int lootChance){ + FishTrapRegistry.instance().addTrapTreasure(new FishTrapEntry(loot, lootChance)); + + } + + public static void addTrapFish(ItemStack loot, int lootChance){ + FishTrapRegistry.instance().addTrapFish(new FishTrapEntry(loot, lootChance)); + + } + +} -- cgit