aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/material
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/core/material')
-rw-r--r--src/Java/gtPlusPlus/core/material/ALLOY.java40
-rw-r--r--src/Java/gtPlusPlus/core/material/ELEMENT.java8
-rw-r--r--src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java12
-rw-r--r--src/Java/gtPlusPlus/core/material/Material.java163
-rw-r--r--src/Java/gtPlusPlus/core/material/MaterialGenerator.java75
-rw-r--r--src/Java/gtPlusPlus/core/material/ORES.java888
-rw-r--r--src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java16
-rw-r--r--src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java247
-rw-r--r--src/Java/gtPlusPlus/core/material/state/MaterialState.java3
9 files changed, 953 insertions, 499 deletions
diff --git a/src/Java/gtPlusPlus/core/material/ALLOY.java b/src/Java/gtPlusPlus/core/material/ALLOY.java
index 22ffc34205..fd7547970c 100644
--- a/src/Java/gtPlusPlus/core/material/ALLOY.java
+++ b/src/Java/gtPlusPlus/core/material/ALLOY.java
@@ -635,7 +635,27 @@ public final class ALLOY {
new MaterialStack(ELEMENT.getInstance().COPPER, 3),
new MaterialStack(ELEMENT.getInstance().OXYGEN, 8)
});
-
+
+
+ public static final Material HS188A = new Material(
+ "HS188-A", //Material Name
+ MaterialState.SOLID, //State
+ null, //Material Colour
+ 4870, //Melting Point in C
+ 7550, //Boiling Point in C
+ -1, //Protons
+ -1, //Neutrons
+ true, //Uses Blast furnace?
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().COBALT, 20),
+ new MaterialStack(ELEMENT.getInstance().HAFNIUM, 20),
+ new MaterialStack(TALONITE, 16),
+ new MaterialStack(ELEMENT.getInstance().RHENIUM, 10),
+ new MaterialStack(NIOBIUM_CARBIDE, 10),
+ new MaterialStack(HASTELLOY_X, 8),
+ new MaterialStack(TUNGSTENSTEEL, 8),
+ new MaterialStack(ZIRCONIUM_CARBIDE, 8),
+ }); //Material Stacks with Percentage of required elements.
/**
* Stargate Materials - #D2FFA9 210, 255, 170
@@ -725,6 +745,24 @@ public final class ALLOY {
/*
* Top Tier Alloys
*/
+
+ public static final Material HELICOPTER = new Material(
+ "HeLiCoPtEr", //Material Name
+ MaterialState.SOLID, //State
+ null, //Material Colour
+ 5763,
+ 8192,
+ -1,
+ -1,
+ true, //Uses Blast furnace?
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().HELIUM, 20),
+ new MaterialStack(ELEMENT.getInstance().LITHIUM, 20),
+ new MaterialStack(ELEMENT.getInstance().COBALT, 20),
+ new MaterialStack(ELEMENT.getInstance().PLATINUM, 20),
+ new MaterialStack(ELEMENT.getInstance().ERBIUM, 20)
+ });
//0lafe Compound
public static final Material LAFIUM = new Material(
diff --git a/src/Java/gtPlusPlus/core/material/ELEMENT.java b/src/Java/gtPlusPlus/core/material/ELEMENT.java
index 3af8b560ad..54af01ef6e 100644
--- a/src/Java/gtPlusPlus/core/material/ELEMENT.java
+++ b/src/Java/gtPlusPlus/core/material/ELEMENT.java
@@ -23,7 +23,7 @@ public final class ELEMENT {
public final Material NITROGEN = MaterialUtils.generateMaterialFromGtENUM(Materials.Nitrogen);
public final Material OXYGEN = MaterialUtils.generateMaterialFromGtENUM(Materials.Oxygen);
public final Material FLUORINE = MaterialUtils.generateMaterialFromGtENUM(Materials.Fluorine);
- public final Material NEON = new Material("Neon", MaterialState.GAS, new short[]{255, 255, 255}, -248, -246, 10, 10, false, "Ne", 0);//Not a GT Inherited Material
+ public final Material NEON = new Material("Neon", MaterialState.PURE_GAS, new short[]{240, 180, 30}, -248, -246, 10, 10, false, "Ne", 0);//Not a GT Inherited Material
public final Material SODIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Sodium);
public final Material MAGNESIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Magnesium);
public final Material ALUMINIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Aluminium);
@@ -51,7 +51,7 @@ public final class ELEMENT {
public final Material ARSENIC = MaterialUtils.generateMaterialFromGtENUM(Materials.Arsenic);
public final Material SELENIUM = new Material("Selenium", MaterialState.SOLID, new short[]{190, 190, 190}, 217, 685, 34, 45, false, "Se", 0);//Not a GT Inherited Material
public final Material BROMINE = new Material("Bromine", MaterialState.PURE_LIQUID, new short[]{200, 25, 25}, -7, 58, 35, 45, false, "Br", 0);//Not a GT Inherited Material
- public final Material KRYPTON = new Material("Krypton", MaterialState.PURE_LIQUID, new short[]{255, 255, 255}, -157, -153, 36, 48, false, "Kr", 0);//Not a GT Inherited Material
+ public final Material KRYPTON = new Material("Krypton", MaterialState.PURE_GAS, new short[]{5, 200, 220}, -157, -153, 36, 48, false, "Kr", 0);//Not a GT Inherited Material
public final Material RUBIDIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Rubidium);
public final Material STRONTIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Strontium, new short[] {230, 210, 110}, TextureSet.SET_FLINT);
public final Material YTTRIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Yttrium);
@@ -69,7 +69,7 @@ public final class ELEMENT {
public final Material ANTIMONY = MaterialUtils.generateMaterialFromGtENUM(Materials.Antimony);
public final Material TELLURIUM = new Material("Tellurium", MaterialState.SOLID, new short[]{210, 210, 210}, 449, 989, 52, 76, false, "Te", 0);//Not a GT Inherited Material
public final Material IODINE = new Material("Iodine", MaterialState.SOLID, TextureSet.SET_SHINY, new short[]{96, 96, 96}, 114, 184, 53, 74, false, "I", 0);//Not a GT Inherited Material
- public final Material XENON = new Material("Xenon", MaterialState.GAS, new short[]{255, 255, 255}, -111, -108, 54, 77, false, "Xe", 0);//Not a GT Inherited Material
+ public final Material XENON = new Material("Xenon", MaterialState.PURE_GAS, new short[]{5, 105, 210}, -111, -108, 54, 77, false, "Xe", 0);//Not a GT Inherited Material
public final Material CAESIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Caesium);
public final Material BARIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Barium);
public final Material LANTHANUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Lanthanum);
@@ -143,7 +143,7 @@ public final class ELEMENT {
public final Material LITHIUM7 = new Material("Lithium 7", MaterialState.SOLID, TextureSet.SET_SHINY, Materials.Lithium.mRGBa, Materials.Lithium.mMeltingPoint, Materials.Lithium.mBlastFurnaceTemp, Materials.Lithium.getProtons(), Materials.Lithium.getNeutrons(), Materials.Lithium.mBlastFurnaceRequired, StringUtils.superscript("7Li"), 0, false);//Not a GT Inherited Material
public final Material URANIUM232 = new Material("Uranium 232", MaterialState.SOLID, TextureSets.NUCLEAR.get(), new short[]{88, 220, 103, 0}, 1132, 4131, 92, 140, false, StringUtils.superscript("232U"), 4);//Not a GT Inherited Material
public final Material URANIUM233 = new Material("Uranium 233", MaterialState.SOLID, TextureSets.NUCLEAR.get(), new short[]{73, 220, 83, 0}, 1132, 4131, 92, 141, false, StringUtils.superscript("233U"), 2);//Not a GT Inherited Material
- public final Material THORIUM232 = new Material("Thorium 232", MaterialState.SOLID, TextureSets.NUCLEAR.get(), new short[]{15, 60, 15, 0}, Materials.Thorium.mMeltingPoint, Materials.Thorium.mBlastFurnaceTemp, 90, 142, false, StringUtils.superscript("232Th"), 1, false);//Not a GT Inherited Material
+ public final Material THORIUM232 = new Material("Thorium 232", MaterialState.SOLID, TextureSets.NUCLEAR.get(), new short[]{15, 60, 15, 0}, Materials.Thorium.mMeltingPoint, Materials.Thorium.mBlastFurnaceTemp, 90, 142, false, StringUtils.superscript("232Th"), 1, true);//Not a GT Inherited Material
public final Material PLUTONIUM239 = new Material("Plutonium-239", MaterialState.SOLID, TextureSets.NUCLEAR.get(), Materials.Plutonium.mDurability, Materials.Plutonium.mRGBa, Materials.Plutonium.mMeltingPoint, Materials.Plutonium.mBlastFurnaceTemp, 94, 145, false, StringUtils.superscript("239Pu"), 4, true);//Not a GT Inherited Material
//RTG Fuels
public final Material PLUTONIUM238 = new Material("Plutonium-238", MaterialState.SOLID, TextureSets.NUCLEAR.get(), Materials.Plutonium241.mDurability, Materials.Plutonium241.mRGBa, Materials.Plutonium241.mMeltingPoint, Materials.Plutonium241.mBlastFurnaceTemp, 94, 144, false, StringUtils.superscript("238Pu"), 2, false);//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 8dad69f70a..aaee1cc790 100644
--- a/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java
+++ b/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java
@@ -71,7 +71,7 @@ public final class MISC_MATERIALS {
public static final Material HYDROGEN_CYANIDE = new Material(
"Hydrogen Cyanide",
- MaterialState.PURE_LIQUID, //State
+ MaterialState.PURE_GAS, //State
null, //Material Colour
4, //Melting Point in C
26, //Boiling Point in C
@@ -87,7 +87,7 @@ public final class MISC_MATERIALS {
public static final Material CARBON_MONOXIDE = new Material(
"Carbon Monoxide",
- MaterialState.PURE_LIQUID, //State
+ MaterialState.PURE_GAS, //State
null, //Material Colour
-1, //Melting Point in C
-1, //Boiling Point in C
@@ -102,7 +102,7 @@ public final class MISC_MATERIALS {
public static final Material CARBON_DIOXIDE = new Material(
"Carbon Dioxide",
- MaterialState.PURE_LIQUID, //State
+ MaterialState.PURE_GAS, //State
null, //Material Colour
-1, //Melting Point in C
-1, //Boiling Point in C
@@ -245,7 +245,7 @@ public final class MISC_MATERIALS {
public static final Material HYDROGEN_CHLORIDE = new Material(
"Hydrogen Chloride",
- MaterialState.PURE_LIQUID,
+ MaterialState.PURE_GAS,
new MaterialStack[]{
new MaterialStack(ELEMENT.getInstance().HYDROGEN, 1),
new MaterialStack(ELEMENT.getInstance().CHLORINE, 1),
@@ -254,7 +254,7 @@ public final class MISC_MATERIALS {
public static final Material SODIUM_CHLORIDE = new Material(
"Sodium Chloride",
- MaterialState.PURE_LIQUID,
+ MaterialState.PURE_GAS,
new MaterialStack[]{
new MaterialStack(ELEMENT.getInstance().SODIUM, 1),
new MaterialStack(ELEMENT.getInstance().CHLORINE, 1),
@@ -263,7 +263,7 @@ public final class MISC_MATERIALS {
public static final Material SODIUM_HYDROXIDE = new Material(
"Sodium Hydroxide",
- MaterialState.PURE_LIQUID,
+ MaterialState.PURE_GAS,
new MaterialStack[]{
new MaterialStack(ELEMENT.getInstance().SODIUM, 1),
new MaterialStack(HYDROXIDE, 1),
diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java
index dee064353a..0e9eb9b376 100644
--- a/src/Java/gtPlusPlus/core/material/Material.java
+++ b/src/Java/gtPlusPlus/core/material/Material.java
@@ -3,7 +3,11 @@ package gtPlusPlus.core.material;
import static gregtech.api.enums.GT_Values.M;
import static gtPlusPlus.core.util.math.MathUtils.safeCast_LongToInt;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
@@ -33,16 +37,19 @@ import net.minecraftforge.fluids.FluidStack;
public class Material {
public static final Set<Material> mMaterialMap = new HashSet<Material>();
+ public static HashMap<String, Material> mMaterialCache = new HashMap<String, Material>();
public static final Map<String, Map<String, ItemStack>> mComponentMap = new HashMap<String, Map<String, ItemStack>>();
+ public static HashMap<String, String> sChemicalFormula = new HashMap<String, String>();
+
private String unlocalizedName;
private String localizedName;
private MaterialState materialState;
private TextureSet textureSet;
- private Fluid vMoltenFluid;
+ private Fluid mFluid;
private Fluid vPlasma;
private boolean vGenerateCells;
@@ -163,6 +170,8 @@ public class Material {
try {
this.unlocalizedName = Utils.sanitizeString(materialName);
this.localizedName = materialName;
+ mMaterialCache.put(getLocalizedName().toLowerCase(), this);
+ Logger.INFO("Stored "+getLocalizedName()+" to cache with key: "+getLocalizedName().toLowerCase());
this.materialState = defaultState;
@@ -466,29 +475,28 @@ public class Material {
}
if (generateFluid){
- final Materials isValid = Materials.get(this.getLocalizedName());
+ final Materials aGregtechMaterial = tryFindGregtechMaterialEquivalent();
FluidStack aTest = FluidUtils.getWildcardFluidStack(localizedName, 1);
if (aTest != null){
- this.vMoltenFluid = aTest.getFluid();
+ this.mFluid = aTest.getFluid();
+ checkForCellAndGenerate(this);
}
else {
- if (isValid == null || isValid == Materials._NULL){
- queueFluidGeneration();
+ if (aGregtechMaterial != null && !MaterialUtils.isNullGregtechMaterial(aGregtechMaterial)){
+ aTest = FluidUtils.getWildcardFluidStack(aGregtechMaterial, 1);
}
- else {
- FluidStack aTest2 = FluidUtils.getWildcardFluidStack(localizedName, 1);
- if (aTest2 != null){
- this.vMoltenFluid = aTest2.getFluid();
- }
- else {
- queueFluidGeneration();
- }
+ if (aTest != null){
+ this.mFluid = aTest.getFluid();
+ checkForCellAndGenerate(this);
}
+ else {
+ mFluid = generateFluid();
+ }
}
this.vPlasma = this.generatePlasma();
}
else {
- this.vMoltenFluid = null;
+ this.mFluid = null;
this.vPlasma = null;
}
String ratio = "";
@@ -511,6 +519,7 @@ public class Material {
}
}
+ sChemicalFormula.put(materialName.toLowerCase(), this.vChemicalFormula);
Logger.MATERIALS("Creating a Material instance for "+materialName);
Logger.MATERIALS("Formula: "+this.vChemicalFormula + " Smallest Stack: "+this.smallestStackSizeWhenProcessing+" Smallest Ratio:"+ratio);
Logger.MATERIALS("Protons: "+this.vProtons);
@@ -525,6 +534,36 @@ public class Material {
}
}
+ private static void checkForCellAndGenerate(Material material) {
+ if (!material.vGenerateCells) {
+ return;
+ }
+ String aName = Utils.sanitizeString(material.unlocalizedName);
+ String aName2 = Utils.sanitizeString(material.unlocalizedName.toLowerCase());
+ String aName3 = (material.localizedName == null) ? aName : material.localizedName;
+ ItemStack aTestCell1 = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+aName, 1);
+ ItemStack aTestCell2 = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+aName2, 1);
+ ItemStack aTestCell3 = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+aName3, 1);
+ if (aTestCell1 == null && aTestCell2 == null && aTestCell3 == null) {
+ Logger.INFO("Generating cell for "+ material.localizedName);
+ new BaseItemCell(material);
+ }
+ else {
+ if (aTestCell1 != null) {
+ Logger.INFO("Registering existing cell for "+ material.localizedName+", "+aName);
+ material.registerComponentForMaterial(OrePrefixes.cell, aTestCell1);
+ }
+ else if (aTestCell2 != null) {
+ Logger.INFO("Registering existing cell for "+ material.localizedName+", "+aName2);
+ material.registerComponentForMaterial(OrePrefixes.cell, aTestCell2);
+ }
+ else if (aTestCell3 != null) {
+ Logger.INFO("Registering existing cell for "+ material.localizedName+", "+aName3);
+ material.registerComponentForMaterial(OrePrefixes.cell, aTestCell3);
+ }
+ }
+ }
+
public final TextureSet getTextureSet() {
synchronized(this) {
return textureSet;
@@ -735,14 +774,26 @@ public class Material {
else {
// Try get a GT Material
Materials Erf = MaterialUtils.getMaterial(this.unlocalizedName);
- if (Erf != null && Erf != Materials._NULL) {
+ if (Erf != null && !MaterialUtils.isNullGregtechMaterial(Erf)) {
ItemStack Erg = ItemUtils.getOrePrefixStack(aPrefix, Erf, stacksize);
- if (Erg != null) {
+ if (Erg != null && ItemUtils.checkForInvalidItems(Erg)) {
Logger.MATERIALS("Found \"" + aKey + this.unlocalizedName + "\" using backup GT Materials option.");
g.put(aKey, Erg);
mComponentMap.put(unlocalizedName, g);
return Erg;
}
+ else {
+ // Try get a molten cell
+ if (aPrefix == OrePrefixes.cell) {
+ Erg = ItemUtils.getOrePrefixStack(OrePrefixes.cellMolten, Erf, stacksize);
+ if (Erg != null && ItemUtils.checkForInvalidItems(Erg)) {
+ Logger.MATERIALS("Found \"" + OrePrefixes.cellMolten.name() + this.unlocalizedName + "\" using backup GT Materials option.");
+ g.put(aKey, Erg);
+ mComponentMap.put(unlocalizedName, g);
+ return Erg;
+ }
+ }
+ }
} else {
ItemStack u = ItemUtils.getItemStackOfAmountFromOreDictNoBroken(aKey + this.unlocalizedName, stacksize);
if (u != null) {
@@ -1082,7 +1133,6 @@ public class Material {
public final static void generateQueuedFluids() {
for (Material m : mMaterialMap) {
if (m.isFluidQueued) {
- m.vMoltenFluid = m.generateFluid();
}
}
}
@@ -1185,8 +1235,9 @@ public class Material {
1000,
this.vGenerateCells);
}
- else if (this.materialState == MaterialState.GAS){
- return FluidUtils.addGTFluid(
+ else if (this.materialState == MaterialState.GAS || this.materialState == MaterialState.PURE_GAS){
+ return FluidUtils.generateGas(unlocalizedName, this.getLocalizedName(), getMeltingPointK(), getRGBA(), vGenerateCells);
+ /*return FluidUtils.addGTFluid(
this.getUnlocalizedName(),
this.getLocalizedName()+" Gas",
this.RGBA,
@@ -1195,7 +1246,7 @@ public class Material {
aFullCell,
ItemUtils.getEmptyCell(),
1000,
- this.vGenerateCells);
+ this.vGenerateCells);*/
}
else { //Plasma
return this.generatePlasma();
@@ -1206,34 +1257,46 @@ public class Material {
if (this.materialState == MaterialState.ORE){
return null;
}
- final Materials isValid = Materials.get(this.getLocalizedName());
+ final Materials isValid = tryFindGregtechMaterialEquivalent();
if (!this.vGenerateCells){
return null;
}
- for (Materials m : invalidMaterials.values()){
- if (isValid == m){
- return (m.mPlasma != null ? m.mPlasma : null);
+ if (isValid != null) {
+ for (Materials m : invalidMaterials.values()){
+ if (isValid == m){
+ return null;
+ }
+ }
+ if (isValid.mPlasma != null){
+ Logger.MATERIALS("Using a pre-defined Plasma from GT.");
+ return isValid.mPlasma;
}
}
- if (isValid.mPlasma != null){
- Logger.MATERIALS("Using a pre-defined Plasma from GT.");
- return isValid.mPlasma;
- }
-
Logger.MATERIALS("Generating our own Plasma.");
return FluidUtils.addGTPlasma(this);
}
+ public Fluid getFluid() {
+ return mFluid;
+ }
- final public FluidStack getFluid(final int fluidAmount) {
- if (this.vMoltenFluid == null){
+ final public FluidStack getFluidStack(final int fluidAmount) {
+ if (this.mFluid == null){
return null;
}
- final FluidStack moltenFluid = new FluidStack(this.vMoltenFluid, fluidAmount);
+ final FluidStack moltenFluid = new FluidStack(this.mFluid, fluidAmount);
return moltenFluid;
}
+
+ final public boolean setFluid(Fluid aFluid) {
+ if (this.mFluid == null){
+ this.mFluid = aFluid;
+ return true;
+ }
+ return false;
+ }
final public int calculateMeltingPoint(){
@@ -1322,8 +1385,8 @@ public class Material {
}
private static boolean registerComponentForMaterial(Material componentMaterial, FluidStack aStack) {
- if (componentMaterial != null && aStack != null && componentMaterial.vMoltenFluid == null) {
- componentMaterial.vMoltenFluid = aStack.getFluid();
+ if (componentMaterial != null && aStack != null && componentMaterial.mFluid == null) {
+ componentMaterial.mFluid = aStack.getFluid();
return true;
}
return false;
@@ -1364,5 +1427,35 @@ public class Material {
return false;
}
}
+
+ public Materials tryFindGregtechMaterialEquivalent() {
+ return tryFindGregtechMaterialEquivalent(this);
+ }
+
+
+ public static Materials tryFindGregtechMaterialEquivalent(Material aMaterial) {
+ String aMaterialName = aMaterial.getLocalizedName();
+ Materials aGregtechMaterial = Materials.get(aMaterialName);
+ if (aGregtechMaterial == null || MaterialUtils.isNullGregtechMaterial(aGregtechMaterial)) {
+ aMaterialName = aMaterialName.replace(" ", "_");
+ aGregtechMaterial = Materials.get(aMaterialName);
+ if (aGregtechMaterial == null || MaterialUtils.isNullGregtechMaterial(aGregtechMaterial)) {
+ aMaterialName = aMaterialName.replace(" ", "");
+ aGregtechMaterial = Materials.get(aMaterialName);
+ if (aGregtechMaterial == null || MaterialUtils.isNullGregtechMaterial(aGregtechMaterial)) {
+ return null;
+ }
+ else {
+ return aGregtechMaterial;
+ }
+ }
+ else {
+ return aGregtechMaterial;
+ }
+ }
+ else {
+ return aGregtechMaterial;
+ }
+ }
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
index 20fdfd3c8c..8425ed89be 100644
--- a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
+++ b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
@@ -2,6 +2,9 @@ package gtPlusPlus.core.material;
import java.util.Set;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_Utility;
import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
@@ -29,7 +32,10 @@ import gtPlusPlus.core.item.base.rods.BaseItemRod;
import gtPlusPlus.core.item.base.rods.BaseItemRodLong;
import gtPlusPlus.core.item.base.rotors.BaseItemRotor;
import gtPlusPlus.core.item.base.screws.BaseItemScrew;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.material.nuclear.FLUORIDES;
import gtPlusPlus.core.material.state.MaterialState;
+import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
@@ -41,7 +47,9 @@ 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_MetalRecipe;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Ore;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Plasma;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Plates;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Recycling;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_ShapedCrafting;
@@ -188,6 +196,10 @@ public class MaterialGenerator {
temp = new BaseItemDust(matInfo);
FluidUtils.generateGas(unlocalizedName, materialName, matInfo.getMeltingPointK(), C, true);
}
+ else if (matInfo.getState() == MaterialState.PURE_GAS){
+ FluidUtils.generateGas(unlocalizedName, materialName, matInfo.getMeltingPointK(), C, true);
+ return true;
+ }
else if (matInfo.getState() == MaterialState.PURE_LIQUID){
FluidUtils.generateFluidNoPrefix(unlocalizedName, materialName, matInfo.getMeltingPointK(), C);
return true;
@@ -202,6 +214,7 @@ public class MaterialGenerator {
if (generateBlastSmelterRecipes){
new RecipeGen_BlastSmelter(matInfo);
}
+ new RecipeGen_MetalRecipe(matInfo);
new RecipeGen_Extruder(matInfo);
new RecipeGen_Fluids(matInfo);
new RecipeGen_Plates(matInfo);
@@ -210,6 +223,8 @@ public class MaterialGenerator {
new RecipeGen_DustGeneration(matInfo);
new RecipeGen_Recycling(matInfo);
+ new RecipeGen_Plasma(matInfo);
+
return true;
} catch (final Throwable t)
@@ -258,13 +273,50 @@ public class MaterialGenerator {
generateNuclearMaterial(matInfo, true);
}
+
+ public static void generateNuclearDusts(final Material matInfo){
+ generateNuclearDusts(matInfo, true);
+ }
+
+ public static void generateNuclearDusts(final Material matInfo, boolean generateDehydratorRecipe){
+ generateNuclearMaterial(matInfo, false, true, false, false, true);
+ if (generateDehydratorRecipe && matInfo.getFluid() != null && matInfo.getDust(0) != null) {
+ CORE.RA.addDehydratorRecipe(
+ new ItemStack[] {
+ CI.getNumberedAdvancedCircuit(20)
+ },
+ matInfo.getFluidStack(144),
+ null,
+ new ItemStack[] {
+ matInfo.getDust(1),
+ },
+ new int[] { 10000 },
+ 10*(matInfo.vVoltageMultiplier/5), // Time in ticks
+ matInfo.vVoltageMultiplier); // EU
+ }
+ else {
+ Logger.INFO("Nuclear Dehydrator: Did not generate recipe for "+matInfo.getLocalizedName()+" | Null Fluid? "+(matInfo.getFluid() == null)+" | Null Dust? "+(matInfo.getDust(0) == null));
+ }
+ }
+
public static void generateNuclearMaterial(final Material matInfo, final boolean generatePlates){
+ generateNuclearMaterial(matInfo, true, true, true, generatePlates, true);
+ }
+
+ public static void generateNuclearMaterial(final Material matInfo, final boolean generateBlock,
+ final boolean generateDusts, final boolean generateIngot, final boolean generatePlates, final boolean disableOptionalRecipes){
try {
- tempBlock = new BlockBaseModular(matInfo,BlockTypes.STANDARD);
- temp = new BaseItemDust(matInfo);
- temp = new BaseItemIngot(matInfo);
- temp = new BaseItemNugget(matInfo);
+ if (generateBlock) {
+ tempBlock = new BlockBaseModular(matInfo,BlockTypes.STANDARD);
+ }
+ if (generateDusts) {
+ temp = new BaseItemDust(matInfo);
+ }
+ if (generateIngot) {
+ temp = new BaseItemIngot(matInfo);
+ temp = new BaseItemNugget(matInfo);
+ }
if (generatePlates) {
temp = new BaseItemPlate(matInfo);
@@ -274,11 +326,16 @@ public class MaterialGenerator {
new RecipeGen_Assembler(matInfo);
}
- new RecipeGen_ShapedCrafting(matInfo);
- new RecipeGen_Fluids(matInfo);
- new RecipeGen_MaterialProcessing(matInfo);
- new RecipeGen_DustGeneration(matInfo, true);
- new RecipeGen_Recycling(matInfo);
+ if (!disableOptionalRecipes) {
+ new RecipeGen_ShapedCrafting(matInfo);
+ new RecipeGen_Fluids(matInfo);
+ new RecipeGen_MaterialProcessing(matInfo);
+ new RecipeGen_Recycling(matInfo);
+ }
+
+ new RecipeGen_MetalRecipe(matInfo);
+ new RecipeGen_DustGeneration(matInfo, disableOptionalRecipes);
+ new RecipeGen_Plasma(matInfo);
} catch (final Throwable t){
Logger.MATERIALS(""+matInfo.getLocalizedName()+" failed to generate.");
diff --git a/src/Java/gtPlusPlus/core/material/ORES.java b/src/Java/gtPlusPlus/core/material/ORES.java
index c2556b60f1..0186c23a07 100644
--- a/src/Java/gtPlusPlus/core/material/ORES.java
+++ b/src/Java/gtPlusPlus/core/material/ORES.java
@@ -6,119 +6,147 @@ import gtPlusPlus.core.material.state.MaterialState;
public final class ORES {
- public static final Material GEIKIELITE = new Material(
- "Geikielite", //Material Name
+ public static final Material AGARDITE_CD = new Material(
+ "Agardite (Cd)", //Material Name
MaterialState.ORE, //State
- TextureSets.GEM_A.get(), //Texture Set
- new short[]{187, 193, 204, 0}, //Material Colour
+ TextureSet.SET_METALLIC, //Texture Set
+ new short[]{170, 188, 33, 0}, //Material Colour
-1,
-1,
-1,
-1,
-1, //Radiation
- new MaterialStack[]{
- new MaterialStack(ELEMENT.getInstance().MAGNESIUM, 1),
- new MaterialStack(ELEMENT.getInstance().TITANIUM, 1),
- new MaterialStack(ELEMENT.getInstance().OXYGEN, 3)
+ new MaterialStack[]{// (CdCa)Cu7(AsO2)4(O2H)5·3H2O
+ new MaterialStack(ELEMENT.getInstance().CADMIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().CALCIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().COPPER, 7),
+ new MaterialStack(ELEMENT.getInstance().ARSENIC, 4),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 21),
+ new MaterialStack(ELEMENT.getInstance().HYDROGEN, 11)
});
- public static final Material ZIMBABWEITE = new Material(
- "Zimbabweite", //Material Name
+ public static final Material AGARDITE_LA = new Material(
+ "Agardite (La)", //Material Name
MaterialState.ORE, //State
TextureSet.SET_FINE, //Texture Set
- new short[]{193, 187, 131, 0}, //Material Colour
+ new short[]{206, 232, 9, 0}, //Material Colour
-1,
-1,
-1,
-1,
-1, //Radiation
- new MaterialStack[]{
- new MaterialStack(ELEMENT.getInstance().CALCIUM, 2),
- new MaterialStack(ELEMENT.getInstance().POTASSIUM, 2),
- new MaterialStack(ELEMENT.getInstance().LEAD, 1),
- new MaterialStack(ELEMENT.getInstance().ARSENIC, 4),
- new MaterialStack(ELEMENT.getInstance().NIOBIUM, 4),
- new MaterialStack(ELEMENT.getInstance().TANTALUM, 4),
- new MaterialStack(ELEMENT.getInstance().TITANIUM, 4),
- new MaterialStack(ELEMENT.getInstance().OXYGEN, 18)
+ new MaterialStack[]{// (LaCa)Cu5(AsO6)2(OH)4·3H2O
+ new MaterialStack(ELEMENT.getInstance().LANTHANUM, 1),
+ new MaterialStack(ELEMENT.getInstance().CALCIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().COPPER, 5),
+ new MaterialStack(ELEMENT.getInstance().ARSENIC, 2),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 19),
+ new MaterialStack(ELEMENT.getInstance().HYDROGEN, 10)
});
- public static final Material TITANITE = new Material(
- "Titanite", //Material Name
+ public static final Material AGARDITE_ND = new Material(
+ "Agardite (Nd)", //Material Name
MaterialState.ORE, //State
TextureSet.SET_METALLIC, //Texture Set
- new short[]{184, 198, 105, 0}, //Material Colour
+ new short[]{225, 244, 78, 0}, //Material Colour
-1,
-1,
-1,
-1,
-1, //Radiation
- new MaterialStack[]{
- new MaterialStack(ELEMENT.getInstance().CALCIUM, 2),
- new MaterialStack(ELEMENT.getInstance().TITANIUM, 2),
- new MaterialStack(ELEMENT.getInstance().SILICON, 2),
- new MaterialStack(ELEMENT.getInstance().THORIUM, 1),
- new MaterialStack(ELEMENT.getInstance().OXYGEN, 10)
+ new MaterialStack[]{// (NdCa)Cu6(As3O3)2(O2H)6·3H2O
+ new MaterialStack(ELEMENT.getInstance().NEODYMIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().CALCIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().COPPER, 6),
+ new MaterialStack(ELEMENT.getInstance().ARSENIC, 6),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 21),
+ new MaterialStack(ELEMENT.getInstance().HYDROGEN, 12)
});
- public static final Material ZIRCONILITE = new Material(
- "Zirconolite", //Material Name
+ public static final Material AGARDITE_Y = new Material(
+ "Agardite (Y)", //Material Name
MaterialState.ORE, //State
- TextureSet.SET_FINE, //Texture Set
- new short[]{45, 26, 0, 0}, //Material Colour
+ TextureSet.SET_METALLIC, //Texture Set
+ new short[]{210, 232, 44, 0}, //Material Colour
-1,
-1,
-1,
-1,
-1, //Radiation
- new MaterialStack[]{
- new MaterialStack(ELEMENT.getInstance().CALCIUM, 2),
- new MaterialStack(ELEMENT.getInstance().ZIRCONIUM, 2),
- new MaterialStack(ELEMENT.getInstance().TITANIUM, 4),
- new MaterialStack(ELEMENT.getInstance().CERIUM, 1),
- new MaterialStack(ELEMENT.getInstance().OXYGEN, 14)
+ new MaterialStack[]{// (YCa)Cu5(As2O4)3(OH)6·3H2O
+ new MaterialStack(ELEMENT.getInstance().YTTRIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().CALCIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().COPPER, 5),
+ new MaterialStack(ELEMENT.getInstance().ARSENIC, 6),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 21),
+ new MaterialStack(ELEMENT.getInstance().HYDROGEN, 12)
});
- public static final Material CROCROITE = new Material(
- "Crocoite", //Material Name
+ //Alburnite
+ //Ag8GeTe2S4
+ public static final Material ALBURNITE = new Material(
+ "Alburnite", //Material Name
MaterialState.ORE, //State
- TextureSet.SET_GEM_VERTICAL, //Texture Set
- new short[]{255, 143, 84, 0}, //Material Colour
+ TextureSet.SET_METALLIC, //Texture Set
+ new short[]{16, 5, 105, 0}, //Material Colour
-1,
-1,
-1,
-1,
- -1, //Radiation
- new MaterialStack[]{
- new MaterialStack(ELEMENT.getInstance().LEAD, 2),
- new MaterialStack(ELEMENT.getInstance().CHROMIUM, 2),
- new MaterialStack(ELEMENT.getInstance().OXYGEN, 3),
- new MaterialStack(ELEMENT.getInstance().CAESIUM, 1),
+ 0, //Radiation
+ new MaterialStack[]{// Na3AlF6
+ new MaterialStack(ELEMENT.getInstance().GOLD, 8),
+ new MaterialStack(ELEMENT.getInstance().GERMANIUM, 1),
+ new MaterialStack(ELEMENT.getInstance().TELLURIUM, 2),
+ new MaterialStack(ELEMENT.getInstance().SULFUR, 4)
});
- public static final Material NICHROMITE = new Material(
- "Nichromite", //Material Name
+ public static final Material CERITE = new Material(
+ "Cerite", //Material Name
MaterialState.ORE, //State
- TextureSet.SET_METALLIC, //Texture Set
- new short[]{22, 19, 19, 0}, //Material Colour
+ TextureSets.REFINED.get(), //Texture Set
+ new short[]{68, 13, 0, 0}, //Material Colour
-1,
-1,
-1,
-1,
-1, //Radiation
- new MaterialStack[]{
- new MaterialStack(ELEMENT.getInstance().NICKEL, 1),
- new MaterialStack(ELEMENT.getInstance().COBALT, 1),
+ new MaterialStack[]{// (Ce,La,Ca)9(Mg,Fe+3)(SiO4)6(SiO3OH)(OH)3
+ new MaterialStack(ELEMENT.getInstance().CERIUM, 9),
+ new MaterialStack(ELEMENT.getInstance().LANTHANUM, 9),
+ new MaterialStack(ELEMENT.getInstance().CALCIUM, 9),
+ new MaterialStack(ELEMENT.getInstance().MAGNESIUM, 3),
new MaterialStack(ELEMENT.getInstance().IRON, 3),
- new MaterialStack(ELEMENT.getInstance().ALUMINIUM, 2),
- new MaterialStack(ELEMENT.getInstance().CHROMIUM, 2),
- new MaterialStack(ELEMENT.getInstance().OXYGEN, 8)
+ new MaterialStack(ELEMENT.getInstance().SILICON, 7),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 20),
+ new MaterialStack(ELEMENT.getInstance().HYDROGEN, 4)
});
- public static final Material YTTRIAITE = new Material( //TODO
- "Yttriaite", //Material Name
+ //Comancheite
+ //Hg55N24(NH2,OH)4(Cl,Br)34
+ public static final Material COMANCHEITE = new Material(
+ "Comancheite", //Material Name
MaterialState.ORE, //State
- TextureSet.SET_METALLIC, //Texture Set
+ TextureSets.REFINED.get(), //Texture Set
+ new short[]{65, 205, 105, 0}, //Material Colour
+ -1,
+ -1,
+ -1,
+ -1,
+ 0, //Radiation
+ new MaterialStack[]{// Na3AlF6
+ new MaterialStack(ELEMENT.getInstance().MERCURY, 54/4),
+ new MaterialStack(ELEMENT.getInstance().NITROGEN, 28/4),
+ new MaterialStack(ELEMENT.getInstance().HYDROGEN, 12/4),
+ new MaterialStack(ELEMENT.getInstance().OXYGEN, 8/4),
+ new MaterialStack(ELEMENT.getInstance().CHLORINE, 34/4),
+ new MaterialStack(ELEMENT.getInstance().BROMINE, 34/4)
+ });
+
+ public static final Material CROCROITE = new Material(
+ "Crocoite", //Material Name
+ MaterialState.ORE, //State
+ TextureSet.SET_GEM_VERTICAL, //Texture Set
new short[]{255, 143, 84, 0}, //Material Colour
-1,
-1,
@@ -126,67 +154,82 @@ public final class ORES {
-1,
-1, //Radiation
new MaterialStack[]{
- new MaterialStack(ELEMENT.getInstance().YTTRIUM, 1), //Y not YT/YB
+ new MaterialStack(ELEMENT.getInstance().LEAD, 2),
+ new MaterialStack(ELEMENT.getInstance().CHROMIUM, 2),
new MaterialStack(ELEMENT.getInstance().OXYGEN, 3),
- new MaterialStack(ELEMENT.getInstance().IRON, 4),
- new MaterialStack(ELEMENT.getInstance().TIN, 1),
- new MaterialStack(ELEMENT.getInstance().NITROGEN, 2)
- });
+ new MaterialStack(ELEMENT.getInstance().CAESIUM, 1),
+ });
- //Samarskite_Y
- public static final Material SAMARSKITE_Y = new Material(
- "Samarskite (Y)", //Material Name
+ public static final Material CRYOLITE = new Material(
+ "Cryolite (F)", //Material Name
MaterialState.ORE, //State
- TextureSets.ENRICHED.get(), //Texture Set
- new short[]{65, 163, 164, 0}, //Material Colour
+ TextureSet.SET_SHINY, //Texture Set
+ new short[]{205, 205, 255, 0}, //Material Colour
-1,
-1,
-1,
-1,
-1, //Radiation
- new MaterialStack[]{
- new MaterialStack(ELEMENT.getInstance().YTTRIUM, 2), //Y not YT/YB
- new MaterialStack(ELEMENT.getInstance().IRON, 10),
- new MaterialStack(ELE