From a9d22d7d85ba567cacc83e22cecae06ceb1e4936 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Thu, 20 Oct 2016 02:52:06 +1000 Subject: $ Fixed Workbench recipe not using correct machine casing. $ Fixed the Extruder and the Alloy smelter eating the shaping molds. $ Fixed .09 recipes for cells. % Changed the recipes for the Geothermal Engines and Rocket Engines. --- src/Java/gtPlusPlus/core/material/Material.java | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/Java/gtPlusPlus/core/material') diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index 0902bf62f9..3e5c3a4d67 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -174,6 +174,14 @@ public class Material { public ItemStack getPlateDouble(int stacksize){ return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("plateDouble"+unlocalizedName, stacksize); } + + public ItemStack getGear(int stacksize){ + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("gear"+unlocalizedName, stacksize); + } + + public ItemStack getRod(int stacksize){ + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("stick"+unlocalizedName, stacksize); + } public ItemStack[] getMaterialComposites(){ //Utils.LOG_INFO("Something requested the materials needed for "+localizedName); -- cgit From 3826cbb1223a25a6d476486d9369d65a22090aec Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Sun, 23 Oct 2016 07:36:05 +1000 Subject: % 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) --- src/Java/gtPlusPlus/core/material/ELEMENT.java | 4 +- src/Java/gtPlusPlus/core/material/Material.java | 158 +++++++++++++++++++-- .../gtPlusPlus/core/material/MaterialStack.java | 14 +- 3 files changed, 155 insertions(+), 21 deletions(-) (limited to 'src/Java/gtPlusPlus/core/material') 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(){ @@ -220,5 +276,83 @@ 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 Date: Sun, 23 Oct 2016 16:39:30 +1000 Subject: % Moved more recipe generation to separate classes, now the order of item generation isn't important because recipe generation now happens after, not during item creation. % Most Generated Item classes are now < 10 lines. > This should slightly improve the startup time by 10-15 seconds, maybe more, maybe less. --- src/Java/gtPlusPlus/core/material/Material.java | 30 ++++++++++++++----------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'src/Java/gtPlusPlus/core/material') diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index d6f5d77f20..27a9f53ced 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -184,15 +184,15 @@ public class Material { } public ItemStack getDust(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDict("dust"+unlocalizedName, stacksize); + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dust"+unlocalizedName, stacksize); } public ItemStack getSmallDust(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDict("dustSmall"+unlocalizedName, stacksize); + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dustSmall"+unlocalizedName, stacksize); } public ItemStack getTinyDust(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDict("dustTiny"+unlocalizedName, stacksize); + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dustTiny"+unlocalizedName, stacksize); } public ItemStack[] getValidInputStacks(){ @@ -200,43 +200,47 @@ public class Material { } public ItemStack getIngot(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDict("ingot"+unlocalizedName, stacksize); + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("ingot"+unlocalizedName, stacksize); } public ItemStack getPlate(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDict("plate"+unlocalizedName, stacksize); + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("plate"+unlocalizedName, stacksize); } public ItemStack getPlateDouble(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDict("plateDouble"+unlocalizedName, stacksize); + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("plateDouble"+unlocalizedName, stacksize); } public ItemStack getGear(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDict("gear"+unlocalizedName, stacksize); + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("gear"+unlocalizedName, stacksize); } public ItemStack getRod(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDict("stick"+unlocalizedName, stacksize); + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("stick"+unlocalizedName, stacksize); } public ItemStack getLongRod(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDict("stickLong"+unlocalizedName, stacksize); + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("stickLong"+unlocalizedName, stacksize); } public ItemStack getBolt(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDict("bolt"+unlocalizedName, stacksize); + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("bolt"+unlocalizedName, stacksize); } public ItemStack getScrew(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDict("screw"+unlocalizedName, stacksize); + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("screw"+unlocalizedName, stacksize); } public ItemStack getRing(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDict("ring"+unlocalizedName, stacksize); + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("ring"+unlocalizedName, stacksize); } public ItemStack getRotor(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDict("rotor"+unlocalizedName, stacksize); + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("rotor"+unlocalizedName, stacksize); + } + + public ItemStack getFrameBox(int stacksize){ + return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("frameGt"+unlocalizedName, stacksize); } public ItemStack[] getMaterialComposites(){ -- cgit From 4e22125d6ddc878853cc3cadcec272a1a92e5135 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Sun, 23 Oct 2016 20:32:22 +1000 Subject: - Disabled generation of Deci/Centi dusts for now. + Added a check for Growthcraft versioning, newer versions past 2.3.1 will not have extra support loaded. + Improved Chemical Compound tooltip generation on dusts. --- src/Java/gtPlusPlus/core/material/ELEMENT.java | 2 +- src/Java/gtPlusPlus/core/material/Material.java | 105 +++++++++++++++------ .../gtPlusPlus/core/material/MaterialStack.java | 22 +++++ 3 files changed, 98 insertions(+), 31 deletions(-) (limited to 'src/Java/gtPlusPlus/core/material') diff --git a/src/Java/gtPlusPlus/core/material/ELEMENT.java b/src/Java/gtPlusPlus/core/material/ELEMENT.java index 9c05e53165..f4eb12ec46 100644 --- a/src/Java/gtPlusPlus/core/material/ELEMENT.java +++ b/src/Java/gtPlusPlus/core/material/ELEMENT.java @@ -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, MaterialUtils.superscript("233U"), 0);//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"), 2);//Not a GT Inherited Material } diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index 27a9f53ced..db83799039 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -1,18 +1,25 @@ package gtPlusPlus.core.material; +import static gregtech.api.enums.GT_Values.M; +import gregtech.api.enums.OrePrefixes; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.item.UtilsItems; import gtPlusPlus.core.util.math.MathUtils; + +import java.util.ArrayList; +import java.util.List; + import net.minecraft.item.ItemStack; public class Material { final String unlocalizedName; final String localizedName; - + protected Object dataVar; private MaterialStack[] materialInput = new MaterialStack[4]; + final List mMaterialList = new ArrayList(); final short[] RGBA; @@ -30,16 +37,17 @@ public class Material { public final int vTier; public final int vVoltageMultiplier; public final String vChemicalFormula; + public final String vChemicalSymbol; 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, String chemicalFormula, int radiationLevel){ + public Material(String materialName, short[] rgba, int meltingPoint, int boilingPoint, long protons, long neutrons, boolean blastFurnace, MaterialStack[] inputs, String chemicalSymbol, int radiationLevel){ this.unlocalizedName = Utils.sanitizeString(materialName); this.localizedName = materialName; @@ -54,13 +62,19 @@ public class Material { this.vProtons = protons; this.vNeutrons = neutrons; this.vMass = getMass(); - if (chemicalFormula.equals("")){ - this.vChemicalFormula = getChemicalFormula(inputs); - } - else{ - this.vChemicalFormula = chemicalFormula; + + //List inputArray = Arrays.asList(inputs); + if (inputs != null){ + if (inputs.length != 0){ + for (int x=0;x= M * 2: "+aMultiplier+" >= "+M * 2); + Utils.LOG_INFO("aMultiplier >= M * 2: "+(aMultiplier >= M * 2)); + Utils.LOG_INFO("!mMaterialList.isEmpty(): "+!mMaterialList.isEmpty()); + Utils.LOG_INFO("mMaterialList.size(): "+mMaterialList.size()); + Utils.LOG_INFO("mMaterialList.size() < 2: "+(mMaterialList.size() < 2)); + if (mMaterialList.size() != 0) + Utils.LOG_INFO("mMaterialList.get(0).vAmount: "+mMaterialList.get(0).vAmount); + if (mMaterialList.size() != 0) + Utils.LOG_INFO("mMaterialList.get(0).vAmount == 1: "+(mMaterialList.get(0).vAmount==1)); + Utils.LOG_INFO("===============| Finished Calculating data for "+this.localizedName+" |==============="); + Utils.LOG_INFO(""); + + if (aMultiplier >= M * 2 && !mMaterialList.isEmpty()) { + if(((chemSymbol != null && !chemSymbol.equals("")) || (mMaterialList.size() < 2 && mMaterialList.get(0).vAmount == 1))){ + return vChemicalFormula + aMultiplier; + } + return "(" + vChemicalFormula + ")" + aMultiplier; + } + if (!chemSymbol.equals("")) + return chemSymbol; + return "??"; + + } + + diff --git a/src/Java/gtPlusPlus/core/material/MaterialStack.java b/src/Java/gtPlusPlus/core/material/MaterialStack.java index 3682b73cfe..5e076e6e70 100644 --- a/src/Java/gtPlusPlus/core/material/MaterialStack.java +++ b/src/Java/gtPlusPlus/core/material/MaterialStack.java @@ -5,6 +5,7 @@ import net.minecraft.item.ItemStack; public class MaterialStack { + final int vAmount; final Material stackMaterial; final double percentageToUse; @@ -12,6 +13,7 @@ public class MaterialStack { this.stackMaterial = inputs; this.percentageToUse = percentage; + this.vAmount = getDustCount(); } @@ -60,6 +62,26 @@ public class MaterialStack { } + public int getDustCount(){ + int amount = 0; + if (percentageToUse >= 0 && percentageToUse <= 0.99){ + amount = (int) (1/percentageToUse); + } + else if (percentageToUse >= 1 && percentageToUse <= 9.99){ + amount = (int) (percentageToUse); + } + else if (percentageToUse >= 10 && percentageToUse <= 99.99){ + amount = (int) (percentageToUse/10); + } + else if (percentageToUse == 100){ + amount = 10; + } + else { + amount = 0; + } + return amount; + } + public ItemStack[] getValidItemStacks(){ return UtilsItems.validItemsForOreDict(stackMaterial.unlocalizedName); } -- cgit From e76f9156bea6c2f17d7e2a06744f475de7252da9 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Mon, 24 Oct 2016 02:39:52 +1000 Subject: + Finally finished the Chemical Compound Tooltips. Still needs formatting improvements, but the figures and compound should be correct. ☼ Broke Mixer recipes. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Java/gtPlusPlus/core/material/ALLOY.java | 16 +++ src/Java/gtPlusPlus/core/material/Material.java | 148 +++++++++++++++++---- .../gtPlusPlus/core/material/MaterialStack.java | 100 ++++++++++---- 3 files changed, 212 insertions(+), 52 deletions(-) (limited to 'src/Java/gtPlusPlus/core/material') diff --git a/src/Java/gtPlusPlus/core/material/ALLOY.java b/src/Java/gtPlusPlus/core/material/ALLOY.java index 89ea7ec2ff..0aa819ee48 100644 --- a/src/Java/gtPlusPlus/core/material/ALLOY.java +++ b/src/Java/gtPlusPlus/core/material/ALLOY.java @@ -309,6 +309,22 @@ public final class ALLOY { new MaterialStack(ELEMENT.NICKEL, 65) }); + /*public static final Material HASTELLOY_X = new Material( + "Hastelloy-X", //Material Name + new short[]{255, 193, 37, 0}, //Material Colour + 1350, //Melting Point in C + ((ELEMENT.IRON.getBoilingPoint_C()*18)+(ELEMENT.MOLYBDENUM.getBoilingPoint_C()*9)+(ELEMENT.CHROMIUM.getBoilingPoint_C()*22)+(ELEMENT.NICKEL.getBoilingPoint_C()*51))/100, //Boiling Point in C + ((ELEMENT.IRON.getProtons()*18)+(ELEMENT.MOLYBDENUM.getProtons()*9)+(ELEMENT.CHROMIUM.getProtons()*22)+(ELEMENT.NICKEL.getProtons()*51))/100, //Protons + ((ELEMENT.IRON.getNeutrons()*18)+(ELEMENT.MOLYBDENUM.getNeutrons()*9)+(ELEMENT.CHROMIUM.getNeutrons()*22)+(ELEMENT.NICKEL.getNeutrons()*51))/100, //Neutrons + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.IRON, 18), + new MaterialStack(ELEMENT.MOLYBDENUM, 9), + new MaterialStack(ELEMENT.CHROMIUM, 22), + new MaterialStack(ELEMENT.NICKEL, 51) + });*/ + public static final Material HASTELLOY_X = new Material( "Hastelloy-X", //Material Name new short[]{255, 193, 37, 0}, //Material Colour diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index db83799039..16cccc9660 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -34,6 +34,7 @@ public class Material { final long vProtons; final long vNeutrons; final long vMass; + final int smallestStackSizeWhenProcessing; //Add a check for <=0 || > 64 public final int vTier; public final int vVoltageMultiplier; public final String vChemicalFormula; @@ -64,17 +65,15 @@ public class Material { this.vMass = getMass(); //List inputArray = Arrays.asList(inputs); - if (inputs != null){ - if (inputs.length != 0){ - for (int x=0;x= 1){ + this.smallestStackSizeWhenProcessing = tempSmallestSize; //Valid stacksizes + } + else { + this.smallestStackSizeWhenProcessing = 50; //Can divide my math by 1/2 and round it~ } - - this.vChemicalSymbol = chemicalSymbol; - this.vChemicalFormula = getToolTip(chemicalSymbol, OrePrefixes.dust.mMaterialAmount / M, true); - + //Sets the Rad level if (radiationLevel != 0){ this.isRadioactive = true; this.vRadioationLevel = (byte) radiationLevel; @@ -84,6 +83,7 @@ public class Material { this.vRadioationLevel = (byte) radiationLevel; } + //Sets the materials 'tier'. Will probably replace this logic. if (getMeltingPoint_K() >= 0 && getMeltingPoint_K() <= 750){ this.vTier = 1; } @@ -134,6 +134,20 @@ public class Material { } } + //Makes a Fancy Chemical Tooltip + this.vChemicalSymbol = chemicalSymbol; + if (materialInput != null){ + this.vChemicalFormula = getToolTip(chemicalSymbol, OrePrefixes.dust.mMaterialAmount / M, true); + } + else if (!this.vChemicalSymbol.equals("")){ + Utils.LOG_INFO("materialInput is null, using a valid chemical symbol."); + this.vChemicalFormula = this.vChemicalSymbol; + } + else{ + Utils.LOG_INFO("MaterialInput == null && chemicalSymbol probably equals nothing"); + this.vChemicalFormula = "??"; + } + dataVar = MathUtils.generateSingularRandomHexValue(); Utils.LOG_INFO("Creating a Material instance for "+materialName); @@ -346,32 +360,108 @@ public class Material { } + public long[] getSmallestRatio(MaterialStack[] inputs){ + if (inputs != null){ + if (inputs.length > 0){ + Utils.LOG_INFO("length: "+inputs.length); + Utils.LOG_INFO("(inputs != null): "+(inputs != null)); + //Utils.LOG_INFO("length: "+inputs.length); + double tempPercentage=0; + long[] tempRatio = new long[inputs.length]; + for (int x=0;x= 101){ + Utils.LOG_INFO("The compound for "+localizedName+" doesn't equal 98-100%, this isn't good."); + }*/ + + long[] smallestRatio = MathUtils.simplifyNumbersToSmallestForm(tempRatio); + + if (smallestRatio.length > 0){ + String tempRatioStringThing1 = ""; + for (int r=0;r 0){ + int tempSmallestCraftingUseSize = 0; + for (int r=0;r= M * 2: "+aMultiplier+" >= "+M * 2); - Utils.LOG_INFO("aMultiplier >= M * 2: "+(aMultiplier >= M * 2)); - Utils.LOG_INFO("!mMaterialList.isEmpty(): "+!mMaterialList.isEmpty()); - Utils.LOG_INFO("mMaterialList.size(): "+mMaterialList.size()); - Utils.LOG_INFO("mMaterialList.size() < 2: "+(mMaterialList.size() < 2)); - if (mMaterialList.size() != 0) - Utils.LOG_INFO("mMaterialList.get(0).vAmount: "+mMaterialList.get(0).vAmount); - if (mMaterialList.size() != 0) - Utils.LOG_INFO("mMaterialList.get(0).vAmount == 1: "+(mMaterialList.get(0).vAmount==1)); - Utils.LOG_INFO("===============| Finished Calculating data for "+this.localizedName+" |==============="); - Utils.LOG_INFO(""); - - if (aMultiplier >= M * 2 && !mMaterialList.isEmpty()) { - if(((chemSymbol != null && !chemSymbol.equals("")) || (mMaterialList.size() < 2 && mMaterialList.get(0).vAmount == 1))){ - return vChemicalFormula + aMultiplier; - } - return "(" + vChemicalFormula + ")" + aMultiplier; - } if (!chemSymbol.equals("")) return chemSymbol; + MaterialStack[] tempInput = materialInput; + if (tempInput != null){ + if (tempInput.length >= 1){ + String dummyFormula = ""; + long[] dummyFormulaArray = getSmallestRatio(tempInput); + if (dummyFormulaArray != null){ + if (dummyFormulaArray.length >= 1){ + for (int e=0;e 1){ + dummyFormula = dummyFormula + tempInput[e].stackMaterial.vChemicalSymbol + dummyFormulaArray[e]; + } + else if (dummyFormulaArray[e] == 1){ + dummyFormula = dummyFormula + tempInput[e].stackMaterial.vChemicalSymbol; + } + else if (dummyFormulaArray[e] <= 0){ + dummyFormula = dummyFormula+""; + } + + }else + dummyFormula = dummyFormula + "??"; + } + else { + dummyFormula = dummyFormula+""; + } + } + return dummyFormula; + } + Utils.LOG_INFO("dummyFormulaArray <= 0"); + } + Utils.LOG_INFO("dummyFormulaArray == null"); + } + Utils.LOG_INFO("tempInput.length <= 0"); + } + Utils.LOG_INFO("tempInput == null"); return "??"; } diff --git a/src/Java/gtPlusPlus/core/material/MaterialStack.java b/src/Java/gtPlusPlus/core/material/MaterialStack.java index 5e076e6e70..8d9de3faf4 100644 --- a/src/Java/gtPlusPlus/core/material/MaterialStack.java +++ b/src/Java/gtPlusPlus/core/material/MaterialStack.java @@ -1,24 +1,67 @@ package gtPlusPlus.core.material; import gtPlusPlus.core.util.item.UtilsItems; + +import java.math.BigDecimal; +import java.math.RoundingMode; + import net.minecraft.item.ItemStack; public class MaterialStack { - - final int vAmount; + + final int[] vAmount; final Material stackMaterial; final double percentageToUse; - - public MaterialStack(Material inputs, double percentage){ + + public MaterialStack(Material inputs, double partOutOf100){ this.stackMaterial = inputs; - this.percentageToUse = percentage; - this.vAmount = getDustCount(); - - + this.percentageToUse = partOutOf100; + this.vAmount = math(partOutOf100); + + + } + + private int[] math(double val){ + //Cast to a BigDecimal to round it. + BigDecimal bd = new BigDecimal(val).setScale(2, RoundingMode.HALF_EVEN); + val = bd.doubleValue(); + //Split the string into xx.xx + String[] arr=String.valueOf(val).split("\\."); + int[] intArr=new int[2]; + intArr[0]=Integer.parseInt(arr[0]); + intArr[1]=Integer.parseInt(arr[1]); + return intArr; } - + public ItemStack getDustStack(){ + return this.stackMaterial.getDust(this.vAmount[0]); + } + public int getPartsPerOneHundred(){ + if (this.vAmount != null){ + if (this.vAmount[0] >= 1 && this.vAmount[0] <= 100){ + return this.vAmount[0]; + } + } + return 100; + } + public ItemStack getLeftOverStacksFromDecimalValue(){ + int temp = this.vAmount[1]; + int getCount; + if (temp >= 25 && temp <=99){ + getCount = temp/25; + return this.stackMaterial.getSmallDust(getCount); + } + else if (temp >= 11 && temp <= 24){ + getCount = temp/11; + return this.stackMaterial.getTinyDust(getCount); + } + else { + return null; + } + } + + /*public ItemStack getDustStack(){ int caseStatus = 0; int amount = 0; if (percentageToUse >= 0 && percentageToUse <= 0.99){ @@ -59,36 +102,47 @@ public class MaterialStack { default: return null; } - - } - - public int getDustCount(){ + + }*/ + + /*public int getDustCount(){ int amount = 0; - if (percentageToUse >= 0 && percentageToUse <= 0.99){ - amount = (int) (1/percentageToUse); + + //No Dust + if (percentageToUse >= 0 && percentageToUse <= 11.1111111111111111111111110){ + //amount = (int) (1/percentageToUse); + amount = 0; //Less than a tiny dust. } - else if (percentageToUse >= 1 && percentageToUse <= 9.99){ + + //Tiny Dust + else if (percentageToUse >= 11.1111111111111111111111111 && percentageToUse <= 25){ amount = (int) (percentageToUse); } + + //Small Dust else if (percentageToUse >= 10 && percentageToUse <= 99.99){ amount = (int) (percentageToUse/10); } + + //Dust else if (percentageToUse == 100){ amount = 10; } + + //Error - Nothing else { amount = 0; } return amount; - } - + }*/ + public ItemStack[] getValidItemStacks(){ return UtilsItems.validItemsForOreDict(stackMaterial.unlocalizedName); } - - - - - + + + + + } -- cgit From 6105925bfec6d55b22a88e89e6d9e2549390bd86 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Mon, 24 Oct 2016 04:31:24 +1000 Subject: + Added nice new textures to the energy buffers. + Added Subscript integers to Chemical Formulas. --- src/Java/gtPlusPlus/core/material/Material.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/Java/gtPlusPlus/core/material') diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index 16cccc9660..44a8c021f9 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -4,6 +4,7 @@ import static gregtech.api.enums.GT_Values.M; import gregtech.api.enums.OrePrefixes; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.item.UtilsItems; +import gtPlusPlus.core.util.materials.MaterialUtils; import gtPlusPlus.core.util.math.MathUtils; import java.util.ArrayList; @@ -453,7 +454,8 @@ public class Material { dummyFormula = dummyFormula+""; } } - return dummyFormula; + return MaterialUtils.subscript(dummyFormula); + //return dummyFormula; } Utils.LOG_INFO("dummyFormulaArray <= 0"); } -- cgit From 4937f40b30d4d2ce381332b0ab5b83ddabb274b0 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Mon, 24 Oct 2016 06:03:19 +1000 Subject: + Basically rewrote dust recipe handling. $ Fixed Ring recipes using a Wrench instead of a Hard hammer. % Adjusted some Alloy compositions, however, this has caused some overlaps which will need to be adjusted again. (Zeron, Hastelloy X/W, MS 300/350) --- src/Java/gtPlusPlus/core/material/ALLOY.java | 59 ++++++++++++++----------- src/Java/gtPlusPlus/core/material/Material.java | 38 +++++++++++----- 2 files changed, 60 insertions(+), 37 deletions(-) (limited to 'src/Java/gtPlusPlus/core/material') diff --git a/src/Java/gtPlusPlus/core/material/ALLOY.java b/src/Java/gtPlusPlus/core/material/ALLOY.java index 0aa819ee48..ea5b90259f 100644 --- a/src/Java/gtPlusPlus/core/material/ALLOY.java +++ b/src/Java/gtPlusPlus/core/material/ALLOY.java @@ -35,7 +35,8 @@ public final class ALLOY { true, //Uses Blast furnace? //Material Stacks with Percentage of required elements. new MaterialStack[]{ - new MaterialStack(ELEMENT.URANIUM, 90), + new MaterialStack(ELEMENT.URANIUM, 45), + new MaterialStack(ELEMENT.URANIUM, 45), new MaterialStack(ELEMENT.TITANIUM, 10) }); @@ -49,9 +50,9 @@ public final class ALLOY { true, //Uses Blast furnace? //Material Stacks with Percentage of required elements. new MaterialStack[]{ - new MaterialStack(ELEMENT.TUNGSTEN, 7), - new MaterialStack(ELEMENT.TANTALUM, 90), - new MaterialStack(ELEMENT.TANTALUM, 2) + new MaterialStack(ELEMENT.TUNGSTEN, 8), + new MaterialStack(ELEMENT.TANTALUM, 46), + new MaterialStack(ELEMENT.TANTALUM, 46) }); public static final Material TANTALLOY_61 = new Material( @@ -64,10 +65,10 @@ public final class ALLOY { true, //Uses Blast furnace? //Material Stacks with Percentage of required elements. new MaterialStack[]{ - new MaterialStack(ELEMENT.TUNGSTEN, 10), - new MaterialStack(ELEMENT.TANTALUM, 70), - new MaterialStack(ELEMENT.TITANIUM, 10), - new MaterialStack(ELEMENT.YTTRIUM, 10) + new MaterialStack(ELEMENT.TUNGSTEN, 20), + new MaterialStack(ELEMENT.TANTALUM, 60), + new MaterialStack(ELEMENT.TITANIUM, 12), + new MaterialStack(ELEMENT.YTTRIUM, 8) }); public static final Material QUANTUM = new Material( @@ -91,7 +92,8 @@ public final class ALLOY { false, //Uses Blast furnace? //Material Stacks with Percentage of required elements. new MaterialStack[]{ - new MaterialStack(ELEMENT.COPPER, 75), + new MaterialStack(ELEMENT.COPPER, 35), + new MaterialStack(ELEMENT.COPPER, 40), new MaterialStack(ELEMENT.TIN, 25) }); @@ -105,7 +107,8 @@ public final class ALLOY { false, //Uses Blast furnace? //Material Stacks with Percentage of required elements. new MaterialStack[]{ - new MaterialStack(ELEMENT.GOLD, 70), + new MaterialStack(ELEMENT.GOLD, 30), + new MaterialStack(ELEMENT.GOLD, 40), new MaterialStack(ELEMENT.COPPER, 30) }); @@ -193,8 +196,10 @@ public final class ALLOY { true, //Uses Blast furnace? //Material Stacks with Percentage of required elements. new MaterialStack[]{ - new MaterialStack(ELEMENT.CARBON, 05), - new MaterialStack(ELEMENT.IRON, 95) + new MaterialStack(ELEMENT.CARBON, 10), + new MaterialStack(ELEMENT.IRON, 30), + new MaterialStack(ELEMENT.IRON, 30), + new MaterialStack(ELEMENT.IRON, 30) }); public static final Material ZERON_100 = new Material( @@ -224,9 +229,9 @@ public final class ALLOY { //Material Stacks with Percentage of required elements. new MaterialStack[]{ new MaterialStack(ELEMENT.TITANIUM, 5), - new MaterialStack(ELEMENT.NICKEL, 16), - new MaterialStack(ELEMENT.COBALT, 9), - new MaterialStack(ALLOY.STEEL, 70) + new MaterialStack(ELEMENT.NICKEL, 25), + new MaterialStack(ELEMENT.COBALT, 10), + new MaterialStack(ALLOY.STEEL, 60) }); public static final Material MARAGING300 = new Material( @@ -240,8 +245,8 @@ public final class ALLOY { //Material Stacks with Percentage of required elements. new MaterialStack[]{ new MaterialStack(ELEMENT.TITANIUM, 10), - new MaterialStack(ELEMENT.NICKEL, 21), - new MaterialStack(ELEMENT.COBALT, 14), + new MaterialStack(ELEMENT.NICKEL, 20), + new MaterialStack(ELEMENT.COBALT, 15), new MaterialStack(ALLOY.STEEL, 55) }); @@ -256,8 +261,8 @@ public final class ALLOY { //Material Stacks with Percentage of required elements. new MaterialStack[]{ new MaterialStack(ELEMENT.TITANIUM, 15), - new MaterialStack(ELEMENT.NICKEL, 21), - new MaterialStack(ELEMENT.COBALT, 9), + new MaterialStack(ELEMENT.NICKEL, 20), + new MaterialStack(ELEMENT.COBALT, 10), new MaterialStack(ALLOY.STEEL, 55) }); @@ -305,8 +310,8 @@ public final class ALLOY { new MaterialStack[]{ new MaterialStack(ELEMENT.IRON, 06), new MaterialStack(ELEMENT.MOLYBDENUM, 24), - new MaterialStack(ELEMENT.CHROMIUM, 5), - new MaterialStack(ELEMENT.NICKEL, 65) + new MaterialStack(ELEMENT.CHROMIUM, 8), + new MaterialStack(ELEMENT.NICKEL, 62) }); /*public static final Material HASTELLOY_X = new Material( @@ -351,10 +356,10 @@ public final class ALLOY { true, //Uses Blast furnace? //Material Stacks with Percentage of required elements. new MaterialStack[]{ - new MaterialStack(ELEMENT.YTTRIUM, 05), + new MaterialStack(ELEMENT.YTTRIUM, 10), new MaterialStack(ELEMENT.MOLYBDENUM, 16), - new MaterialStack(ELEMENT.CHROMIUM, 7), - new MaterialStack(ELEMENT.NICKEL, 72) + new MaterialStack(ELEMENT.CHROMIUM, 10), + new MaterialStack(ELEMENT.NICKEL, 64) }); public static final Material HASTELLOY_C276 = new Material( @@ -415,10 +420,10 @@ public final class ALLOY { true, //Uses Blast furnace? //Material Stacks with Percentage of required elements. new MaterialStack[]{ - new MaterialStack(ELEMENT.IRON, 75), - new MaterialStack(ELEMENT.ALUMINIUM, 4), + new MaterialStack(ELEMENT.IRON, 64), + new MaterialStack(ELEMENT.ALUMINIUM, 12), new MaterialStack(ELEMENT.CHROMIUM, 20), - new MaterialStack(ELEMENT.YTTRIUM, 1) + new MaterialStack(ELEMENT.YTTRIUM, 4) }); public static final Material TUNGSTEN_CARBIDE = new Material( diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index 44a8c021f9..3190486537 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -6,10 +6,6 @@ import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.item.UtilsItems; import gtPlusPlus.core.util.materials.MaterialUtils; import gtPlusPlus.core.util.math.MathUtils; - -import java.util.ArrayList; -import java.util.List; - import net.minecraft.item.ItemStack; public class Material { @@ -20,7 +16,7 @@ public class Material { protected Object dataVar; private MaterialStack[] materialInput = new MaterialStack[4]; - final List mMaterialList = new ArrayList(); + public final long[] vSmallestRatio; final short[] RGBA; @@ -35,7 +31,7 @@ public class Material { final long vProtons; final long vNeutrons; final long vMass; - final int smallestStackSizeWhenProcessing; //Add a check for <=0 || > 64 + public final int smallestStackSizeWhenProcessing; //Add a check for <=0 || > 64 public final int vTier; public final int vVoltageMultiplier; public final String vChemicalFormula; @@ -65,14 +61,14 @@ public class Material { this.vNeutrons = neutrons; this.vMass = getMass(); - //List inputArray = Arrays.asList(inputs); + /*//List inputArray = Arrays.asList(inputs); int tempSmallestSize = getSmallestStackForCrafting(inputs); if (tempSmallestSize <= 64 && tempSmallestSize >= 1){ this.smallestStackSizeWhenProcessing = tempSmallestSize; //Valid stacksizes } else { this.smallestStackSizeWhenProcessing = 50; //Can divide my math by 1/2 and round it~ - } + }*/ //Sets the Rad level if (radiationLevel != 0){ @@ -134,6 +130,28 @@ public class Material { } } } + + this.vSmallestRatio = getSmallestRatio(materialInput); + int tempSmallestSize = 0; + + if (vSmallestRatio != null){ + for (int v=0;v= 1){ + this.smallestStackSizeWhenProcessing = tempSmallestSize; //Valid stacksizes + } + else { + this.smallestStackSizeWhenProcessing = 50; //Can divide my math by 1/2 and round it~ + }*/ //Makes a Fancy Chemical Tooltip this.vChemicalSymbol = chemicalSymbol; @@ -152,7 +170,7 @@ public class Material { dataVar = MathUtils.generateSingularRandomHexValue(); Utils.LOG_INFO("Creating a Material instance for "+materialName); - Utils.LOG_INFO("Formula: "+vChemicalFormula); + Utils.LOG_INFO("Formula: "+vChemicalFormula + " Smallest Stack: "+smallestStackSizeWhenProcessing+" Smallest Ratio:"+vSmallestRatio); Utils.LOG_INFO("Protons: "+vProtons); Utils.LOG_INFO("Neutrons: "+vNeutrons); Utils.LOG_INFO("Mass: "+vMass+"/units"); @@ -405,7 +423,7 @@ public class Material { return null; } - public int getSmallestStackForCrafting(MaterialStack[] inputs){ + private int getSmallestStackForCrafting(MaterialStack[] inputs){ if (inputs != null){ if (inputs.length != 0){ long[] smallestRatio = getSmallestRatio(inputs); -- cgit From e5e1581403e9f6e9d76e362c5e4861b4258af7cc Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Tue, 25 Oct 2016 08:10:05 +1000 Subject: + Added some more Machine Casing textures. + Added Grisium. % Tweaked the MultiPickaxes. % Did some more work on the Blast Smelter controller. $ Finished work on the Blast Smelter Recipe generation (It's not unique enough yet, apparently) > After numerous re-write attempts at this all morning, the issue remains that recipes overlap. > Recipe output logging for this is still enabled, but it currently only does Osmiridium for a test run. - Removed some useless classes. --- src/Java/gtPlusPlus/core/material/ALLOY.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/Java/gtPlusPlus/core/material') diff --git a/src/Java/gtPlusPlus/core/material/ALLOY.java b/src/Java/gtPlusPlus/core/material/ALLOY.java index ea5b90259f..e2648c667e 100644 --- a/src/Java/gtPlusPlus/core/material/ALLOY.java +++ b/src/Java/gtPlusPlus/core/material/ALLOY.java @@ -495,6 +495,22 @@ public final class ALLOY { new MaterialStack(ELEMENT.CARBON, 50), new MaterialStack(ELEMENT.NIOBIUM, 50) }); + + + public static final Material LEAGRISIUM = new Material( + "Grisium", //Material Name + new short[]{53, 93, 106, 0}, //Material Colour + 9001, //Melting Point in C + 25000, //Boiling Point in C + 96, //Protons + 128, //Neutrons + true, //Uses Blast furnace? + new MaterialStack[]{ + new MaterialStack(ELEMENT.NICKEL, 25), + new MaterialStack(ELEMENT.CHROMIUM, 25), + new MaterialStack(ELEMENT.IRON, 25), + new MaterialStack(ELEMENT.TUNGSTEN, 25) + }); //Material Stacks with Percentage of required elements. } -- cgit From f2a89339d7f6f875d34d4a7bb1868a1d4a3cf644 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Tue, 25 Oct 2016 23:47:58 +1000 Subject: + Tried improving the handling of Blast Smelting. + Tried adding shapeless dust recipes for all of my alloys. (The shapeless recipe system is dumb) + Added a custom GUI for NEI recipes for the Blast Smelter. % Refactored some Utils classes. --- src/Java/gtPlusPlus/core/material/ALLOY.java | 9 +- src/Java/gtPlusPlus/core/material/Material.java | 122 ++++++++++++--------- .../gtPlusPlus/core/material/MaterialStack.java | 95 +++------------- 3 files changed, 88 insertions(+), 138 deletions(-) (limited to 'src/Java/gtPlusPlus/core/material') diff --git a/src/Java/gtPlusPlus/core/material/ALLOY.java b/src/Java/gtPlusPlus/core/material/ALLOY.java index e2648c667e..ae1928a749 100644 --- a/src/Java/gtPlusPlus/core/material/ALLOY.java +++ b/src/Java/gtPlusPlus/core/material/ALLOY.java @@ -506,10 +506,11 @@ public final class ALLOY { 128, //Neutrons true, //Uses Blast furnace? new MaterialStack[]{ - new MaterialStack(ELEMENT.NICKEL, 25), - new MaterialStack(ELEMENT.CHROMIUM, 25), - new MaterialStack(ELEMENT.IRON, 25), - new MaterialStack(ELEMENT.TUNGSTEN, 25) + new MaterialStack(ELEMENT.NICKEL, 30), + new MaterialStack(ELEMENT.CHROMIUM, 10), + new MaterialStack(ELEMENT.ZIRCONIUM, 20), + new MaterialStack(ELEMENT.IRON, 30), + new MaterialStack(ELEMENT.TUNGSTEN, 10) }); //Material Stacks with Percentage of required elements. diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index 3190486537..78d7d73bd4 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -3,10 +3,12 @@ package gtPlusPlus.core.material; import static gregtech.api.enums.GT_Values.M; import gregtech.api.enums.OrePrefixes; import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.item.UtilsItems; +import gtPlusPlus.core.util.fluid.FluidUtils; +import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.core.util.materials.MaterialUtils; import gtPlusPlus.core.util.math.MathUtils; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; public class Material { @@ -15,7 +17,7 @@ public class Material { protected Object dataVar; - private MaterialStack[] materialInput = new MaterialStack[4]; + private MaterialStack[] vMaterialInput = new MaterialStack[9]; public final long[] vSmallestRatio; final short[] RGBA; @@ -119,21 +121,21 @@ public class Material { this.vVoltageMultiplier = this.getMeltingPoint_K() >= 2800 ? 64 : 16; if (inputs == null){ - this.materialInput = null; + this.vMaterialInput = null; } else { if (inputs.length != 0){ for (int i=0; i < inputs.length; i++){ if (inputs[i] != null){ - this.materialInput[i] = inputs[i]; + this.vMaterialInput[i] = inputs[i]; } } } } - - this.vSmallestRatio = getSmallestRatio(materialInput); + + this.vSmallestRatio = getSmallestRatio(vMaterialInput); int tempSmallestSize = 0; - + if (vSmallestRatio != null){ for (int v=0;v= 1){ this.smallestStackSizeWhenProcessing = tempSmallestSize; //Valid stacksizes } @@ -155,15 +157,15 @@ public class Material { //Makes a Fancy Chemical Tooltip this.vChemicalSymbol = chemicalSymbol; - if (materialInput != null){ + if (vMaterialInput != null){ this.vChemicalFormula = getToolTip(chemicalSymbol, OrePrefixes.dust.mMaterialAmount / M, true); } else if (!this.vChemicalSymbol.equals("")){ - Utils.LOG_INFO("materialInput is null, using a valid chemical symbol."); + Utils.LOG_WARNING("materialInput is null, using a valid chemical symbol."); this.vChemicalFormula = this.vChemicalSymbol; } else{ - Utils.LOG_INFO("MaterialInput == null && chemicalSymbol probably equals nothing"); + Utils.LOG_WARNING("MaterialInput == null && chemicalSymbol probably equals nothing"); this.vChemicalFormula = "??"; } @@ -232,97 +234,104 @@ public class Material { } public ItemStack getDust(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dust"+unlocalizedName, stacksize); + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dust"+unlocalizedName, stacksize); } public ItemStack getSmallDust(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dustSmall"+unlocalizedName, stacksize); + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustSmall"+unlocalizedName, stacksize); } public ItemStack getTinyDust(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("dustTiny"+unlocalizedName, stacksize); + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustTiny"+unlocalizedName, stacksize); } public ItemStack[] getValidInputStacks(){ - return UtilsItems.validItemsForOreDict(unlocalizedName); + return ItemUtils.validItemsForOreDict(unlocalizedName); } public ItemStack getIngot(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("ingot"+unlocalizedName, stacksize); + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("ingot"+unlocalizedName, stacksize); } public ItemStack getPlate(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("plate"+unlocalizedName, stacksize); + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("plate"+unlocalizedName, stacksize); } public ItemStack getPlateDouble(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("plateDouble"+unlocalizedName, stacksize); + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("plateDouble"+unlocalizedName, stacksize); } public ItemStack getGear(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("gear"+unlocalizedName, stacksize); + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("gear"+unlocalizedName, stacksize); } public ItemStack getRod(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("stick"+unlocalizedName, stacksize); + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("stick"+unlocalizedName, stacksize); } public ItemStack getLongRod(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("stickLong"+unlocalizedName, stacksize); + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("stickLong"+unlocalizedName, stacksize); } public ItemStack getBolt(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("bolt"+unlocalizedName, stacksize); + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("bolt"+unlocalizedName, stacksize); } public ItemStack getScrew(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("screw"+unlocalizedName, stacksize); + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("screw"+unlocalizedName, stacksize); } public ItemStack getRing(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("ring"+unlocalizedName, stacksize); + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("ring"+unlocalizedName, stacksize); } public ItemStack getRotor(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("rotor"+unlocalizedName, stacksize); + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("rotor"+unlocalizedName, stacksize); } public ItemStack getFrameBox(int stacksize){ - return UtilsItems.getItemStackOfAmountFromOreDictNoBroken("frameGt"+unlocalizedName, stacksize); + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("frameGt"+unlocalizedName, stacksize); } public ItemStack[] getMaterialComposites(){ //Utils.LOG_INFO("Something requested the materials needed for "+localizedName); - if (materialInput != null && materialInput.length >= 1){ - ItemStack[] temp = new ItemStack[materialInput.length]; - for (int i=0;i= 1){ + ItemStack[] temp = new ItemStack[vMaterialInput.length]; + for (int i=0;i= 1){ - int[] temp = new int[materialInput.length]; - for (int i=0;i= 1){ + int[] temp = new int[vMaterialInput.length]; + for (int i=0;i