aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java4
-rw-r--r--src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockOre.java4
-rw-r--r--src/Java/gtPlusPlus/core/material/ELEMENT.java5
-rw-r--r--src/Java/gtPlusPlus/core/material/Material.java434
-rw-r--r--src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java8
-rw-r--r--src/Java/gtPlusPlus/core/util/array/ArrayUtils.java6
-rw-r--r--src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java18
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer2.java20
-rw-r--r--src/Java/gtPlusPlus/xmod/eio/material/MaterialEIO.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java14
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluids.java140
11 files changed, 366 insertions, 293 deletions
diff --git a/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java b/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java
index d8ccc13259..2bea09d806 100644
--- a/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java
+++ b/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java
@@ -34,7 +34,7 @@ import net.minecraft.world.IBlockAccess;
public class BlockBaseOre extends BasicBlock implements ITexturedBlock {
private final Material blockMaterial;
-
+
public BlockBaseOre(final Material material, final BlockTypes blockType, final int colour) {
super(Utils.sanitizeString(material.getUnlocalizedName()), net.minecraft.block.material.Material.rock);
this.blockMaterial = material;
@@ -96,7 +96,7 @@ public class BlockBaseOre extends BasicBlock implements ITexturedBlock {
public ITexture[] getTexture(Block block, byte side) {
if (this.blockMaterial != null){
- GT_RenderedTexture aIconSet = new GT_RenderedTexture(Materials.Iron.mIconSet.mTextures[OrePrefixes.ore.mTextureIndex], this.blockMaterial.getRGBA());
+ GT_RenderedTexture aIconSet = new GT_RenderedTexture(blockMaterial.getTextureSet().mTextures[OrePrefixes.ore.mTextureIndex], this.blockMaterial.getRGBA());
if (aIconSet != null){
//Logger.INFO("[Render] Good Overlay.");
return new ITexture[]{new GT_CopiedBlockTexture(Blocks.stone, 0, 0), aIconSet};
diff --git a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockOre.java b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockOre.java
index 8a72b4d629..4e868e5ecd 100644
--- a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockOre.java
+++ b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockOre.java
@@ -58,10 +58,10 @@ public class ItemBlockOre extends ItemBlock{
* Tooltip Handler for Ores
*/
if (this.mThisMaterial == FLUORIDES.FLUORITE){
- list.add("Mined from Sandstone and Limestone.");
+ list.add("Mined from Sandstone with a 1/"+CORE.ConfigSwitches.chanceToDropFluoriteOre+" chance, or Limestone with a 1/"+(CORE.ConfigSwitches.chanceToDropFluoriteOre*20)+" chance.");
}
else if (this.mThisMaterial != FLUORIDES.FLUORITE){
- list.add("Mined from the Dark Dimension.");
+ list.add("Mined from the Toxic Everglades.");
}
super.addInformation(stack, aPlayer, list, bool);
}
diff --git a/src/Java/gtPlusPlus/core/material/ELEMENT.java b/src/Java/gtPlusPlus/core/material/ELEMENT.java
index f98eb3552e..8d5e3c2a76 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.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.material.state.MaterialState;
import gtPlusPlus.core.util.StringUtils;
@@ -9,6 +10,10 @@ import gtPlusPlus.core.util.materials.MaterialUtils;
public final class ELEMENT {
private static final ELEMENT thisClass = new ELEMENT();
+
+ static {
+ Logger.MATERIALS("Initialising Base Elements.");
+ }
public ELEMENT(){
diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java
index 0f90d61312..ee3759e2cb 100644
--- a/src/Java/gtPlusPlus/core/material/Material.java
+++ b/src/Java/gtPlusPlus/core/material/Material.java
@@ -3,6 +3,7 @@ package gtPlusPlus.core.material;
import static gregtech.api.enums.GT_Values.M;
import java.util.*;
+import java.util.Map.Entry;
import gregtech.api.enums.*;
import gtPlusPlus.api.objects.Logger;
@@ -10,6 +11,9 @@ import gtPlusPlus.core.item.base.cell.BaseItemCell;
import gtPlusPlus.core.material.state.MaterialState;
import gtPlusPlus.core.util.StringUtils;
import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.array.ArrayUtils;
+import gtPlusPlus.core.util.array.AutoMap;
+import gtPlusPlus.core.util.array.Pair;
import gtPlusPlus.core.util.fluid.FluidUtils;
import gtPlusPlus.core.util.item.ItemUtils;
import gtPlusPlus.core.util.materials.MaterialUtils;
@@ -20,6 +24,7 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
+import scala.xml.dtd.ELEMENTS;
public class Material {
@@ -27,6 +32,11 @@ public class Material {
private String localizedName;
private MaterialState materialState;
+ private TextureSet textureSet;
+
+ public synchronized final TextureSet getTextureSet() {
+ return textureSet;
+ }
private Fluid vMoltenFluid;
private Fluid vPlasma;
@@ -66,19 +76,23 @@ public class Material {
public static Map<Integer, Materials> invalidMaterials = new HashMap<Integer, Materials>();
public Material(String materialName, MaterialState defaultState, short[] rgba, int radiationLevel, MaterialStack[] materialStacks) {
- this (materialName, defaultState, 0, rgba, -1, -1, -1, -1, false, "", radiationLevel, false, materialStacks);
+ this(materialName, defaultState, null, 0, rgba, -1, -1, -1, -1, false, "", radiationLevel, false, materialStacks);
}
public Material(String materialName, MaterialState defaultState, short[] rgba, int j, int k, int l, int m, int radiationLevel, MaterialStack[] materialStacks){
- this (materialName, defaultState, 0, rgba, j, k, l, m, false, "", radiationLevel, false, materialStacks);
+ 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(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, boolean generateCells, final MaterialStack... inputs){
+ this(materialName, defaultState, null, 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){
@@ -94,229 +108,256 @@ public class Material {
}
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 String chemicalSymbol, final int radiationLevel, boolean addCells,final MaterialStack... inputs) {
- this (materialName, defaultState, 0, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, chemicalSymbol, radiationLevel, addCells, inputs);
+ this (materialName, defaultState, null, 0, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, chemicalSymbol, radiationLevel, addCells, 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, final MaterialStack... inputs){
- this (materialName, defaultState, durability, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, chemicalSymbol, radiationLevel, true, inputs);
+ this (materialName, defaultState, null, 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){
+ public Material(final String materialName, final MaterialState defaultState, final TextureSet set, 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){
try {
- this.unlocalizedName = Utils.sanitizeString(materialName);
- this.localizedName = materialName;
-
- this.materialState = defaultState;
- Logger.MATERIALS(this.getLocalizedName()+" is "+defaultState.name()+".");
-
- this.RGBA = rgba;
- this.vGenerateCells = generateCells;
-
- //Add Components to an array.
- if (inputs == null){
- this.vMaterialInput = null;
- }
- else {
- if (inputs.length != 0){
- for (int i=0; i < inputs.length; i++){
- if (inputs[i] != null){
- this.vMaterialInput.add(i, inputs[i]);
+ this.unlocalizedName = Utils.sanitizeString(materialName);
+ this.localizedName = materialName;
+
+ this.materialState = defaultState;
+
+ Logger.MATERIALS(this.getLocalizedName()+" is "+defaultState.name()+".");
+
+ this.RGBA = rgba;
+ this.vGenerateCells = generateCells;
+
+ //Add Components to an array.
+ if (inputs == null){
+ this.vMaterialInput = null;
+ }
+ else {
+ if (inputs.length != 0){
+ for (int i=0; i < inputs.length; i++){
+ if (inputs[i] != null){
+ this.vMaterialInput.add(i, inputs[i]);
+ }
}
}
}
- }
+ this.textureSet = setTextureSet(set);
- //Set Melting/Boiling point, if value is -1 calculate it from compound inputs.
- if (meltingPoint != -1){
- this.meltingPointC = meltingPoint;
- }
- else {
- this.meltingPointC = this.calculateMeltingPoint();
- }
- if (boilingPoint != -1){
- if (boilingPoint != 0){
- this.boilingPointC = boilingPoint;
+ //Set Melting/Boiling point, if value is -1 calculate it from compound inputs.
+ if (meltingPoint != -1){
+ this.meltingPointC = meltingPoint;
}
else {
- this.boilingPointC = meltingPoint*4;
+ this.meltingPointC = this.calculateMeltingPoint();
+ }
+ if (boilingPoint != -1){
+ if (boilingPoint != 0){
+ this.boilingPointC = boilingPoint;
+ }
+ else {
+ this.boilingPointC = meltingPoint*4;
+ }
+ }
+ else {
+ this.boilingPointC = this.calculateMeltingPoint();
}
- }
- else {
- this.boilingPointC = this.calculateMeltingPoint();
- }
- this.meltingPointK = (int) MathUtils.celsiusToKelvin(this.meltingPointC);
- this.boilingPointK = (int) MathUtils.celsiusToKelvin(this.boilingPointC);
+ 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;
- }
- else {
- this.vProtons = this.calculateProtons();
- }
- if (boilingPoint != -1){
- this.vNeutrons = neutrons;
- }
- else {
- this.vNeutrons = this.calculateNeutrons();
- }
+ //Set Proton/Neutron count, if value is -1 calculate it from compound inputs.
+ if (protons != -1){
+ this.vProtons = protons;
+ }
+ else {
+ this.vProtons = this.calculateProtons();
+ }
+ if (boilingPoint != -1){
+ this.vNeutrons = neutrons;
+ }
+ else {
+ this.vNeutrons = this.calculateNeutrons();
+ }
- this.vMass = this.getMass();
+ this.vMass = this.getMass();
- //Sets tool Durability
- if (durability != 0){
- this.vDurability = durability;
- }
- else {
- if (inputs != null){
- long durabilityTemp = 0;
- int counterTemp = 0;
- for (final MaterialStack m : inputs){
- if (m.getStackMaterial() != null){
- if (m.getStackMaterial().vDurability != 0){
- durabilityTemp = (durabilityTemp+m.getStackMaterial().vDurability);
- counterTemp++;
+ //Sets tool Durability
+ if (durability != 0){
+ this.vDurability = durability;
+ }
+ else {
+ if (inputs != null){
+ long durabilityTemp = 0;
+ int counterTemp = 0;
+ for (final MaterialStack m : inputs){
+ if (m.getStackMaterial() != null){
+ if (m.getStackMaterial().vDurability != 0){
+ durabilityTemp = (durabilityTemp+m.getStackMaterial().vDurability);
+ counterTemp++;
+ }
}
}
- }
- if ((durabilityTemp != 0) && (counterTemp != 0)){
- this.vDurability = (durabilityTemp/counterTemp);
+ if ((durabilityTemp != 0) && (counterTemp != 0)){
+ this.vDurability = (durabilityTemp/counterTemp);
+ }
+ else {
+ this.vDurability = 8196;
+ }
}
else {
- this.vDurability = 8196;
+ this.vDurability = 0;
}
}
+
+ if ((this.vDurability >= 0) && (this.vDurability < 64000)){
+ this.vToolQuality = 1;
+ this.vHarvestLevel = 2;
+ }
+ else if ((this.vDurability >= 64000) && (this.vDurability < 128000)){
+ this.vToolQuality = 2;
+ this.vHarvestLevel = 2;
+ }
+ else if ((this.vDurability >= 128000) && (this.vDurability < 256000)){
+ this.vToolQuality = 3;
+ this.vHarvestLevel = 2;
+ }
+ else if ((this.vDurability >= 256000) && (this.vDurability < 512000)){
+ this.vToolQuality = 3;
+ this.vHarvestLevel = 3;
+ }
+ else if ((this.vDurability >= 512000) && (this.vDurability <= Integer.MAX_VALUE)){
+ this.vToolQuality = 4;
+ this.vHarvestLevel = 4;
+ }
else {
- this.vDurability = 0;
+ this.vToolQuality = 0;
+ this.vHarvestLevel = 0;
}
- }
-
- if ((this.vDurability >= 0) && (this.vDurability < 64000)){
- this.vToolQuality = 1;
- this.vHarvestLevel = 2;
- }
- else if ((this.vDurability >= 64000) && (this.vDurability < 128000)){
- this.vToolQuality = 2;
- this.vHarvestLevel = 2;
- }
- else if ((this.vDurability >= 128000) && (this.vDurability < 256000)){
- this.vToolQuality = 3;
- this.vHarvestLevel = 2;
- }
- else if ((this.vDurability >= 256000) && (this.vDurability < 512000)){
- this.vToolQuality = 3;
- this.vHarvestLevel = 3;
- }
- else if ((this.vDurability >= 512000) && (this.vDurability <= Integer.MAX_VALUE)){
- this.vToolQuality = 4;
- this.vHarvestLevel = 4;
- }
- else {
- this.vToolQuality = 0;
- this.vHarvestLevel = 0;
- }
- //Sets the Rad level
- if (radiationLevel > 0){
- Logger.MATERIALS(this.getLocalizedName()+" is radioactive. Level: "+radiationLevel+".");
- this.isRadioactive = true;
- this.vRadiationLevel = (byte) radiationLevel;
- }
- else {
- Logger.MATERIALS(this.getLocalizedName()+" is not radioactive.");
- this.isRadioactive = false;
- this.vRadiationLevel = 0;
- }
+ //Sets the Rad level
+ if (radiationLevel > 0){
+ Logger.MATERIALS(this.getLocalizedName()+" is radioactive. Level: "+radiationLevel+".");
+ this.isRadioactive = true;
+ this.vRadiationLevel = (byte) radiationLevel;
+ }
+ else {
+ Logger.MATERIALS(this.getLocalizedName()+" is not radioactive.");
+ this.isRadioactive = false;
+ this.vRadiationLevel = 0;
+ }
- //Sets the materials 'tier'. Will probably replace this logic.
- this.vTier = MaterialUtils.getTierOfMaterial((int) MathUtils.celsiusToKelvin(meltingPoint));
+ //Sets the materials 'tier'. Will probably replace this logic.
+ this.vTier = MaterialUtils.getTierOfMaterial((int) MathUtils.celsiusToKelvin(meltingPoint));
- this.usesBlastFurnace = blastFurnace;
- this.vVoltageMultiplier = this.getMeltingPointK() >= 2800 ? 60 : 15;
+ this.usesBlastFurnace = blastFurnace;
+ this.vVoltageMultiplier = this.getMeltingPointK() >= 2800 ? 60 : 15;
- this.vComponentCount = this.getComponentCount(inputs);
- this.vSmallestRatio = this.getSmallestRatio(this.vMaterialInput);
- int tempSmallestSize = 0;
+ this.vComponentCount = this.getComponentCount(inputs);
+ this.vSmallestRatio = this.getSmallestRatio(this.vMaterialInput);
+ int tempSmallestSize = 0;
- if (this.vSmallestRatio != null){
- for (int v=0;v<this.vSmallestRatio.length;v++){
- tempSmallestSize=(int) (tempSmallestSize+this.vSmallestRatio[v]);
+ if (this.vSmallestRatio != null){
+ for (int v=0;v<this.vSmallestRatio.length;v++){
+ tempSmallestSize=(int) (tempSmallestSize+this.vSmallestRatio[v]);
+ }
+ this.smallestStackSizeWhenProcessing = tempSmallestSize; //Valid stacksizes
+ }
+ else {
+ this.smallestStackSizeWhenProcessing = 1; //Valid stacksizes
}
- this.smallestStackSizeWhenProcessing = tempSmallestSize; //Valid stacksizes
- }
- else {
- this.smallestStackSizeWhenProcessing = 1; //Valid stacksizes
- }
- //Makes a Fancy Chemical Tooltip
- this.vChemicalSymbol = chemicalSymbol;
- if (this.vMaterialInput != null){
- this.vChemicalFormula = this.getToolTip(chemicalSymbol, OrePrefixes.dust.mMaterialAmount / M, true);
- }
- else if (!this.vChemicalSymbol.equals("")){
- Logger.INFO("materialInput is null, using a valid chemical symbol.");
- this.vChemicalFormula = this.vChemicalSymbol;
- }
- else{
- Logger.INFO("MaterialInput == null && chemicalSymbol probably equals nothing");
- this.vChemicalFormula = "??";
- }
+ //Makes a Fancy Chemical Tooltip
+ this.vChemicalSymbol = chemicalSymbol;
+ if (this.vMaterialInput != null){
+ this.vChemicalFormula = this.getToolTip(chemicalSymbol, OrePrefixes.dust.mMaterialAmount / M, true);
+ }
+ else if (!this.vChemicalSymbol.equals("")){
+ Logger.INFO("materialInput is null, using a valid chemical symbol.");
+ this.vChemicalFormula = this.vChemicalSymbol;
+ }
+ else{
+ Logger.INFO("MaterialInput == null && chemicalSymbol probably equals nothing");
+ 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 == null || isValid == Materials._NULL){
- this.vMoltenFluid = this.generateFluid();
- }
- else {
- if (isValid.mFluid != null){
- this.vMoltenFluid = isValid.mFluid;
+ final Materials isValid = Materials.get(this.getLocalizedName());
+ if (FluidUtils.getFluidStack(localizedName, 1) != null){
+ this.vMoltenFluid = FluidUtils.getFluidStack(localizedName, 1).getFluid();
}
- else if (isValid.mGas != null){
- this.vMoltenFluid = isValid.mGas;
+ else if (isValid == null || isValid == Materials._NULL){
+ this.vMoltenFluid = this.generateFluid();
}
else {
- this.vMoltenFluid = this.generateFluid();
+ if (isValid.mFluid != null){
+ this.vMoltenFluid = isValid.mFluid;
+ }
+ else if (isValid.mGas != null){
+ this.vMoltenFluid = isValid.mGas;
+ }
+ else {
+ this.vMoltenFluid = this.generateFluid();
+ }
}
- }
- this.vPlasma = this.generatePlasma();
+ this.vPlasma = this.generatePlasma();
- String ratio = "";
- if (this.vSmallestRatio != null) {
- for (int hu=0;hu<this.vSmallestRatio.length;hu++){
- if (ratio.equals("")){
- ratio = String.valueOf(this.vSmallestRatio[hu]);
- }
- else {
- ratio = ratio + ":" +this.vSmallestRatio[hu];
+ String ratio = "";
+ if (this.vSmallestRatio != null) {
+ for (int hu=0;hu<this.vSmallestRatio.length;hu++){
+ if (ratio.equals("")){
+ ratio = String.valueOf(this.vSmallestRatio[hu]);
+ }
+ else {
+ ratio = ratio + ":" +this.vSmallestRatio[hu];
+ }
}
}
- }
- Logger.INFO("Creating a Material instance for "+materialName);
- Logger.INFO("Formula: "+this.vChemicalFormula + " Smallest Stack: "+this.smallestStackSizeWhenProcessing+" Smallest Ratio:"+ratio);
- Logger.INFO("Protons: "+this.vProtons);
- Logger.INFO("Neutrons: "+this.vNeutrons);
- Logger.INFO("Mass: "+this.vMass+"/units");
- Logger.INFO("Melting Point: "+this.meltingPointC+"C.");
- Logger.INFO("Boiling Point: "+this.boilingPointC+"C.");
+ Logger.INFO("Creating a Material instance for "+materialName);
+ Logger.INFO("Formula: "+this.vChemicalFormula + " Smallest Stack: "+this.smallestStackSizeWhenProcessing+" Smallest Ratio:"+ratio);
+ Logger.INFO("Protons: "+this.vProtons);
+ Logger.INFO("Neutrons: "+this.vNeutrons);
+ Logger.INFO("Mass: "+this.vMass+"/units");
+ Logger.INFO("Melting Point: "+this.meltingPointC+"C.");
+ Logger.INFO("Boiling Point: "+this.boilingPointC+"C.");
}
catch (Throwable t){
t.printStackTrace();
}
- }
+ }
-
+ private TextureSet setTextureSet(TextureSet set) {
+ if (set != null) {
+ return set;
+ }
+ else {
+ // build hash table with count
+ AutoMap<Material> sets = new AutoMap<Material>();
+ if (this.vMaterialInput != null) {
+ for (MaterialStack r : this.vMaterialInput) {
+ if (r.getStackMaterial().getTextureSet().mSetName.toLowerCase().contains("fluid")) {
+ sets.put(ELEMENT.getInstance().GOLD);
+ }
+ else {
+ sets.put(r.getStackMaterial());
+ }
+ }
+ TextureSet mostUsedTypeTextureSet = (TextureSet) MaterialUtils.getMostCommonTextureSet(new ArrayList(sets.values()));
+ if (mostUsedTypeTextureSet != null && mostUsedTypeTextureSet instanceof TextureSet) {
+ Logger.MATERIALS("Set textureset for "+this.localizedName+" to be "+mostUsedTypeTextureSet.mSetName+".");
+ return mostUsedTypeTextureSet;
+ }
+ }
+ }
+ Logger.MATERIALS("Set textureset for "+this.localizedName+" to be "+Materials.Iron.mIconSet.mSetName+". [Fallback]");
+ return Materials.Iron.mIconSet;
+ }
public final String getLocalizedName(){
if (this.localizedName != null) {
@@ -342,7 +383,7 @@ public class Material {
}
return new short[] {255,0,0};
}
-
+
final public short[] getRGBA(){
if (this.RGBA != null) {
if (this.RGBA.length == 4){
@@ -475,12 +516,12 @@ public class Material {
public final ItemStack getNugget(final int stacksize){
return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("nugget"+this.unlocalizedName, stacksize);
}
-
+
/**
* Ore Components
* @return
*/
-
+
public final ItemStack getOre(final int stacksize){
return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("ore"+Utils.sanitizeString(this.getUnlocalizedName()), stacksize);
}
@@ -494,11 +535,11 @@ public class Material {
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));
-
- Block x = Block.getBlockFromItem(ItemUtils.getItemStackOfAmountFromOreDictNoBroken("ore"+Utils.sanitizeString(this.unlocalizedName), stacksize).getItem());
- if (x != null){
- return x;
- }
+
+ Block x = Block.getBlockFromItem(ItemUtils.getItemStackOfAmountFromOreDictNoBroken("ore"+Utils.sanitizeString(this.unlocalizedName), stacksize).getItem());
+ if (x != null){
+ return x;
+ }
}
catch (Throwable t){
t.printStackTrace();
@@ -585,7 +626,6 @@ public class Material {
}
- @SuppressWarnings("static-method")
public final long[] getSmallestRatio(final ArrayList<MaterialStack> tempInput){
if (tempInput != null){
if (!tempInput.isEmpty()){
@@ -687,7 +727,7 @@ public class Material {
if (this.materialState == MaterialState.ORE){
return null;
}
-
+
final Materials isValid = Materials.get(this.getLocalizedName());
Logger.INFO("Is "+this.getLocalizedName()+" a Gregtech material? "+(isValid != null && isValid != Materials._NULL)+" | Found "+isValid.mDefaultLocalName);
if (isValid != Materials._NULL){
@@ -923,32 +963,4 @@ public class Material {
}
}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
}
diff --git a/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java b/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java
index ea21a1d270..436115dac6 100644
--- a/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java
+++ b/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java
@@ -19,10 +19,10 @@ public final class NUCLIDE {
public final Material THORIUM232 = new Material("Thorium 232", MaterialState.SOLID, 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
//RTG Fuels
- public final Material PLUTONIUM238 = new Material("Plutonium-238", MaterialState.SOLID, 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
- public final Material STRONTIUM90 = new Material("Strontium-90", MaterialState.SOLID, Materials.Strontium.mDurability, Materials.Strontium.mRGBa, Materials.Strontium.mMeltingPoint, Materials.Strontium.mBlastFurnaceTemp, 38, 52, false, StringUtils.superscript("90Sr"), 2, false);//Not a GT Inherited Material
- public final Material POLONIUM210 = new Material("Polonium-210", MaterialState.SOLID, ELEMENT.getInstance().POLONIUM.vDurability, ELEMENT.getInstance().POLONIUM.getRGBA(), ELEMENT.getInstance().POLONIUM.getMeltingPointK(), ELEMENT.getInstance().POLONIUM.getBoilingPointK(), 84, 126, false, StringUtils.superscript("210Po"), 2, false);//Not a GT Inherited Material
- public final Material AMERICIUM241 = new Material("Americium-241", MaterialState.SOLID, Materials.Americium.mDurability, Materials.Americium.mRGBa, Materials.Americium.mMeltingPoint, Materials.Americium.mBlastFurnaceTemp, 95, 146, false, StringUtils.superscript("241Am"), 2, false);//Not a GT Inherited Material
+ public final Material PLUTONIUM238 = new Material("Plutonium-238", MaterialState.SOLID, Materials.Plutonium241.mIconSet, 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
+ public final Material STRONTIUM90 = new Material("Strontium-90", MaterialState.SOLID, Materials.Strontium.mIconSet, Materials.Strontium.mDurability, Materials.Strontium.mRGBa, Materials.Strontium.mMeltingPoint, Materials.Strontium.mBlastFurnaceTemp, 38, 52, false, StringUtils.superscript("90Sr"), 2, false);//Not a GT Inherited Material
+ public final Material POLONIUM210 = new Material("Polonium-210", MaterialState.SOLID, Materials.Plutonium241.mIconSet, ELEMENT.getInstance().POLONIUM.vDurability, ELEMENT.getInstance().POLONIUM.getRGBA(), ELEMENT.getInstance().POLONIUM.getMeltingPointK(), ELEMENT.getInstance().POLONIUM.getBoilingPointK(), 84, 126, false, StringUtils.superscript("210Po"), 2, false);//Not a GT Inherited Material
+ public final Material AMERICIUM241 = new Material("Americium-241", MaterialState.SOLID, Materials.Americium.mIconSet, Materials.Americium.mDurability, Materials.Americium.mRGBa, Materials.Americium.mMeltingPoint, Materials.Americium.mBlastFurnaceTemp, 95, 146, false, StringUtils.superscript("241Am"), 2, false);//Not a GT Inherited Material
public static final Material LiFBeF2ThF4UF4 = new Material(
"LiFBeF2ThF4UF4", //Material Name
diff --git a/src/Java/gtPlusPlus/core/util/array/ArrayUtils.java b/src/Java/gtPlusPlus/core/util/array/ArrayUtils.java
index 910c4597af..cd8a1a7fd7 100644
--- a/src/Java/gtPlusPlus/core/util/array/ArrayUtils.java
+++ b/src/Java/gtPlusPlus/core/util/array/ArrayUtils.java
@@ -14,5 +14,11 @@ public class ArrayUtils {
series[series.length - 1] = newValueToAdd;
return series;
}
+
+ /*public static <V> Object getMostCommonElement(List<V> list) {
+ Optional r = list.stream().map(V::getTextureSet).collect(Collectors.groupingBy(Function.identity(), Collectors.counting())).entrySet().stream().max(Map.Entry.comparingByValue()).map(Map.Entry::getKey);
+ return r.get();
+ }*/
}
+
diff --git a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java
index 7db80c70fb..5cd7532f0f 100644
--- a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java
+++ b/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java
@@ -1,6 +1,10 @@
package gtPlusPlus.core.util.materials;
import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.reflect.FieldUtils;
@@ -44,6 +48,7 @@ public class MaterialUtils {
final long protons = material.getProtons();
final long neutrons = material.getNeutrons();
final boolean blastFurnace = material.mBlastFurnaceRequired;
+ final TextureSet iconSet = material.mIconSet;
final int durability = material.mDurability;
boolean mGenerateCell = false;
MaterialState materialState;
@@ -99,7 +104,7 @@ public class MaterialUtils {
if (hasValidRGBA(rgba) || (element == Element.H) || ((material == Materials.InfusedAir) || (material == Materials.InfusedFire) || (material == Materials.InfusedEarth) || (material == Materials.InfusedWater))){
//ModItems.itemBaseDecidust = UtilsItems.generateDecidust(material);
//ModItems.itemBaseCentidust = UtilsItems.generateCentidust(material);
- return new Material(name, materialState, durability, rgba, melting, boiling, protons, neutrons, blastFurnace, chemicalFormula, radioactivity, mGenerateCell);
+ return new Material(name, materialState,iconSet, durability, rgba, melting, boiling, protons, neutrons, blastFurnace, chemicalFormula, radioactivity, mGenerateCell);
}
else {
Logger.DEBUG_MATERIALS("Failed to generate GT++ material instance for "+material.name() +" | Valid RGB? "+(hasValidRGBA(rgba)));
@@ -235,5 +240,14 @@ public class MaterialUtils {
}
return mName;
}
+
+ public static TextureSet getMostCommonTextureSet(List<Material> list) {
+ Optional<TextureSet> r = list.stream().map(Material::getTextureSet).collect(Collectors.groupingBy(Function.identity(), Collectors.counting())).entrySet().stream().max(Map.Entry.comparingByValue()).map(Map.Entry::getKey);
+ TextureSet o = (r != null && r.isPresent() && r.get() != null) ? r.get() : null;
+ return o;
+ }
+
+
+ }
+
-}
diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer2.java b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer2.java
index 264b371d7e..55c384c58b 100644
--- a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer2.java
+++ b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer2.java
@@ -134,5 +134,25 @@ public class Preloader_ClassTransformer2 {
}
}
+
+ public static class GetDropsReplacer extends MethodVisitor {
+ private final MethodVisitor target;
+
+ public GetDropsReplacer(MethodVisitor methodVisitor) {
+ super(ASM4, null);
+ this.target=methodVisitor;
+ }
+
+ @Override
+ public void visitCode() {
+ target.visitCode();
+ target.visitTypeInsn(NEW, "java/io/IOException");
+ target.visitInsn(DUP);
+ target.visitMethodInsn(INVOKESPECIAL,"java/io/IOException","<init>","()V",false);
+ target.visitInsn(ATHROW);
+ target.visitMaxs(2, 0);
+ target.visitEnd();
+ }
+ }
}
diff --git a/src/Java/gtPlusPlus/xmod/eio/material/MaterialEIO.java b/src/Java/gtPlusPlus/xmod/eio/material/MaterialEIO.java
index a8c5382a21..a5c87342e7 100644
--- a/src/Java/gtPlusPlus/xmod/eio/material/MaterialEIO.java
+++ b/src/Java/gtPlusPlus/xmod/eio/material/MaterialEIO.java
@@ -61,7 +61,7 @@ public class MaterialEIO {
10,
10,
10,
- false, //Uses Blast furnace?
+ true, //Uses Blast furnace?
false, //Generates a cell
//Material Stacks with Percentage of required elements.
new MaterialStack[]{
@@ -77,7 +77,7 @@ public class MaterialEIO {
10,
10,
10,
- false, //Uses Blast furnace?
+ true, //Uses Blast furnace?
false, //Generates a cell
//Material Stacks with Percentage of required elements.
new MaterialStack[]{
@@ -94,7 +94,7 @@ public class MaterialEIO {
10,
10,
10,
- false, //Uses Blast furnace?
+ true, //Uses Blast furnace?
false, //Generates a cell
//Material Stacks with Percentage of required elements.
new MaterialStack[]{
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
index 426b73f0d8..41fb792fc0 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
@@ -6,6 +6,7 @@ import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.material.MaterialStack;
import gtPlusPlus.core.material.state.MaterialState;
+import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.item.ItemUtils;
import gtPlusPlus.core.util.recipe.RecipeUtils;
import net.minecraft.item.ItemStack;
@@ -224,6 +225,19 @@ public class RecipeGen_DustGeneration implements Runnable{
input3 = (inputStacks.length >= 3) ? (input3 = (inputStacks[2] == null) ? null : inputStacks[2]) : null;
input4 = (inputStacks.length >= 4) ? (input4 = (inputStacks[3] == null) ? null : inputStacks[3]) : null;
+ if (inputStacks.length == 1) {
+ input2 = CI.getNumberedCircuit(20);
+ }
+ else if (inputStacks.length == 2) {
+ input3 = CI.getNumberedCircuit(20);
+
+ }
+ else if (inputStacks.length == 3) {
+ input4 = CI.getNumberedCircuit(20);
+
+ }
+
+
//Add mixer Recipe
FluidStack oxygen = GT_Values.NF;
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluids.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluids.java
index 5388f68146..a29e6159f7 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluids.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluids.java
@@ -40,78 +40,80 @@ public class RecipeGen_Fluids implements Runnable{
Utils.LOG_WARNING("144l fluid extractor from 1 Dust Recipe: "+material.getLocalizedName()+" - Failed");
}*/
- //Ingot
- if (GT_Values.RA.addFluidExtractionRecipe(material.getIngot(1), //Input
- null, //Input 2
- material.getFluid(144), //Fluid Output
- 0, //Chance
- 1*20, //Duration
- 16 //Eu Tick
- )){
- Logger.WARNING("144l fluid extractor from 1 ingot Recipe: "+material.getLocalizedName()+" - Success");
- }
- else {
- Logger.WARNING("144l fluid extractor from 1 ingot Recipe: "+material.getLocalizedName()+" - Failed");
- }
+ if (!material.requiresBlastFurnace()) {
+
+ //Ingot
+ if (GT_Values.RA.addFluidExtractionRecipe(material.getIngot(1), //Input
+ null, //Input 2
+ material.getFluid(144), //Fluid Output
+ 0, //Chance
+ 1*20, //Duration
+ 16 //Eu Tick
+ )){
+ Logger.WARNING("144l fluid extractor from 1 ingot Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Logger.WARNING("144l fluid extractor from 1 ingot Recipe: "+material.getLocalizedName()+" - Failed");
+ }
+
+ //Plate
+ if (GT_Values.RA.addFluidExtractionRecipe(material.getPlate(1), //Input
+ null, //Input 2
+ material.getFluid(144), //Fluid Output
+ 0, //Chance
+ 1*20, //Duration
+ 16 //Eu Tick
+ )){
+ Logger.WARNING("144l fluid extractor from 1 plate Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Logger.WARNING("144l fluid extractor from 1 plate Recipe: "+material.getLocalizedName()+" - Failed");
+ }
+
+ //Double Plate
+ if (GT_Values.RA.addFluidExtractionRecipe(material.getPlateDouble(1), //Input
+ null, //Input 2
+ material.getFluid(288), //Fluid Output
+ 0, //Chance
+ 1*20, //Duration
+ 16 //Eu Tick
+ )){
+ Logger.WARNING("144l fluid extractor from 1 double plate Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Logger.WARNING("144l fluid extractor from 1 double plate Recipe: "+material.getLocalizedName()+" - Failed");
+ }
+
+ //Nugget
+ if (GT_Values.RA.addFluidExtractionRecipe(material.getNugget(1), //Input
+ null, //Input 2
+ material.getFluid(16), //Fluid Output
+ 0, //Chance
+ 16, //Duration
+ 8 //Eu Tick
+ )){
+ Logger.WARNING("16l fluid extractor from 1 nugget Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Logger.WARNING("16l fluid extractor from 1 nugget Recipe: "+material.getLocalizedName()+" - Failed");
+ }
+
+ //Block
+ if (GT_Values.RA.addFluidExtractionRecipe(material.getBlock(1), //Input
+ null, //Input 2
+ material.getFluid(144*9), //Fluid Output
+ 0, //Chance
+ 288, //Duration
+ 16 //Eu Tick
+ )){
+ Logger.WARNING((144*9)+"l fluid extractor from 1 block Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Logger.WARNING((144*9)+"l fluid extractor from 1 block Recipe: "+material.getLocalizedName()+" - Failed");
+ }
- //Plate
- if (GT_Values.RA.addFluidExtractionRecipe(material.getPlate(1), //Input
- null, //Input 2
- material.getFluid(144), //Fluid Output
- 0, //Chance
- 1*20, //Duration
- 16 //Eu Tick
- )){
- Logger.WARNING("144l fluid extractor from 1 plate Recipe: "+material.getLocalizedName()+" - Success");
- }
- else {
- Logger.WARNING("144l fluid extractor from 1 plate Recipe: "+material.getLocalizedName()+" - Failed");
}
- //Double Plate
- if (GT_Values.RA.addFluidExtractionRecipe(material.getPlateDouble(1), //Input
- null, //Input 2
- material.getFluid(288), //Fluid Output
- 0, //Chance
- 1*20, //Duration
- 16 //Eu Tick
- )){
- Logger.WARNING("144l fluid extractor from 1 double plate Recipe: "+material.getLocalizedName()+" - Success");
- }
- else {
- Logger.WARNING("144l fluid extractor from 1 double plate Recipe: "+material.getLocalizedName()+" - Failed");
- }
-
- //Nugget
- if (GT_Values.RA.addFluidExtractionRecipe(material.getNugget(1), //Input
- null, //Input 2
- material.getFluid(16), //Fluid Output
- 0, //Chance
- 16, //Duration
- 8 //Eu Tick
- )){
- Logger.WARNING("16l fluid extractor from 1 nugget Recipe: "+material.getLocalizedName()+" - Success");
- }
- else {
- Logger.WARNING("16l fluid extractor from 1 nugget Recipe: "+material.getLocalizedName()+" - Failed");
- }
-
- //Block
- if (GT_Values.RA.addFluidExtractionRecipe(material.getBlock(1), //Input
- null, //Input 2
- material.getFluid(144*9), //Fluid Output
- 0, //Chance
- 288, //Duration
- 16 //Eu Tick
- )){
- Logger.WARNING((144*9)+"l fluid extractor from 1 block Recipe: "+material.getLocalizedName()+" - Success");
- }
- else {
- Logger.WARNING((144*9)+"l fluid extractor from 1 block Recipe: "+material.getLocalizedName()+" - Failed");
- }
-
-
-