aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
authordraknyte1 <draknyte1@hotmail.com>2017-02-07 14:16:52 +1000
committerdraknyte1 <draknyte1@hotmail.com>2017-02-07 14:16:52 +1000
commit018fc6e51683545fbdb4c0d76d80d6db3a982fbb (patch)
tree9bb8d88435b6ec689c743eaba15123ee3b3e4598 /src/Java/gtPlusPlus
parent2a688e006c07c1240966c2829906a1752031153c (diff)
downloadGT5-Unofficial-018fc6e51683545fbdb4c0d76d80d6db3a982fbb.tar.gz
GT5-Unofficial-018fc6e51683545fbdb4c0d76d80d6db3a982fbb.tar.bz2
GT5-Unofficial-018fc6e51683545fbdb4c0d76d80d6db3a982fbb.zip
+ 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.
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/core/util/Utils.java86
-rw-r--r--src/Java/gtPlusPlus/core/util/math/MathUtils.java13
-rw-r--r--src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java24
-rw-r--r--src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_New.java24
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));
+
+ }
+
+}