diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2016-10-23 07:36:05 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-10-23 07:36:05 +1000 |
commit | 3826cbb1223a25a6d476486d9369d65a22090aec (patch) | |
tree | b176e3752ae9aeadb3bda54ab3757d4acc6f6ff9 /src/Java/gtPlusPlus/core/material | |
parent | b123b87177c907951f695d616c31f1d229412e60 (diff) | |
download | GT5-Unofficial-3826cbb1223a25a6d476486d9369d65a22090aec.tar.gz GT5-Unofficial-3826cbb1223a25a6d476486d9369d65a22090aec.tar.bz2 GT5-Unofficial-3826cbb1223a25a6d476486d9369d65a22090aec.zip |
% Massive Material Backend Changes. (Nothing noticeable to players)
+ Added Chemical Compounds to Dust stacks, so you know how to make/use them.
+ As an idea, added Deci and Centi dusts, each representing .10 and point .01 of a full dust. (Probably will remove these, or use them for unique crafting options)
% Moved Radiation data to Material class.
% Created a BaseItemComponent and made all machine components except ingots/dusts utilise it. (Saves boiler-plating 30 lines per class and also it's using OOP for it's real job)
Diffstat (limited to 'src/Java/gtPlusPlus/core/material')
-rw-r--r-- | src/Java/gtPlusPlus/core/material/ELEMENT.java | 4 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/material/Material.java | 158 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/material/MaterialStack.java | 14 |
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); } |