aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/util/materials
diff options
context:
space:
mode:
authorJordan Byrne <draknyte1@hotmail.com>2017-12-15 12:27:09 +1000
committerJordan Byrne <draknyte1@hotmail.com>2017-12-15 12:27:09 +1000
commit839e8d79e6014ed45e324f9422a57098d6159b79 (patch)
treefdae0a828983cfaee2c4b9c7ffd26942b2c6da99 /src/Java/gtPlusPlus/core/util/materials
parent51bf52ffba6d4f4b31f0c2caf8a809bd5695c8dc (diff)
downloadGT5-Unofficial-839e8d79e6014ed45e324f9422a57098d6159b79.tar.gz
GT5-Unofficial-839e8d79e6014ed45e324f9422a57098d6159b79.tar.bz2
GT5-Unofficial-839e8d79e6014ed45e324f9422a57098d6159b79.zip
% Tried to allow handling of re-enabling disabled GT materials.
Diffstat (limited to 'src/Java/gtPlusPlus/core/util/materials')
-rw-r--r--src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java
index 4a6f7c660e..3e79d46c19 100644
--- a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java
+++ b/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java
@@ -1,14 +1,19 @@
package gtPlusPlus.core.util.materials;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.List;
import org.apache.commons.lang3.reflect.FieldUtils;
import gregtech.api.enums.*;
+import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.material.state.MaterialState;
import gtPlusPlus.core.util.StringUtils;
import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
@@ -226,4 +231,26 @@ public class MaterialUtils {
return mName;
}
+ public static boolean tryEnableMaterial(Materials mMaterial){
+ if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK){
+ return false;
+ }
+ return ReflectionUtils.setField(mMaterial, "mHasParentMod", true);
+ }
+
+ public static boolean tryEnableMaterialPart(OrePrefixes prefix, Materials mMaterial){
+ if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK){
+ return false;
+ }
+ try {
+ Method enableComponent = Class.forName("gregtech.api.enums.OrePrefixes").getDeclaredMethod("enableComponent", Materials.class);
+ enableComponent.invoke(prefix, mMaterial);
+ return true;
+ }
+ catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException | ClassNotFoundException e) {
+ Utils.LOG_INFO("Failed to enabled "+prefix.mRegularLocalName+" for "+mMaterial.mDefaultLocalName);
+ }
+ return false;
+ }
+
}