aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/material
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/core/material')
-rw-r--r--src/Java/gtPlusPlus/core/material/ELEMENT.java4
-rw-r--r--src/Java/gtPlusPlus/core/material/Material.java158
-rw-r--r--src/Java/gtPlusPlus/core/material/MaterialStack.java14
3 files changed, 155 insertions, 21 deletions
diff --git a/src/Java/gtPlusPlus/core/material/ELEMENT.java b/src/Java/gtPlusPlus/core/material/ELEMENT.java
index 307105eaf0..9c05e53165 100644
--- a/src/Java/gtPlusPlus/core/material/ELEMENT.java
+++ b/src/Java/gtPlusPlus/core/material/ELEMENT.java
@@ -46,7 +46,7 @@ public final class ELEMENT {
public static final Material RUBIDIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Rubidium);
public static final Material STRONTIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Strontium);
public static final Material YTTRIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Yttrium);
- public static final Material ZIRCONIUM = new Material("Zirconium", new short[]{255, 250, 205}, 1855, 4377, 40, 51, false, null);//Not a GT Inherited Material
+ public static final Material ZIRCONIUM = new Material("Zirconium", new short[]{255, 250, 205}, 1855, 4377, 40, 51, false, null, "Zr", 0);//Not a GT Inherited Material
public static final Material NIOBIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Niobium);
public static final Material MOLYBDENUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Molybdenum);
//public static final Material TECHNETIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Technetium);
@@ -79,7 +79,7 @@ public final class ELEMENT {
public static final Material THORIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Thorium);
public static final Material URANIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Uranium);
public static final Material PLUTONIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Plutonium);
- public static final Material URANIUM233 = new Material("Uranium-233", new short[]{73, 220, 83, 0}, 1132, 4131, 92, 141, false, null);//Not a GT Inherited Material
+ public static final Material URANIUM233 = new Material("Uranium-233", new short[]{73, 220, 83, 0}, 1132, 4131, 92, 141, false, null, MaterialUtils.superscript("233U"), 0);//Not a GT Inherited Material
}
diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java
index 3e5c3a4d67..d6f5d77f20 100644
--- a/src/Java/gtPlusPlus/core/material/Material.java
+++ b/src/Java/gtPlusPlus/core/material/Material.java
@@ -9,12 +9,16 @@ public class Material {
final String unlocalizedName;
final String localizedName;
+
+ protected Object dataVar;
private MaterialStack[] materialInput = new MaterialStack[4];
final short[] RGBA;
final boolean usesBlastFurnace;
+ public final boolean isRadioactive;
+ public final byte vRadioationLevel;
final int meltingPointK;
final int boilingPointK;
@@ -25,8 +29,17 @@ public class Material {
final long vMass;
public final int vTier;
public final int vVoltageMultiplier;
+ public final String vChemicalFormula;
+
+ public Material(String materialName, short[] rgba, int meltingPoint, int boilingPoint, long protons, long neutrons, boolean blastFurnace, MaterialStack[] inputs){
+ this(materialName, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, inputs, "", 0);
+ }
+
+ public Material(String materialName, short[] rgba, int meltingPoint, int boilingPoint, long protons, long neutrons, boolean blastFurnace, MaterialStack[] inputs, int radiationLevel){
+ this(materialName, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, inputs, "", radiationLevel);
+ }
- public Material(String materialName, short[] rgba, int meltingPoint, int boilingPoint, long protons, long neutrons, boolean blastFurnace, MaterialStack[] inputs){
+ public Material(String materialName, short[] rgba, int meltingPoint, int boilingPoint, long protons, long neutrons, boolean blastFurnace, MaterialStack[] inputs, String chemicalFormula, int radiationLevel){
this.unlocalizedName = Utils.sanitizeString(materialName);
this.localizedName = materialName;
@@ -41,6 +54,21 @@ public class Material {
this.vProtons = protons;
this.vNeutrons = neutrons;
this.vMass = getMass();
+ if (chemicalFormula.equals("")){
+ this.vChemicalFormula = getChemicalFormula(inputs);
+ }
+ else{
+ this.vChemicalFormula = chemicalFormula;
+ }
+
+ if (radiationLevel != 0){
+ this.isRadioactive = true;
+ this.vRadioationLevel = (byte) radiationLevel;
+ }
+ else {
+ this.isRadioactive = false;
+ this.vRadioationLevel = (byte) radiationLevel;
+ }
if (getMeltingPoint_K() >= 0 && getMeltingPoint_K() <= 750){
this.vTier = 1;
@@ -91,6 +119,9 @@ public class Material {
}
}
}
+
+ dataVar = MathUtils.generateSingularRandomHexValue();
+
Utils.LOG_INFO("Creating a Material instance for "+materialName);
Utils.LOG_INFO("Protons: "+vProtons);
Utils.LOG_INFO("Neutrons: "+vNeutrons);
@@ -110,8 +141,13 @@ public class Material {
public short[] getRGBA(){
return RGBA;
}
-
+
public int getRgbAsHex(){
+
+ int returnValue = Utils.rgbtoHexValue(RGBA[0], RGBA[1], RGBA[2]);
+ if (returnValue == 0){
+ return (int) dataVar;
+ }
return Utils.rgbtoHexValue(RGBA[0], RGBA[1], RGBA[2]);
}
@@ -148,15 +184,15 @@ public class Material {
}
public ItemStack getDust(int stacksize){
- return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dust"+unlocalizedName, stacksize);
+ return UtilsItems.getItemStackOfAmountFromOreDict("dust"+unlocalizedName, stacksize);
}
public ItemStack getSmallDust(int stacksize){
- return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dustSmall"+unlocalizedName, stacksize);
+ return UtilsItems.getItemStackOfAmountFromOreDict("dustSmall"+unlocalizedName, stacksize);
}
public ItemStack getTinyDust(int stacksize){
- return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dustTiny"+unlocalizedName, stacksize);
+ return UtilsItems.getItemStackOfAmountFromOreDict("dustTiny"+unlocalizedName, stacksize);
}
public ItemStack[] getValidInputStacks(){
@@ -164,23 +200,43 @@ public class Material {
}
public ItemStack getIngot(int stacksize){
- return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("ingot"+unlocalizedName, stacksize);
+ return UtilsItems.getItemStackOfAmountFromOreDict("ingot"+unlocalizedName, stacksize);
}
public ItemStack getPlate(int stacksize){
- return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("plate"+unlocalizedName, stacksize);
+ return UtilsItems.getItemStackOfAmountFromOreDict("plate"+unlocalizedName, stacksize);
}
public ItemStack getPlateDouble(int stacksize){
- return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("plateDouble"+unlocalizedName, stacksize);
+ return UtilsItems.getItemStackOfAmountFromOreDict("plateDouble"+unlocalizedName, stacksize);
}
-
+
public ItemStack getGear(int stacksize){
- return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("gear"+unlocalizedName, stacksize);
+ return UtilsItems.getItemStackOfAmountFromOreDict("gear"+unlocalizedName, stacksize);
}
-
+
public ItemStack getRod(int stacksize){
- return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("stick"+unlocalizedName, stacksize);
+ return UtilsItems.getItemStackOfAmountFromOreDict("stick"+unlocalizedName, stacksize);
+ }
+
+ public ItemStack getLongRod(int stacksize){
+ return UtilsItems.getItemStackOfAmountFromOreDict("stickLong"+unlocalizedName, stacksize);
+ }
+
+ public ItemStack getBolt(int stacksize){
+ return UtilsItems.getItemStackOfAmountFromOreDict("bolt"+unlocalizedName, stacksize);
+ }
+
+ public ItemStack getScrew(int stacksize){
+ return UtilsItems.getItemStackOfAmountFromOreDict("screw"+unlocalizedName, stacksize);
+ }
+
+ public ItemStack getRing(int stacksize){
+ return UtilsItems.getItemStackOfAmountFromOreDict("ring"+unlocalizedName, stacksize);
+ }
+
+ public ItemStack getRotor(int stacksize){
+ return UtilsItems.getItemStackOfAmountFromOreDict("rotor"+unlocalizedName, stacksize);
}
public ItemStack[] getMaterialComposites(){
@@ -221,4 +277,82 @@ public class Material {
return new int[]{};
}
+
+
+
+private int getInputMaterialCount(MaterialStack[] materialInput){
+ int i = 0;
+ for (int r=0;r<4;r++){
+ try {
+ if (!materialInput[r].equals(null)){
+ i++;
+ }
+ } catch(Throwable x){
+ return i;
+ }
+ }
+ return i;
+}
+
+
+ public String getChemicalFormula(MaterialStack[] materialInput){
+ if (materialInput != null && materialInput.length >= 1){
+ int f = getInputMaterialCount(materialInput);
+ String[] formulaComponents = new String[f];
+ for (int i=0;i<f;i++){
+ try {
+ if (materialInput[i] != null){
+ formulaComponents[i] = materialInput[i].stackMaterial.vChemicalFormula;
+ Utils.LOG_INFO("LOOK AT ME IN THE LOG - " + formulaComponents[i]);
+ }
+ else{
+ Utils.LOG_INFO("LOOK AT ME IN THE LOG - materialInput[i] was null");
+ }
+ } catch (Throwable e){
+ Utils.LOG_INFO("LOOK AT ME IN THE LOG - got an error");
+ return "??";
+ }
+ }
+
+ String properName = "";
+ for (int r = 0; r < f; r++){
+ properName = properName + formulaComponents[r];
+ Utils.LOG_INFO("LOOK AT ME IN THE LOG - "+properName);
+ }
+ if (!properName.equals(""))
+ return properName;
+
+ }
+ return "??";
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
}
diff --git a/src/Java/gtPlusPlus/core/material/MaterialStack.java b/src/Java/gtPlusPlus/core/material/MaterialStack.java
index f8b9b35bd8..3682b73cfe 100644
--- a/src/Java/gtPlusPlus/core/material/MaterialStack.java
+++ b/src/Java/gtPlusPlus/core/material/MaterialStack.java
@@ -5,12 +5,12 @@ import net.minecraft.item.ItemStack;
public class MaterialStack {
- final Material materialInput;
+ final Material stackMaterial;
final double percentageToUse;
public MaterialStack(Material inputs, double percentage){
- this.materialInput = inputs;
+ this.stackMaterial = inputs;
this.percentageToUse = percentage;
@@ -43,16 +43,16 @@ public class MaterialStack {
}
switch (caseStatus) {
case 1: {
- return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dustTiny"+materialInput.unlocalizedName, amount);
+ return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dustTiny"+stackMaterial.unlocalizedName, amount);
}
case 2: {
- return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dustSmall"+materialInput.unlocalizedName, amount);
+ return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dustSmall"+stackMaterial.unlocalizedName, amount);
}
case 3: {
- return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dust"+materialInput.unlocalizedName, amount);
+ return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dust"+stackMaterial.unlocalizedName, amount);
}
case 4: {
- return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dust"+materialInput.unlocalizedName, amount);
+ return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dust"+stackMaterial.unlocalizedName, amount);
}
default:
return null;
@@ -61,7 +61,7 @@ public class MaterialStack {
}
public ItemStack[] getValidItemStacks(){
- return UtilsItems.validItemsForOreDict(materialInput.unlocalizedName);
+ return UtilsItems.validItemsForOreDict(stackMaterial.unlocalizedName);
}