diff options
author | Jordan Byrne <draknyte1@hotmail.com> | 2017-12-15 12:27:09 +1000 |
---|---|---|
committer | Jordan Byrne <draknyte1@hotmail.com> | 2017-12-15 12:27:09 +1000 |
commit | 839e8d79e6014ed45e324f9422a57098d6159b79 (patch) | |
tree | fdae0a828983cfaee2c4b9c7ffd26942b2c6da99 /src/Java/gtPlusPlus/core/util/materials | |
parent | 51bf52ffba6d4f4b31f0c2caf8a809bd5695c8dc (diff) | |
download | GT5-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.java | 27 |
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; + } + } |