aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/material
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2019-12-30 01:48:09 +0000
committerGitHub <noreply@github.com>2019-12-30 01:48:09 +0000
commit5af823e80a611090216375fecd3794d345446830 (patch)
treec54a19977b4a25cb86f54394eb9711aaf268efe3 /src/Java/gtPlusPlus/core/material
parenta731e939c6b9a70ac9fd444dbf06243f63f29c06 (diff)
parentcc825179dce70a5f2c4a13730639e3300243e21a (diff)
downloadGT5-Unofficial-5af823e80a611090216375fecd3794d345446830.tar.gz
GT5-Unofficial-5af823e80a611090216375fecd3794d345446830.tar.bz2
GT5-Unofficial-5af823e80a611090216375fecd3794d345446830.zip
Merge pull request #525 from alkcorp/DevTop
+ 6 Months of work, let's get the ball rolling.
Diffstat (limited to 'src/Java/gtPlusPlus/core/material')
-rw-r--r--src/Java/gtPlusPlus/core/material/ELEMENT.java27
-rw-r--r--src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java303
-rw-r--r--src/Java/gtPlusPlus/core/material/Material.java200
-rw-r--r--src/Java/gtPlusPlus/core/material/MaterialGenerator.java83
-rw-r--r--src/Java/gtPlusPlus/core/material/ORES.java28
-rw-r--r--src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java55
6 files changed, 457 insertions, 239 deletions
diff --git a/src/Java/gtPlusPlus/core/material/ELEMENT.java b/src/Java/gtPlusPlus/core/material/ELEMENT.java
index 99586b37fe..ba2579aa97 100644
--- a/src/Java/gtPlusPlus/core/material/ELEMENT.java
+++ b/src/Java/gtPlusPlus/core/material/ELEMENT.java
@@ -217,9 +217,32 @@ public final class ELEMENT {
//Runescape materials
- public static final Material BLACK_METAL = new Material("Black Metal", MaterialState.SOLID, TextureSet.SET_METALLIC, new short[] {5, 5, 5}, 2350, 4650, 24, 17, false, "҈", 0, new MaterialStack[]{new MaterialStack(getInstance().LEAD, 15), new MaterialStack(getInstance().TUNGSTEN, 25), new MaterialStack(getInstance().CARBON, 60)});//Not a GT Inherited Material
+ public static final Material BLACK_METAL = new Material("Black Metal", MaterialState.SOLID, TextureSet.SET_METALLIC, new short[] {5, 5, 5}, 2350, 4650, 24, 17, false, "҈", 0, new MaterialStack[]{new MaterialStack(getInstance().LEAD, 15), new MaterialStack(getInstance().MANGANESE, 25), new MaterialStack(getInstance().CARBON, 60)});//Not a GT Inherited Material
public static final Material WHITE_METAL = new Material("White Metal", MaterialState.SOLID, TextureSet.SET_METALLIC, new short[] {255, 255, 255}, 4560, 7580, 35, 41, false, "҉", 0, new MaterialStack[]{new MaterialStack(getInstance().COPPER, 5), new MaterialStack(getInstance().ANTIMONY, 10), new MaterialStack(getInstance().PLATINUM, 10), new MaterialStack(getInstance().TIN, 75)});//Not a GT Inherited Material
- public static final Material GRANITE = new Material("Ancient Granite", MaterialState.SOLID, TextureSet.SET_SAND, new short[] {107, 107, 107}, 500, 2000, 16, 12, false, "«»", 0, false);//Not a GT Inherited Material
+
+ public static final Material GRANITE = new Material(
+ "Ancient Granite",
+ MaterialState.SOLID,
+ TextureSet.SET_SAND,
+ new short[] {107, 107, 107},
+ 500,
+ 2000,
+ 16,
+ 12,
+ false,
+ "«»",
+ 0,
+ false,
+ new MaterialStack[]{
+ new MaterialStack(getInstance().OXYGEN, 30),
+ new MaterialStack(getInstance().IRON, 20),
+ new MaterialStack(getInstance().SILICON, 20),
+ new MaterialStack(getInstance().ALUMINIUM, 10),
+ new MaterialStack(getInstance().POTASSIUM, 10),
+ new MaterialStack(getInstance().CALCIUM, 5),
+ new MaterialStack(getInstance().SODIUM, 5)
+ });//Not a GT Inherited Material
+
public static final Material RUNITE = new Material("Runite", MaterialState.SOLID, TextureSet.SET_FINE, new short[] {60, 200, 190}, 6750, 11550, 73, 87, true, "§", 0);//Not a GT Inherited Material
public static final Material DRAGON_METAL = new Material("Dragonblood", MaterialState.SOLID, TextureSet.SET_SHINY, new short[] {220, 40, 20, 2}, 10160, 17850, 96, 105, true, "۞", 0);//Not a GT Inherited Material
diff --git a/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java b/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java
index c7032ab7c7..8dad69f70a 100644
--- a/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java
+++ b/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java
@@ -1,22 +1,25 @@
package gtPlusPlus.core.material;
+import gregtech.api.enums.Materials;
import gregtech.api.enums.TextureSet;
-import gtPlusPlus.core.material.nuclear.FLUORIDES;
+import gtPlusPlus.core.client.CustomTextureSet.TextureSets;
import gtPlusPlus.core.material.state.MaterialState;
+import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.MaterialUtils;
public final class MISC_MATERIALS {
-
+
/*
* Some of these materials purely exist as data objects, items will most likely be assigned seperately.
* Most are just compositions which will have dusts assigned to them.
*/
-
+
public static void run() {
MaterialUtils.generateSpecialDustAndAssignToAMaterial(STRONTIUM_OXIDE, false);
MaterialUtils.generateSpecialDustAndAssignToAMaterial(STRONTIUM_HYDROXIDE, false);
+ WATER.registerComponentForMaterial(FluidUtils.getWater(1000));
}
-
+
public static final Material STRONTIUM_OXIDE = new Material(
"Strontium Oxide",
MaterialState.SOLID,
@@ -33,8 +36,255 @@ public final class MISC_MATERIALS {
new MaterialStack[]{
new MaterialStack(ELEMENT.getInstance().STRONTIUM, 1),
new MaterialStack(ELEMENT.getInstance().OXYGEN, 1)
- });
-
+ });
+
+ public static final Material SELENIUM_DIOXIDE = new Material(
+ "Selenium Dioxide",
+ MaterialState.PURE_LIQUID, //State
+ null, //Material Colour
+ -1, //Melting Point in C
+ -1, //Boiling Point in C
+ -1, //Protons
+ -1,
+ false, //Uses Blast furnace?
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().SELENIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 2)
+ });
+
+ public static final Material SELENIOUS_ACID = new Material(
+ "Selenious Acid",
+ MaterialState.PURE_LIQUID, //State
+ null, //Material Colour
+ -1, //Melting Point in C
+ -1, //Boiling Point in C
+ -1, //Protons
+ -1,
+ false, //Uses Blast furnace?
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(SELENIUM_DIOXIDE, 1),
+ new MaterialStack(ELEMENT.getInstance().HYDROGEN, 8),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 4)
+ });
+
+ public static final Material HYDROGEN_CYANIDE = new Material(
+ "Hydrogen Cyanide",
+ MaterialState.PURE_LIQUID, //State
+ null, //Material Colour
+ 4, //Melting Point in C
+ 26, //Boiling Point in C
+ -1, //Protons
+ -1,
+ false, //Uses Blast furnace?
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().HYDROGEN, 1),
+ new MaterialStack(ELEMENT.getInstance().CARBON, 1),
+ new MaterialStack(ELEMENT.getInstance().NITROGEN, 1)
+ });
+
+ public static final Material CARBON_MONOXIDE = new Material(
+ "Carbon Monoxide",
+ MaterialState.PURE_LIQUID, //State
+ null, //Material Colour
+ -1, //Melting Point in C
+ -1, //Boiling Point in C
+ -1, //Protons
+ -1,
+ false, //Uses Blast furnace?
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().CARBON, 1),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 1)
+ });
+
+ public static final Material CARBON_DIOXIDE = new Material(
+ "Carbon Dioxide",
+ MaterialState.PURE_LIQUID, //State
+ null, //Material Colour
+ -1, //Melting Point in C
+ -1, //Boiling Point in C
+ -1, //Protons
+ -1,
+ false, //Uses Blast furnace?
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().CARBON, 1),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 2)
+ });
+
+
+ /*
+ * Rare Earth Materials
+ */
+
+ public static final Material RARE_EARTH_LOW = new Material(
+ "Rare Earth (I)", //Material Name
+ MaterialState.ORE, //State
+ TextureSets.GEM_A.get(), //Texture Set
+ null, //Material Colour
+ 1200,
+ 2500,
+ -1,
+ -1,
+ -1, //Radiation
+ new MaterialStack[]{
+ new MaterialStack(ORES.GREENOCKITE, 1),
+ new MaterialStack(ORES.LANTHANITE_CE, 1),
+ new MaterialStack(ORES.AGARDITE_CD, 1),
+ new MaterialStack(ORES.XENOTIME, 1),
+ new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.NetherQuartz), 1),
+ new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.Galena), 1),
+ new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.Chalcopyrite), 1),
+ new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.Cobaltite), 1),
+ new MaterialStack(ELEMENT.STANDALONE.GRANITE, 1)
+ });
+
+ public static final Material RARE_EARTH_MID = new Material(
+ "Rare Earth (II)", //Material Name
+ MaterialState.ORE, //State
+ TextureSets.ENRICHED.get(), //Texture Set
+ null, //Material Colour
+ 3500,
+ 5000,
+ -1,
+ -1,
+ -1, //Radiation
+ new MaterialStack[]{
+ new MaterialStack(ORES.LANTHANITE_ND, 1),
+ new MaterialStack(ORES.AGARDITE_ND, 1),
+ new MaterialStack(ORES.YTTRIAITE, 1),
+ new MaterialStack(ORES.CROCROITE, 1),
+ new MaterialStack(ORES.NICHROMITE, 1),
+ new MaterialStack(ORES.ZIRCON, 1),
+ new MaterialStack(ELEMENT.STANDALONE.GRANITE, 1),
+ new MaterialStack(ELEMENT.STANDALONE.BLACK_METAL, 1),
+ new MaterialStack(ELEMENT.STANDALONE.RUNITE, 1)
+ });
+
+ public static final Material RARE_EARTH_HIGH = new Material(
+ "Rare Earth (III)", //Material Name
+ MaterialState.ORE, //State
+ TextureSets.REFINED.get(), //Texture Set
+ null, //Material Colour
+ 5200,
+ 7500,
+ -1,
+ -1,
+ -1, //Radiation
+ new MaterialStack[]{
+ new MaterialStack(ORES.GADOLINITE_Y, 1),
+ new MaterialStack(ORES.LEPERSONNITE, 1),
+ new MaterialStack(ORES.FLORENCITE, 1),
+ new MaterialStack(ORES.FLUORCAPHITE, 1),
+ new MaterialStack(ORES.LAUTARITE, 1),
+ new MaterialStack(ORES.DEMICHELEITE_BR, 1),
+ new MaterialStack(ORES.ALBURNITE, 1),
+ new MaterialStack(ORES.KASHINITE, 1),
+ new MaterialStack(ORES.AGARDITE_LA, 1),
+ });
+
+ public static final Material WATER = new Material(
+ "Water",
+ MaterialState.PURE_LIQUID,
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().HYDROGEN, 2),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 1)
+ });
+
+ //OH
+ public static final Material HYDROXIDE = new Material(
+ "Hydroxide", //Material Name
+ MaterialState.PURE_LIQUID, //State
+ null, //Material Colour
+ -1, //Melting Point in C
+ -1, //Boiling Point in C
+ -1, //Protons
+ -1,
+ false, //Uses Blast furnace?
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 1),
+ new MaterialStack(ELEMENT.getInstance().HYDROGEN, 1)
+ });
+
+ //NH3
+ public static final Material AMMONIA = new Material(
+ "Ammonia", //Material Name
+ MaterialState.PURE_LIQUID, //State
+ null, //Material Colour
+ -77, //Melting Point in C
+ -33, //Boiling Point in C
+ -1, //Protons
+ -1,
+ false, //Uses Blast furnace?
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().NITROGEN, 1),
+ new MaterialStack(ELEMENT.getInstance().HYDROGEN, 3)
+ });
+
+ //NH4
+ public static final Material AMMONIUM = new Material(
+ "Ammonium", //Material Name
+ MaterialState.PURE_LIQUID, //State
+ null, //Material Colour
+ -1, //Melting Point in C
+ -1, //Boiling Point in C
+ -1, //Protons
+ -1,
+ false, //Uses Blast furnace?
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().NITROGEN, 1),
+ new MaterialStack(ELEMENT.getInstance().HYDROGEN, 4)
+ });
+
+
+ public static final Material HYDROGEN_CHLORIDE = new Material(
+ "Hydrogen Chloride",
+ MaterialState.PURE_LIQUID,
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().HYDROGEN, 1),
+ new MaterialStack(ELEMENT.getInstance().CHLORINE, 1),
+ });
+
+
+ public static final Material SODIUM_CHLORIDE = new Material(
+ "Sodium Chloride",
+ MaterialState.PURE_LIQUID,
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().SODIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().CHLORINE, 1),
+ });
+
+
+ public static final Material SODIUM_HYDROXIDE = new Material(
+ "Sodium Hydroxide",
+ MaterialState.PURE_LIQUID,
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().SODIUM, 1),
+ new MaterialStack(HYDROXIDE, 1),
+ });
+
+ public static final Material SALT_WATER = new Material(
+ "Salt Water",
+ MaterialState.PURE_LIQUID,
+ new MaterialStack[]{
+ new MaterialStack(WATER, 3),
+ new MaterialStack(SODIUM_CHLORIDE, 1),
+ });
+
+ public static final Material BRINE = new Material(
+ "Brine",
+ MaterialState.PURE_LIQUID,
+ new MaterialStack[]{
+ new MaterialStack(SALT_WATER, 1),
+ new MaterialStack(SODIUM_CHLORIDE, 2),
+ });
+
public static final Material STRONTIUM_HYDROXIDE = new Material(
"Strontium Hydroxide",
MaterialState.SOLID,
@@ -50,40 +300,9 @@ public final class MISC_MATERIALS {
false,
new MaterialStack[]{
new MaterialStack(ELEMENT.getInstance().STRONTIUM, 1),
- new MaterialStack(FLUORIDES.HYDROXIDE, 2)
- });
-
- public static final Material SELENIUM_DIOXIDE = new Material(
- "Selenium Dioxide",
- MaterialState.PURE_LIQUID, //State
- null, //Material Colour
- -1, //Melting Point in C
- -1, //Boiling Point in C
- -1, //Protons
- -1,
- false, //Uses Blast furnace?
- //Material Stacks with Percentage of required elements.
- new MaterialStack[]{
- new MaterialStack(ELEMENT.getInstance().SELENIUM, 1),
- new MaterialStack(ELEMENT.getInstance().OXYGEN, 2)
- });
-
- public static final Material SELENIOUS_ACID = new Material(
- "Selenious Acid",
- MaterialState.PURE_LIQUID, //State
- null, //Material Colour
- -1, //Melting Point in C
- -1, //Boiling Point in C
- -1, //Protons
- -1,
- false, //Uses Blast furnace?
- //Material Stacks with Percentage of required elements.
- new MaterialStack[]{
- new MaterialStack(SELENIUM_DIOXIDE, 1),
- new MaterialStack(ELEMENT.getInstance().HYDROGEN, 8),
- new MaterialStack(ELEMENT.getInstance().OXYGEN, 4)
- });
-
-
-
+ new MaterialStack(MISC_MATERIALS.HYDROXIDE, 2)
+ });
+
+
+
}
diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java
index 6b6be32107..b5922dde53 100644
--- a/src/Java/gtPlusPlus/core/material/Material.java
+++ b/src/Java/gtPlusPlus/core/material/Material.java
@@ -85,8 +85,17 @@ public class Material {
public static AutoMap<Materials> invalidMaterials = new AutoMap<Materials>();
+
+
+ public Material(final String materialName, final MaterialState defaultState, final MaterialStack... inputs){
+ this(materialName, defaultState, null, inputs);
+ }
+
+ public Material(final String materialName, final MaterialState defaultState, final short[] rgba, final MaterialStack... inputs){
+ this(materialName, defaultState, null, 0, rgba, -1, -1, -1, -1, false, "", 0, false, false, inputs);
+ }
- public Material(String materialName, MaterialState defaultState, short[] rgba, int radiationLevel, MaterialStack[] materialStacks) {
+ public Material(final String materialName, final MaterialState defaultState, final short[] rgba, int radiationLevel, MaterialStack... materialStacks) {
this(materialName, defaultState, null, 0, rgba, -1, -1, -1, -1, false, "", radiationLevel, false, materialStacks);
}
@@ -94,8 +103,8 @@ public class Material {
this(materialName, defaultState, null, 0, rgba, j, k, l, m, false, "", radiationLevel, false, materialStacks);
}
- public Material(String materialName, MaterialState defaultState, final TextureSet set, short[] rgba, int j, int k, int l, int m, int radiationLevel, MaterialStack[] materialStacks){
- this(materialName, defaultState, set, 0, rgba, j, k, l, m, false, "", radiationLevel, false, materialStacks);
+ public Material(String materialName, MaterialState defaultState, final TextureSet set, short[] rgba, int meltingPoint, int boilingPoint, int protons, int neutrons, int radiationLevel, MaterialStack[] materialStacks){
+ this(materialName, defaultState, set, 0, rgba, meltingPoint, boilingPoint, protons, neutrons, false, "", radiationLevel, false, materialStacks);
}
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){
@@ -228,7 +237,7 @@ public class Material {
int hashSize = MathUtils.howManyPlaces(aValueForGen);
String a = String.valueOf(aValueForGen);
- String b = null;
+ String b = "";
if (hashSize < 9) {
int aSecondHash = this.materialState.hashCode();
@@ -370,9 +379,6 @@ public class Material {
aDataSet.put(m.getStackMaterial().vRadiationLevel);
}
byte aAverage = MathUtils.getByteAverage(aDataSet);
- if (aAverage > Byte.MAX_VALUE || aAverage < Byte.MIN_VALUE) {
- aAverage = 0;
- }
if (aAverage > 0) {
Logger.MATERIALS(this.getLocalizedName()+" is radioactive due to trace elements. Level: "+aAverage+".");
this.isRadioactive = true;
@@ -463,32 +469,31 @@ public class Material {
}
if (generateFluid){
- final Materials isValid = Materials.get(this.getLocalizedName());
- if (FluidUtils.getFluidStack(localizedName, 1) != null){
- this.vMoltenFluid = FluidUtils.getFluidStack(localizedName, 1).getFluid();
- }
- else if (isValid == null || isValid == Materials._NULL){
- queueFluidGeneration();
+ final Materials isValid = Materials.get(this.getLocalizedName());
+ FluidStack aTest = FluidUtils.getWildcardFluidStack(localizedName, 1);
+ if (aTest != null){
+ this.vMoltenFluid = aTest.getFluid();
}
else {
- if (isValid.mFluid != null){
- this.vMoltenFluid = isValid.mFluid;
- }
- else if (isValid.mGas != null){
- this.vMoltenFluid = isValid.mGas;
- }
- else {
+ if (isValid == null || isValid == Materials._NULL){
queueFluidGeneration();
}
+ else {
+ FluidStack aTest2 = FluidUtils.getWildcardFluidStack(localizedName, 1);
+ if (aTest2 != null){
+ this.vMoltenFluid = aTest2.getFluid();
+ }
+ else {
+ queueFluidGeneration();
+ }
+ }
}
-
this.vPlasma = this.generatePlasma();
}
else {
this.vMoltenFluid = null;
this.vPlasma = null;
}
-
String ratio = "";
if (this.vSmallestRatio != null) {
for (int hu=0;hu<this.vSmallestRatio.length;hu++){
@@ -523,11 +528,6 @@ public class Material {
}
}
- public Material(String string, MaterialState solid, TextureSet setShiny, int i, short[] s, int j, int k, int l,
- int m, boolean b, String string2, int n) {
- // TODO Auto-generated constructor stub
- }
-
public final TextureSet getTextureSet() {
synchronized(this) {
return textureSet;
@@ -860,10 +860,9 @@ public class Material {
ItemStack a1 = getOre(1);
Item a2 = a1.getItem();
Block a3 = Block.getBlockFromItem(a2);
-
- //Logger.DEBUG_MATERIALS("[Invalid Ore] Is a1 valid? "+(a1 != null));
- //Logger.DEBUG_MATERIALS("[Invalid Ore] Is a2 valid? "+(a2 != null));
- //Logger.DEBUG_MATERIALS("[Invalid Ore] Is a3 valid? "+(a3 != null));
+ if (a3 != null) {
+ return a3;
+ }
Block x = Block.getBlockFromItem(ItemUtils.getItemStackOfAmountFromOreDictNoBroken("ore"+Utils.sanitizeString(this.unlocalizedName), stacksize).getItem());
if (x != null){
@@ -1095,96 +1094,41 @@ public class Material {
if (this.materialState == MaterialState.ORE){
return null;
}
+
+ Fluid aGTBaseFluid = null;
- final Materials isValid = Materials.get(this.getLocalizedName());
- //Logger.MATERIALS("Is "+this.getLocalizedName()+" a Gregtech material? "+(isValid != null && isValid != Materials._NULL)+" | Found "+isValid.mDefaultLocalName);
- if (isValid != Materials._NULL){
- for (Materials m : invalidMaterials.values()){
- if (isValid == m){
- Logger.MATERIALS("Trying to generate a fluid for blacklisted material: "+m.mDefaultLocalName);
- FluidStack a1 = m.getFluid(1);
- FluidStack a2 = m.getGas(1);
- FluidStack a3 = m.getMolten(1);
- FluidStack a4 = m.getSolid(1);
- FluidStack a5 = m.getPlasma(1);
- if (a1 != null){
- Logger.MATERIALS("Using a pre-defined Fluid from GT. Fluid.");
- return a1.getFluid();
- }
- if (a2 != null){
- Logger.MATERIALS("Using a pre-defined Fluid from GT. Gas.");
- return a2.getFluid();
- }
- if (a3 != null){
- Logger.MATERIALS("Using a pre-defined Fluid from GT. Molten.");
- return a3.getFluid();
- }
- if (a4 != null){
- Logger.MATERIALS("Using a pre-defined Fluid from GT. Solid.");
- return a4.getFluid();
- }
- if (a5 != null){
- Logger.MATERIALS("Using a pre-defined Fluid from GT. Plasma.");
- return a5.getFluid();
- }
- Logger.MATERIALS("Using null.");
- return null;
- }
- }
- }
-
- if (this.materialState == MaterialState.SOLID){
- if (isValid.mFluid != null){
- Logger.MATERIALS("Using a pre-defined Fluid from GT. mFluid.");
- return isValid.mFluid;
- }
- else if (isValid.mStandardMoltenFluid != null){
- Logger.MATERIALS("Using a pre-defined Fluid from GT. mStandardMoltenFluid.");
- return isValid.mStandardMoltenFluid;
- }
- }
- else if (this.materialState == MaterialState.GAS){
- if (isValid.mGas != null){
- Logger.MATERIALS("Using a pre-defined Fluid from GT. mGas.");
- return isValid.mGas;
- }
- }
- else if (this.materialState == MaterialState.LIQUID || this.materialState == MaterialState.PURE_LIQUID){
- if (isValid.mFluid != null){
- Logger.MATERIALS("Using a pre-defined Fluid from GT. mFluid.");
- return isValid.mFluid;
- }
- else if (isValid.mGas != null){
- Logger.MATERIALS("Using a pre-defined Fluid from GT. mGas.");
- return isValid.mGas;
- }
- else if (isValid.mStandardMoltenFluid != null){
- Logger.MATERIALS("Using a pre-defined Fluid from GT. mStandardMoltenFluid.");
- return isValid.mStandardMoltenFluid;
- }
- }
+ // Clean up Internal Fluid Generation
+ final Materials n1 = MaterialUtils.getMaterial(this.getLocalizedName(), Utils.sanitizeString(this.getLocalizedName()));
+ final Materials n2 = MaterialUtils.getMaterial(this.getUnlocalizedName(), Utils.sanitizeString(this.getUnlocalizedName()));
- FluidStack aTest1 = FluidUtils.getFluidStack("molten."+Utils.sanitizeString(this.getLocalizedName()), 1);
- FluidStack aTest2 = FluidUtils.getFluidStack("fluid."+Utils.sanitizeString(this.getLocalizedName()), 1);
- FluidStack aTest3 = FluidUtils.getFluidStack(Utils.sanitizeString(this.getLocalizedName()), 1);
+ FluidStack f1 = FluidUtils.getWildcardFluidStack(n1, 1);
+ FluidStack f2 = FluidUtils.getWildcardFluidStack(n2, 1);
+ FluidStack f3 = FluidUtils.getWildcardFluidStack(Utils.sanitizeString(this.getUnlocalizedName(), new char[] {'-', '_'}), 1);
+ FluidStack f4 = FluidUtils.getWildcardFluidStack(Utils.sanitizeString(this.getLocalizedName(), new char[] {'-', '_'}), 1);
- if (aTest1 != null) {
- Logger.MATERIALS("Found FluidRegistry entry for "+"molten."+Utils.sanitizeString(this.getLocalizedName()));
- return aTest1.getFluid();
+ if (f1 != null) {
+ aGTBaseFluid = f1.getFluid();
+ }
+ else if (f2 != null) {
+ aGTBaseFluid = f2.getFluid();
}
- if (aTest2 != null) {
- Logger.MATERIALS("Found FluidRegistry entry for "+"fluid."+Utils.sanitizeString(this.getLocalizedName()));
- return aTest2.getFluid();
+ else if (f3 != null) {
+ aGTBaseFluid = f3.getFluid();
}
- if (aTest3 != null) {
- Logger.MATERIALS("Found FluidRegistry entry for "+Utils.sanitizeString(this.getLocalizedName()));
- return aTest3.getFluid();
+ else if (f4 != null) {
+ aGTBaseFluid = f4.getFluid();
}
+
ItemStack aFullCell = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+this.getUnlocalizedName(), 1);
+ ItemStack aFullCell2 = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+this.getLocalizedName(), 1);
+ ItemStack aFullCell3 = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+Utils.sanitizeString(this.getUnlocalizedName(), new char[] {'-', '_'}), 1);
+ ItemStack aFullCell4 = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+Utils.sanitizeString(this.getLocalizedName(), new char[] {'-', '_'}), 1);
+
Logger.MATERIALS("Generating our own fluid.");
- //Generate a Cell if we need to
- if (aFullCell == null){
+ //Generate a Cell if we need to, but first validate all four searches are invalid
+
+ if (!ItemUtils.checkForInvalidItems(new ItemStack[] {aFullCell, aFullCell2, aFullCell3, aFullCell4})){
if (this.vGenerateCells){
Item g = new BaseItemCell(this);
aFullCell = ItemUtils.getSimpleStack(g);
@@ -1194,7 +1138,29 @@ public class Material {
Logger.MATERIALS("Did not generate a cell for "+this.getUnlocalizedName());
}
}
+ else {
+ // One cell we searched for was valid, let's register it.
+ if (aFullCell != null) {
+ this.registerComponentForMaterial(ComponentTypes.CELL, aFullCell);
+ }
+ else if (aFullCell2 != null) {
+ this.registerComponentForMaterial(ComponentTypes.CELL, aFullCell2);
+ }
+ else if (aFullCell3 != null) {
+ this.registerComponentForMaterial(ComponentTypes.CELL, aFullCell3);
+ }
+ else if (aFullCell4 != null) {
+ this.registerComponentForMaterial(ComponentTypes.CELL, aFullCell4);
+ }
+ }
+ // We found a GT fluid, let's use it.
+ // Good chance we registered the cell from this material too.
+ if (aGTBaseFluid != null) {
+ return aGTBaseFluid;
+ }
+
+ // This fluid does not exist at all, time to generate it.
if (this.materialState == MaterialState.SOLID){
return FluidUtils.addGTFluid(
this.getUnlocalizedName(),
@@ -1334,7 +1300,17 @@ public class Material {
}
+ public boolean registerComponentForMaterial(FluidStack aStack) {
+ return registerComponentForMaterial(this, aStack);
+ }
+ private static boolean registerComponentForMaterial(Material componentMaterial, FluidStack aStack) {
+ if (componentMaterial != null && aStack != null && componentMaterial.vMoltenFluid == null) {
+ componentMaterial.vMoltenFluid = aStack.getFluid();
+ return true;
+ }
+ return false;
+ }
public boolean registerComponentForMaterial(ComponentTypes aPrefix, ItemStack aStack) {
return registerComponentForMaterial(this, aPrefix.getGtOrePrefix(), aStack);
diff --git a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
index 44c02bc70d..20fdfd3c8c 100644
--- a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
+++ b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
@@ -2,13 +2,6 @@ package gtPlusPlus.core.material;
import java.util.Set;
-import net.minecraft.block.Block;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-
-import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.Recipe_GT;
-
import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
@@ -24,7 +17,11 @@ import gtPlusPlus.core.item.base.gears.BaseItemGear;
import gtPlusPlus.core.item.base.ingots.BaseItemIngot;
import gtPlusPlus.core.item.base.ingots.BaseItemIngotHot;
import gtPlusPlus.core.item.base.nugget.BaseItemNugget;
-import gtPlusPlus.core.item.base.ore.*;
+import gtPlusPlus.core.item.base.ore.BaseItemCentrifugedCrushedOre;
+import gtPlusPlus.core.item.base.ore.BaseItemCrushedOre;
+import gtPlusPlus.core.item.base.ore.BaseItemImpureDust;
+import gtPlusPlus.core.item.base.ore.BaseItemPurifiedCrushedOre;
+import gtPlusPlus.core.item.base.ore.BaseItemPurifiedDust;
import gtPlusPlus.core.item.base.plates.BaseItemPlate;
import gtPlusPlus.core.item.base.plates.BaseItemPlateDouble;
import gtPlusPlus.core.item.base.rings.BaseItemRing;
@@ -36,7 +33,21 @@ import gtPlusPlus.core.material.state.MaterialState;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
-import gtPlusPlus.xmod.gregtech.loaders.*;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_AlloySmelter;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Assembler;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_BlastSmelter;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_DustGeneration;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Extruder;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_FluidCanning;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Fluids;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_MaterialProcessing;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Ore;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Plates;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Recycling;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_ShapedCrafting;
+import net.minecraft.block.Block;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
public class MaterialGenerator {
@@ -48,21 +59,36 @@ public class MaterialGenerator {
@SuppressWarnings("unused")
private static volatile Block tempBlock;
- public static void addFluidExtractionRecipe(ItemStack a, Object b, FluidStack c, int a1, int a2, int a3) {
- GT_Recipe r = new Recipe_GT(
- true,
- new ItemStack[] {a, b != null ? (ItemStack) b : null},
- new ItemStack[] {},
- null,
- new int[] {},
- new FluidStack[] {},
- new FluidStack[] {c},
- a2, a3, a1);
- new RecipeGen_FluidCanning(r, true);
+
+ public static boolean addFluidExtractionRecipe(ItemStack aEmpty, ItemStack aRemains, FluidStack aFluid) {
+ return addFluidExtractionRecipe(aEmpty, aRemains, aFluid, null, null);
}
- public static void addFluidCannerRecipe(ItemStack aFullContainer, ItemStack aEmpty, FluidStack rFluidIn, FluidStack rFluidOut) {
- GT_Recipe r = new Recipe_GT(
+ /**
+ * Called Reflectively from CORE.RA.addFluidExtractionRecipe
+ * @param aSpecial
+ * @return
+ */
+ public static boolean addFluidExtractionRecipe(ItemStack aEmpty, ItemStack aRemains, FluidStack aFluid, Integer aDuration, Integer aEU) {
+ RecipeGen_FluidCanning g = new RecipeGen_FluidCanning(true, aEmpty, aRemains, aFluid, aDuration, aEU);
+ if (g != null && g.valid()) {
+ //Logger.INFO("[FIND] Adding Extraction recipe for "+ItemUtils.getItemName(aEmpty)+", "+ItemUtils.getItemName(aRemains)+", "+ItemUtils.getFluidName(aFluid));
+ return true;
+ }
+ Logger.INFO("[ERROR] FAILED adding Extraction recipe for "+ItemUtils.getItemName(aEmpty)+", "+ItemUtils.getItemName(aRemains)+", "+ItemUtils.getFluidName(aFluid));
+ return false;
+ }
+
+
+ public static boolean addFluidCannerRecipe(ItemStack aEmpty, ItemStack aFullContainer, FluidStack aFluidIn, FluidStack rFluidOut) {
+ return addFluidCannerRecipe(aEmpty, aFullContainer, aFluidIn, rFluidOut, null, null);
+ }
+ /**
+ * Called Reflectively from CORE.RA.addFluidCannerRecipe
+ * @return
+ */
+ public static boolean addFluidCannerRecipe(ItemStack aEmpty, ItemStack aFullContainer, FluidStack aFluidIn, FluidStack rFluidOut, Integer aTime, Integer aEu) {
+ /*GT_Recipe r = new Recipe_GT(
true,
new ItemStack[] {aEmpty},
new ItemStack[] {aFullContainer},
@@ -70,12 +96,13 @@ public class MaterialGenerator {
new int[] {},
new FluidStack[] {rFluidIn},
new FluidStack[] {rFluidOut},
- 0, 0, 0);
- new RecipeGen_FluidCanning(r, false);
- }
-
- public static void generateFluidExtractorRecipe(GT_Recipe recipe, boolean extracting) {
- new RecipeGen_FluidCanning(recipe, extracting);
+ 0, 0, 0);*/
+ //new RecipeGen_FluidCanning(r, false);
+ RecipeGen_FluidCanning g = new RecipeGen_FluidCanning(false, aEmpty, aFullContainer, aFluidIn, null, null, 0);
+ if (g != null && g.valid()) {
+ return true;
+ }
+ return false;
}
public static void generate(final Material matInfo){
diff --git a/src/Java/gtPlusPlus/core/material/ORES.java b/src/Java/gtPlusPlus/core/material/ORES.java
index 0e1691a557..c2556b60f1 100644
--- a/src/Java/gtPlusPlus/core/material/ORES.java
+++ b/src/Java/gtPlusPlus/core/material/ORES.java
@@ -90,9 +90,10 @@ public final class ORES {
-1,
-1, //Radiation
new MaterialStack[]{
- new MaterialStack(ELEMENT.getInstance().LEAD, 1),
- new MaterialStack(ELEMENT.getInstance().CHROMIUM, 1),
- new MaterialStack(ELEMENT.getInstance().OXYGEN, 4)
+ new MaterialStack(ELEMENT.getInstance().LEAD, 2),
+ new MaterialStack(ELEMENT.getInstance().CHROMIUM, 2),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 3),
+ new MaterialStack(ELEMENT.getInstance().CAESIUM, 1),
});
public static final Material NICHROMITE = new Material(
@@ -126,7 +127,10 @@ public final class ORES {
-1, //Radiation
new MaterialStack[]{
new MaterialStack(ELEMENT.getInstance().YTTRIUM, 1), //Y not YT/YB
- new MaterialStack(ELEMENT.getInstance().OXYGEN, 3)
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 3),
+ new MaterialStack(ELEMENT.getInstance().IRON, 4),
+ new MaterialStack(ELEMENT.getInstance().TIN, 1),
+ new MaterialStack(ELEMENT.getInstance().NITROGEN, 2)
});
//Samarskite_Y
@@ -260,6 +264,7 @@ public final class ORES {
-1, //Radiation
new MaterialStack[]{
new MaterialStack(ELEMENT.getInstance().YTTRIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().YTTERBIUM, 1),
new MaterialStack(ELEMENT.getInstance().PHOSPHORUS, 1),
new MaterialStack(ELEMENT.getInstance().OXYGEN, 4)
});
@@ -794,6 +799,21 @@ public final class ORES {
new MaterialStack(ELEMENT.getInstance().SULFUR, 16),
new MaterialStack(ELEMENT.getInstance().OXYGEN, 15)
});
+
+ public static final Material GREENOCKITE = new Material(
+ "Greenockite", //Material Name
+ MaterialState.ORE, //State
+ TextureSets.GEM_A.get(), //Texture Set
+ new short[]{110, 193, 25, 0}, //Material Colour
+ -1,
+ -1,
+ -1,
+ -1,
+ -1, //Radiation
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().CADMIUM, 2),
+ new MaterialStack(ELEMENT.getInstance().SULFUR, 2),
+ });
public static final Material DEEP_EARTH_REACTOR_FUEL_DEPOSIT = new Material(
diff --git a/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java b/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java
index b7a5f6074d..bfa08d3c29 100644
--- a/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java
+++ b/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java
@@ -3,6 +3,7 @@ package gtPlusPlus.core.material.nuclear;
import gregtech.api.enums.Materials;
import gregtech.api.enums.TextureSet;
import gtPlusPlus.core.material.ELEMENT;
+import gtPlusPlus.core.material.MISC_MATERIALS;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.material.MaterialStack;
import gtPlusPlus.core.material.state.MaterialState;
@@ -166,54 +167,6 @@ public class FLUORIDES {
//LFTR sub components
- //OH
- public static final Material HYDROXIDE = new Material(
- "Hydroxide", //Material Name
- MaterialState.PURE_LIQUID, //State
- null, //Material Colour
- -1, //Melting Point in C
- -1, //Boiling Point in C
- -1, //Protons
- -1,
- false, //Uses Blast furnace?
- //Material Stacks with Percentage of required elements.
- new MaterialStack[]{
- new MaterialStack(ELEMENT.getInstance().OXYGEN, 1),
- new MaterialStack(ELEMENT.getInstance().HYDROGEN, 1)
- });
-
- //NH3
- public static final Material AMMONIA = new Material(
- "Ammonia", //Material Name
- MaterialState.PURE_LIQUID, //State
- null, //Material Colour
- -77, //Melting Point in C
- -33, //Boiling Point in C
- -1, //Protons
- -1,
- false, //Uses Blast furnace?
- //Material Stacks with Percentage of required elements.
- new MaterialStack[]{
- new MaterialStack(ELEMENT.getInstance().NITROGEN, 1),
- new MaterialStack(ELEMENT.getInstance().HYDROGEN, 3)
- });
-
- //NH4
- public static final Material AMMONIUM = new Material(
- "Ammonium", //Material Name
- MaterialState.PURE_LIQUID, //State
- null, //Material Colour
- -1, //Melting Point in C
- -1, //Boiling Point in C
- -1, //Protons
- -1,
- false, //Uses Blast furnace?
- //Material Stacks with Percentage of required elements.
- new MaterialStack[]{
- new MaterialStack(ELEMENT.getInstance().NITROGEN, 1),
- new MaterialStack(ELEMENT.getInstance().HYDROGEN, 4)
- });
-
//(NH4)HF2
public static final Material AMMONIUM_BIFLUORIDE = new Material(
"Ammonium Bifluoride", //Material Name
@@ -226,7 +179,7 @@ public class FLUORIDES {
false, //Uses Blast furnace?
//Material Stacks with Percentage of required elements.
new MaterialStack[]{
- new MaterialStack(FLUORIDES.AMMONIUM, 1),
+ new MaterialStack(MISC_MATERIALS.AMMONIUM, 1),
new MaterialStack(ELEMENT.getInstance().HYDROGEN, 1),
new MaterialStack(ELEMENT.getInstance().FLUORINE, 2)
});
@@ -244,7 +197,7 @@ public class FLUORIDES {
//Material Stacks with Percentage of required elements.
new MaterialStack[]{
new MaterialStack(ELEMENT.getInstance().BERYLLIUM, 1),
- new MaterialStack(FLUORIDES.HYDROXIDE, 2)
+ new MaterialStack(MISC_MATERIALS.HYDROXIDE, 2)
});
// (NH4)2Be(OH)2 / (NH4)2BeF4
@@ -259,7 +212,7 @@ public class FLUORIDES {
false, //Uses Blast furnace?
//Material Stacks with Percentage of required elements.
new MaterialStack[]{
- new MaterialStack(FLUORIDES.AMMONIUM, 2),
+ new MaterialStack(MISC_MATERIALS.AMMONIUM, 2),
new MaterialStack(FLUORIDES.BERYLLIUM_HYDROXIDE, 1)
});