aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/util
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2018-10-26 15:46:55 +0100
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2018-10-26 15:46:55 +0100
commit2cf05c4deaf3a26626853431f725d0ca375ffec3 (patch)
tree025ae135b88af6b9a0437a3721bcc2dec9ccc3e3 /src/Java/gtPlusPlus/core/util
parente9dbe58c39b56d562bcdc17b1100a7c26ce7c10e (diff)
downloadGT5-Unofficial-2cf05c4deaf3a26626853431f725d0ca375ffec3.tar.gz
GT5-Unofficial-2cf05c4deaf3a26626853431f725d0ca375ffec3.tar.bz2
GT5-Unofficial-2cf05c4deaf3a26626853431f725d0ca375ffec3.zip
+ Added 4 new High-Tier Alloys. Lafium, Cinobite, Pikyonite & Abyssal.
+ Added missing Germanium Dust. + Added compatibility for Witchery. - Removed portability of Tanks for GTNH, tanks are still portable otherwise. $ Fixed calculations for automatic recipe generation, EBF and ABS recipe requirements for GT++ Alloys are now significantly increased. $ Fixed missing Control Core textures. % Cleaned up some recipe generation. % Improved Material.java.
Diffstat (limited to 'src/Java/gtPlusPlus/core/util')
-rw-r--r--src/Java/gtPlusPlus/core/util/math/MathUtils.java107
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java38
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java41
3 files changed, 182 insertions, 4 deletions
diff --git a/src/Java/gtPlusPlus/core/util/math/MathUtils.java b/src/Java/gtPlusPlus/core/util/math/MathUtils.java
index 7ec898ce3a..03146d20d3 100644
--- a/src/Java/gtPlusPlus/core/util/math/MathUtils.java
+++ b/src/Java/gtPlusPlus/core/util/math/MathUtils.java
@@ -357,6 +357,14 @@ public class MathUtils {
}
}
+ public static byte safeByte(long number){
+ return number>Byte.MAX_VALUE ? Byte.MAX_VALUE :(byte)number;
+ }
+
+ public static short safeShort(long number){
+ return number>Short.MAX_VALUE ? Short.MAX_VALUE :(short)number;
+ }
+
public static int safeInt(long number, int margin){
return number>Integer.MAX_VALUE-margin ? Integer.MAX_VALUE-margin :(int)number;
}
@@ -376,15 +384,99 @@ public class MathUtils {
}
- public static long getAverage(AutoMap aDataSet) {
+
+ /*
+ * Averages
+ */
+
+ public static byte getByteAverage(AutoMap<?> aDataSet) {
+ byte[] aNewSet = new byte[aDataSet.size()];
+ for (int u=0;u<aDataSet.size();u++) {
+ aNewSet[u] = (byte) aDataSet.get(u);
+ }
+ return getByteAverage(aNewSet);
+ }
+
+ public static short getShortAverage(AutoMap<?> aDataSet) {
+ short[] aNewSet = new short[aDataSet.size()];
+ for (int u=0;u<aDataSet.size();u++) {
+ aNewSet[u] = (short) aDataSet.get(u);
+ }
+ return getShortAverage(aNewSet);
+ }
+
+ public static int getIntAverage(AutoMap<?> aDataSet) {
+ int[] aNewSet = new int[aDataSet.size()];
+ for (int u=0;u<aDataSet.size();u++) {
+ aNewSet[u] = (int) aDataSet.get(u);
+ }
+ return getIntAverage(aNewSet);
+ }
+
+ public static float getFloatAverage(AutoMap<?> aDataSet) {
+ float[] aNewSet = new float[aDataSet.size()];
+ for (int u=0;u<aDataSet.size();u++) {
+ aNewSet[u] = (float) aDataSet.get(u);
+ }
+ return getFloatAverage(aNewSet);
+ }
+
+ public static long getLongAverage(AutoMap<?> aDataSet) {
long[] aNewSet = new long[aDataSet.size()];
for (int u=0;u<aDataSet.size();u++) {
aNewSet[u] = (long) aDataSet.get(u);
}
- return getAverage(aNewSet);
+ return getLongAverage(aNewSet);
}
- public static long getAverage(long[] aDataSet) {
+ public static double getDoubleAverage(AutoMap<?> aDataSet) {
+ double[] aNewSet = new double[aDataSet.size()];
+ for (int u=0;u<aDataSet.size();u++) {
+ aNewSet[u] = (double) aDataSet.get(u);
+ }
+ return getDoubleAverage(aNewSet);
+ }
+
+
+
+ public static byte getByteAverage(byte[] aDataSet) {
+ int divisor = aDataSet.length;
+ byte total = 0;
+ for (byte i : aDataSet) {
+ total += i;
+ }
+ byte result = safeByte(total/divisor);
+ return result;
+ }
+
+ public static short getShortAverage(short[] aDataSet) {
+ int divisor = aDataSet.length;
+ short total = 0;
+ for (short i : aDataSet) {
+ total += i;
+ }
+ short result = safeShort(total/divisor);
+ return result;
+ }
+ public static int getIntAverage(int[] aDataSet) {
+ int divisor = aDataSet.length;
+ int total = 0;
+ for (int i : aDataSet) {
+ total += i;
+ }
+ int result = safeInt(total/divisor);
+ return result;
+ }
+ public static float getFloatAverage(float[] aDataSet) {
+ int divisor = aDataSet.length;
+ float total = 0;
+ for (float i : aDataSet) {
+ total += i;
+ }
+ float result = (total/divisor);
+ return result;
+ }
+ public static long getLongAverage(long[] aDataSet) {
int divisor = aDataSet.length;
long total = 0;
for (long i : aDataSet) {
@@ -393,5 +485,14 @@ public class MathUtils {
long result = (total/divisor);
return result;
}
+ public static double getDoubleAverage(double[] aDataSet) {
+ int divisor = aDataSet.length;
+ double total = 0;
+ for (double i : aDataSet) {
+ total += i;
+ }
+ double result = (total/divisor);
+ return result;
+ }
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
index e4f2008aac..5bdd42b02d 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
@@ -543,6 +543,44 @@ public class FluidUtils {
public static FluidStack getLiquidXP(final int amount){
return EnchantingUtils.getLiquidXP(amount);
}
+
+ public static boolean doesFluidExist(String aFluidName) {
+ FluidStack aFStack1 = (FluidUtils.getFluidStack("molten"+"."+aFluidName.toLowerCase(), 1));
+ FluidStack aFStack2 = (FluidUtils.getFluidStack("fluid"+"."+aFluidName.toLowerCase(), 1));
+ FluidStack aFStack3 = (FluidUtils.getFluidStack(aFluidName.toLowerCase(), 1));
+ FluidStack aFStack4 = (FluidUtils.getFluidStack(aFluidName, 1));
+ FluidStack aFStack5 = (FluidUtils.getFluidStack("liquid_"+aFluidName.toLowerCase(), 1));
+ FluidStack aFStack6 = (FluidUtils.getFluidStack("liquid"+"."+aFluidName.toLowerCase(), 1));
+ return aFStack1 == null && aFStack2 == null && aFStack3 == null && aFStack4 == null && aFStack5 == null && aFStack6 == null;
+ }
+
+ public static FluidStack getWildcardFluidStack(String aFluidName, int amount) {
+ FluidStack aFStack1 = (FluidUtils.getFluidStack("molten"+"."+aFluidName.toLowerCase(), 1));
+ FluidStack aFStack2 = (FluidUtils.getFluidStack("fluid"+"."+aFluidName.toLowerCase(), 1));
+ FluidStack aFStack3 = (FluidUtils.getFluidStack(aFluidName.toLowerCase(), 1));
+ FluidStack aFStack4 = (FluidUtils.getFluidStack(aFluidName, 1));
+ FluidStack aFStack5 = (FluidUtils.getFluidStack("liquid_"+aFluidName.toLowerCase(), 1));
+ FluidStack aFStack6 = (FluidUtils.getFluidStack("liquid"+"."+aFluidName.toLowerCase(), 1));
+ if (aFStack1 != null) {
+ return aFStack1;
+ }
+ if (aFStack2 != null) {
+ return aFStack2;
+ }
+ if (aFStack3 != null) {
+ return aFStack3;
+ }
+ if (aFStack4 != null) {
+ return aFStack4;
+ }
+ if (aFStack5 != null) {
+ return aFStack5;
+ }
+ if (aFStack6 != null) {
+ return aFStack6;
+ }
+ return null;
+ }
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java
index ae43abe3c5..553f3f7efa 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java
@@ -182,6 +182,42 @@ public class MaterialUtils {
return 0;
}
}
+
+ public static int getVoltageForTier(final int aTier) {
+ if (aTier == 0) {
+ return 16;
+ }
+ if (aTier == 1) {
+ return 30;
+ }
+ if (aTier == 2) {
+ return 120;
+ }
+ if (aTier == 3) {
+ return 480;
+ }
+ if (aTier == 4) {
+ return 1600;
+ }
+ if (aTier == 5) {
+ return 6400;
+ }
+ if (aTier == 6) {
+ return 25000;
+ }
+ if (aTier == 7) {
+ return 100000;
+ }
+ if (aTier == 8) {
+ return 400000;
+ }
+ if (aTier == 9) {
+ return 1600000;
+ }
+
+
+ return 120;
+ }
private static Materials getMaterialByName(String materialName) {
@@ -202,7 +238,10 @@ public class MaterialUtils {
public static String getMaterialName(Materials mat){
String mName;
try {
- mName = (String) FieldUtils.getDeclaredField(Materials.class, "mName", true).get(mat);
+ mName = (String) FieldUtils.getDeclaredField(Materials.class, "mDefaultLocalName", true).get(mat);
+ if (mName == null) {
+ mName = (String) FieldUtils.getDeclaredField(Materials.class, "mName", true).get(mat);
+ }
}
catch (IllegalArgumentException | IllegalAccessException e) {
mName = mat.name();