From 2a4795f65d98ff60a177d7d6a5552fd687d9f6e8 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Wed, 20 Dec 2017 17:30:21 +1000 Subject: + Added support for GTNH Trinium. $ Fixed excessive fluid cells being generated. $ Further improve material recycling recipes. --- src/Java/gtPlusPlus/core/material/ALLOY.java | 2 +- src/Java/gtPlusPlus/core/material/ELEMENT.java | 17 +- src/Java/gtPlusPlus/core/material/Material.java | 218 ++++++++++++++------- .../core/material/MaterialGenerator.java | 14 +- .../core/material/nuclear/FLUORIDES.java | 1 + .../gtPlusPlus/core/material/nuclear/NUCLIDE.java | 14 +- 6 files changed, 168 insertions(+), 98 deletions(-) (limited to 'src/Java/gtPlusPlus/core') diff --git a/src/Java/gtPlusPlus/core/material/ALLOY.java b/src/Java/gtPlusPlus/core/material/ALLOY.java index 8d1d4e5ecd..84bd859ed4 100644 --- a/src/Java/gtPlusPlus/core/material/ALLOY.java +++ b/src/Java/gtPlusPlus/core/material/ALLOY.java @@ -589,7 +589,7 @@ public final class ALLOY { -1, //Boiling Point in C -1, -1, - true, //Uses Blast furnace? + false, //Uses Blast furnace? new MaterialStack[]{ new MaterialStack(ELEMENT.getInstance().TRINIUM_REFINED, 5), new MaterialStack(ELEMENT.getInstance().NAQUADAH, 9) diff --git a/src/Java/gtPlusPlus/core/material/ELEMENT.java b/src/Java/gtPlusPlus/core/material/ELEMENT.java index 859ebd86cf..eccd283da9 100644 --- a/src/Java/gtPlusPlus/core/material/ELEMENT.java +++ b/src/Java/gtPlusPlus/core/material/ELEMENT.java @@ -1,6 +1,7 @@ package gtPlusPlus.core.material; import gregtech.api.enums.Materials; +import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.state.MaterialState; import gtPlusPlus.core.util.StringUtils; import gtPlusPlus.core.util.materials.MaterialUtils; @@ -10,7 +11,17 @@ public final class ELEMENT { private static final ELEMENT thisClass = new ELEMENT(); public ELEMENT(){ - + + //GTNH Trinium Handling + if (CORE.GTNH){ + TRINIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.valueOf("Trinium")); + TRINIUM_REFINED = new Material("Refined Trinium", MaterialState.SOLID, new short[]{210, 255, 170}, 4304, 14057, 181, 133, false, "Ke", 0, new MaterialStack[]{new MaterialStack(TRINIUM, 1)});//Not a GT Inherited Material + } + else { + TRINIUM = new Material("Trinium", MaterialState.SOLID, new short[]{70, 110, 30}, 604, 4057, 181, 133, false, "Ke", 0, false);//Not a GT Inherited Material + TRINIUM_REFINED = new Material("Refined Trinium", MaterialState.SOLID, new short[]{210, 255, 170}, 4304, 14057, 181, 133, false, "Ke", 0, new MaterialStack[]{new MaterialStack(TRINIUM, 1)});//Not a GT Inherited Material + } + } public static ELEMENT getInstance(){ @@ -131,7 +142,7 @@ public final class ELEMENT { //Fictional public final Material NAQUADAH = MaterialUtils.generateMaterialFromGtENUM(Materials.Naquadah); - public final Material TRINIUM = new Material("Trinium", MaterialState.SOLID, new short[]{170, 210, 130}, 604, 4057, 181, 133, false, "Ke", 0, false);//Not a GT Inherited Material - public final Material TRINIUM_REFINED = new Material("Refined Trinium", MaterialState.SOLID, new short[]{210, 255, 170}, 4304, 14057, 181, 133, false, "Ke", 0, new MaterialStack[]{new MaterialStack(TRINIUM, 1)});//Not a GT Inherited Material + public final Material TRINIUM; + public final Material TRINIUM_REFINED; //https://github.com/Blood-Asp/GT5-Unofficial/issues/609 } diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index 40d8461209..0b1139cbcf 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -2,7 +2,7 @@ package gtPlusPlus.core.material; import static gregtech.api.enums.GT_Values.M; -import java.util.ArrayList; +import java.util.*; import gregtech.api.enums.*; import gtPlusPlus.core.item.base.cell.BaseItemCell; @@ -28,7 +28,7 @@ public class Material { private final Fluid vMoltenFluid; private final Fluid vPlasma; - + private final boolean vGenerateCells; protected Object dataVar = MathUtils.generateSingularRandomHexValue(); @@ -60,10 +60,17 @@ public class Material { public final int vToolQuality; public final int vHarvestLevel; + + public static Map invalidMaterials = new HashMap(); + public Material(final String materialName, final MaterialState defaultState,final short[] rgba, final int meltingPoint, final int boilingPoint, final long protons, final long neutrons, final boolean blastFurnace, final MaterialStack... inputs){ this(materialName, defaultState, 0, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, "", 0, inputs); } + public Material(final String materialName, final MaterialState defaultState,final short[] rgba, final int meltingPoint, final int boilingPoint, final long protons, final long neutrons, final boolean blastFurnace, boolean generateCells, final MaterialStack... inputs){ + this(materialName, defaultState, 0, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, "", 0, generateCells, inputs); + } + public Material(final String materialName, final MaterialState defaultState,final short[] rgba, final int meltingPoint, final int boilingPoint, final long protons, final long neutrons, final boolean blastFurnace, final int radiationLevel, final MaterialStack... inputs){ this(materialName, defaultState, 0, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, "", radiationLevel, inputs); } @@ -83,7 +90,7 @@ public class Material { public Material(final String materialName, final MaterialState defaultState, final long durability, final short[] rgba, final int meltingPoint, final int boilingPoint, final long protons, final long neutrons, final boolean blastFurnace, final String chemicalSymbol, final int radiationLevel, final MaterialStack... inputs){ this (materialName, defaultState, durability, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, chemicalSymbol, radiationLevel, true, inputs); } - + public Material(final String materialName, final MaterialState defaultState, final long durability, final short[] rgba, final int meltingPoint, final int boilingPoint, final long protons, final long neutrons, final boolean blastFurnace, final String chemicalSymbol, final int radiationLevel, boolean generateCells, final MaterialStack... inputs){ this.unlocalizedName = Utils.sanitizeString(materialName); @@ -105,7 +112,7 @@ public class Material { } } } - + //Set Melting/Boiling point, if value is -1 calculate it from compound inputs. if (meltingPoint != -1){ @@ -128,7 +135,7 @@ public class Material { this.meltingPointK = (int) MathUtils.celsiusToKelvin(this.meltingPointC); this.boilingPointK = (int) MathUtils.celsiusToKelvin(this.boilingPointC); - + //Set Proton/Neutron count, if value is -1 calculate it from compound inputs. if (protons != -1){ this.vProtons = protons; @@ -142,10 +149,10 @@ public class Material { else { this.vNeutrons = this.calculateNeutrons(); } - - - - + + + + this.vMass = this.getMass(); //Sets tool Durability @@ -247,12 +254,12 @@ public class Material { this.vChemicalFormula = "??"; } + final Materials isValid = Materials.get(this.getLocalizedName()); - if (FluidUtils.getFluidStack(localizedName, 1) != null){ this.vMoltenFluid = FluidUtils.getFluidStack(localizedName, 1).getFluid(); } - else if (isValid == Materials._NULL){ + else if (isValid == null || isValid == Materials._NULL){ this.vMoltenFluid = this.generateFluid(); } else { @@ -269,8 +276,6 @@ public class Material { this.vPlasma = this.generatePlasma(); - //dataVar = MathUtils.generateSingularRandomHexValue(); - String ratio = ""; if (this.vSmallestRatio != null) { for (int hu=0;hu