aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/util/materials
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-09-07 16:36:25 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-09-07 16:36:25 +1000
commit221c2f0fe81430e7dd4087e5f5845bd7c62ec56d (patch)
treed6e0faaef01b9d517828557e1be82500d476f95e /src/Java/gtPlusPlus/core/util/materials
parent5872c0947ce7bc788b03fa2fb690b8815d3d0a04 (diff)
downloadGT5-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.java87
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;
+ }
+
+}