diff options
Diffstat (limited to 'src/Java/gtPlusPlus/core/material/Material.java')
-rw-r--r-- | src/Java/gtPlusPlus/core/material/Material.java | 53 |
1 files changed, 45 insertions, 8 deletions
diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index d21a133690..6f111b6551 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -23,12 +23,14 @@ public class Material { private final String localizedName; private final Fluid vMoltenFluid; + private final Fluid vPlasma; protected Object dataVar = MathUtils.generateSingularRandomHexValue(); private ArrayList<MaterialStack> vMaterialInput = new ArrayList<MaterialStack>(); public final long[] vSmallestRatio; - + public final short vComponentCount; + private final short[] RGBA; private final boolean usesBlastFurnace; @@ -47,7 +49,7 @@ public class Material { public final int vVoltageMultiplier; public final String vChemicalFormula; public final String vChemicalSymbol; - + public final long vDurability; public final int vToolQuality; public final int vHarvestLevel; @@ -99,11 +101,12 @@ public class Material { if (m.getStackMaterial().vDurability != 0){ durabilityTemp = (durabilityTemp+m.getStackMaterial().vDurability); counterTemp++; + } } } if (durabilityTemp != 0 && counterTemp != 0){ - this.vDurability = (durabilityTemp/counterTemp); + this.vDurability = (durabilityTemp/counterTemp); } else { this.vDurability = 8196; @@ -113,7 +116,7 @@ public class Material { this.vDurability = 0; } } - + if (this.vDurability >= 0 && this.vDurability < 64000){ this.vToolQuality = 1; this.vHarvestLevel = 2; @@ -168,6 +171,7 @@ public class Material { } } + this.vComponentCount = getComponentCount(inputs); this.vSmallestRatio = getSmallestRatio(vMaterialInput); int tempSmallestSize = 0; @@ -200,21 +204,20 @@ public class Material { if (isValid == Materials._NULL){ this.vMoltenFluid = generateFluid(); } - else { + else { if (isValid.mFluid != null){ this.vMoltenFluid = isValid.mFluid; } else if (isValid.mGas != null){ this.vMoltenFluid = isValid.mGas; } - /*else if (isValid.mPlasma != null){ - this.vMoltenFluid = isValid.mPlasma; - }*/ else { this.vMoltenFluid = generateFluid(); } } + this.vPlasma = generatePlasma(); + //dataVar = MathUtils.generateSingularRandomHexValue(); String ratio = ""; @@ -369,6 +372,10 @@ public class Material { return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+unlocalizedName, stacksize); } + public final ItemStack getPlasmaCell(int stacksize){ + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cellPlasma"+unlocalizedName, stacksize); + } + public final ItemStack getNugget(int stacksize){ return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("nugget"+unlocalizedName, stacksize); } @@ -418,6 +425,21 @@ public class Material { } return new int[]{}; } + + private final short getComponentCount(MaterialStack[] inputs){ + int counterTemp = 0; + for (MaterialStack m : inputs){ + if (m.getStackMaterial() != null){ + counterTemp++; + } + } + if (counterTemp != 0){ + return (short) counterTemp; + } + else { + return 1; + } + } @SuppressWarnings("static-method") @@ -538,6 +560,21 @@ public class Material { return Materials.get(localizedName).mFluid; } + public final Fluid generatePlasma(){ + Materials isValid = Materials.get(getLocalizedName()); + if (isValid != Materials._NULL && isValid != null){ + if (isValid.mPlasma != null){ + Utils.LOG_INFO("Using a pre-defined Plasma from GT."); + return isValid.mPlasma; + } + } + Utils.LOG_INFO("Generating our own Plasma."); + return FluidUtils.addGTPlasma(this); + //return null; + } + + + final public FluidStack getFluid(int fluidAmount) { Utils.LOG_WARNING("Attempting to get "+fluidAmount+"L of "+this.vMoltenFluid.getName()); FluidStack moltenFluid = new FluidStack(this.vMoltenFluid, fluidAmount); |