diff options
4 files changed, 146 insertions, 1 deletions
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<a.length;r++){ + c[r]=Integer.parseInt(a[r]); + } + for (int r=0;r<b.length;r++){ + d[r]=Integer.parseInt(b[r]); + } + Versioning[] e = new Versioning[MathUtils.returnLargestNumber(c.length, d.length)]; + for (int r=0;r<e.length;r++){ + + + if (c[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<e.length;r++){ + if (e[0] == Versioning.NEWER){ + return Versioning.NEWER; + } + else if (e[0] == Versioning.OLDER){ + return Versioning.OLDER; + } + else { + if (e[r] == Versioning.OLDER){ + + } + + return Versioning.NEWER; + } + } + + return null; + } + + public static ToolMaterial generateToolMaterialFromGT(Materials gtMaterial){ String name = Utils.sanitizeString(gtMaterial.mDefaultLocalName); @@ -561,6 +622,31 @@ public class Utils { return temp; } + + + + + + + + + + + + + public static enum Versioning { + EQUAL(0), + NEWER(1), + OLDER(-1); + private int versioningInfo; + private Versioning (final int versionStatus){ + this.versioningInfo = versionStatus; + } + public int getTexture() { + return versioningInfo; + } + } + } diff --git a/src/Java/gtPlusPlus/core/util/math/MathUtils.java b/src/Java/gtPlusPlus/core/util/math/MathUtils.java index c864df491c..a7cb916d0d 100644 --- a/src/Java/gtPlusPlus/core/util/math/MathUtils.java +++ b/src/Java/gtPlusPlus/core/util/math/MathUtils.java @@ -266,5 +266,18 @@ public class MathUtils { } return Utils.rgbtoHexValue(RGBA[0], RGBA[1], RGBA[2]); } + + + public final static int returnLargestNumber(int a, int b){ + if (a > 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)); + + } + +} |