diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2016-09-07 16:36:25 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-09-07 16:36:25 +1000 |
commit | 221c2f0fe81430e7dd4087e5f5845bd7c62ec56d (patch) | |
tree | d6e0faaef01b9d517828557e1be82500d476f95e /src/Java/gtPlusPlus/core/util/materials | |
parent | 5872c0947ce7bc788b03fa2fb690b8815d3d0a04 (diff) | |
download | GT5-Unofficial-221c2f0fe81430e7dd4087e5f5845bd7c62ec56d.tar.gz GT5-Unofficial-221c2f0fe81430e7dd4087e5f5845bd7c62ec56d.tar.bz2 GT5-Unofficial-221c2f0fe81430e7dd4087e5f5845bd7c62ec56d.zip |
% Refactored the entire project to stop using MiscUtils everywhere possible, now it's gtPlusPlus.
Diffstat (limited to 'src/Java/gtPlusPlus/core/util/materials')
-rw-r--r-- | src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java new file mode 100644 index 0000000000..69548eb49a --- /dev/null +++ b/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java @@ -0,0 +1,87 @@ +package gtPlusPlus.core.util.materials; + +import gregtech.api.enums.Dyes; +import gregtech.api.enums.Materials; +import gregtech.api.enums.TC_Aspects.TC_AspectStack; +import gregtech.api.enums.TextureSet; +import gregtech.api.objects.MaterialStack; +import gtPlusPlus.core.lib.MaterialInfo; +import gtPlusPlus.core.util.Utils; + +import java.util.List; + +import net.minecraftforge.common.util.EnumHelper; + +public class MaterialUtils { + + public static short firstID = 791; + + private static Class[][] commonTypes = + {{Materials.class, int.class, TextureSet.class, float.class, int.class, + int.class, int.class, int.class, int.class, int.class, int.class, + String.class, int.class, int.class, int.class, int.class, boolean.class, + boolean.class, int.class, int.class, int.class, Dyes.class, int.class, + List.class , List.class}}; + + public static Materials addGtMaterial(String enumNameForMaterial, TextureSet aIconSet, float aToolSpeed, int aToolDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, int aExtraData, List<MaterialStack> aMaterialList, List<TC_AspectStack> aAspects) + { + Utils.LOG_INFO("Attempting to add GT material: "+enumNameForMaterial); + return EnumHelper.addEnum(Materials.class, enumNameForMaterial, commonTypes, firstID++, aIconSet, aToolSpeed, aToolDurability, aToolQuality, aTypes, aR, aG, aB, aA, aLocalName, + aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, + aColor, aExtraData, aMaterialList, aAspects); + } + + + /* + * That's shown, many times, in the EnumHelper code, all the add functions just wrap the addEnum function. + You need the target enum class, and 2 arrays, 1 holding the types for the constructor arguments, + and the other holding the constructor argument values (the things being passed to the constructor) + + The 'decompiled' Boolean should be set to true if the class you're adding to has been decompiled/recompiled again. + (it adds a 2nd enum arguments that need to be accounted for, but isn't actually useful to you) + + * + *new Class[{int.class, TextureSet.class, float.class, int.class, + int.class, int.class, int.class, int.class, int.class, int.class, + String.class, int.class, int.class, int.class, int.class, boolean.class, + boolean.class, int.class, int.class, int.class, Dyes.class, int.class, + List.class , List.class}], + */ + + + + public static Materials GenerateGtMaterialForSingleUse(MaterialInfo s){ + + Materials yourName = EnumHelper.addEnum( + + Materials.class, s.name(), + + + + new Object[0] + + ); + try + { + + + + /*Class<? extends ItemCell> clz = item.getClass(); + Method methode = clz.getDeclaredMethod("addCell", int.class, InternalName.class, Block[].class); + methode.setAccessible(true); + ItemStack temp = (ItemStack) methode.invoke(item, cellID++, yourName, new Block[0]);*/ + + + + + + + return Materials.Abyssal; + } + catch(Exception e){ + e.printStackTrace(); + } + return null; + } + +} |