diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2017-01-14 15:42:43 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2017-01-14 15:42:43 +1000 |
commit | 881eece559ff4eb2646973de1717d795c16c543b (patch) | |
tree | 4cce79b3d1bc8ee6dc65f49741cb7663db64e945 /src/Java/gtPlusPlus/core/material/Material.java | |
parent | c8612eb547b97653489e23108a1cbb6fb3a21f3c (diff) | |
download | GT5-Unofficial-881eece559ff4eb2646973de1717d795c16c543b.tar.gz GT5-Unofficial-881eece559ff4eb2646973de1717d795c16c543b.tar.bz2 GT5-Unofficial-881eece559ff4eb2646973de1717d795c16c543b.zip |
$ Re-wrote the handling of Multitool generation, to allow my own materials to have tools.
% Bumped Multispade durability by 3x.
Diffstat (limited to 'src/Java/gtPlusPlus/core/material/Material.java')
-rw-r--r-- | src/Java/gtPlusPlus/core/material/Material.java | 70 |
1 files changed, 63 insertions, 7 deletions
diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index 3e034cf274..4463c7f235 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -47,16 +47,28 @@ 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; public Material(final String materialName, final short[] rgba, final int meltingPoint, final int boilingPoint, final long protons, final long neutrons, final boolean blastFurnace, final MaterialStack... inputs){ - this(materialName, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, "", 0, inputs); + this(materialName, 0, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, "", 0, inputs); } public Material(final String materialName, final short[] rgba, final int meltingPoint, final int boilingPoint, final long protons, final long neutrons, final boolean blastFurnace, final int radiationLevel, MaterialStack... inputs){ - this(materialName, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, "", radiationLevel, inputs); + this(materialName, 0, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, "", radiationLevel, inputs); + } + + public Material(final String materialName, final long durability, final short[] rgba, final int meltingPoint, final int boilingPoint, final long protons, final long neutrons, final boolean blastFurnace, final int radiationLevel, MaterialStack... inputs){ + this(materialName, durability, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, "", radiationLevel, inputs); } public Material(final String materialName, 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, 0, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, chemicalSymbol, radiationLevel, inputs); + } + + public Material(final String materialName, 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.unlocalizedName = Utils.sanitizeString(materialName); this.localizedName = materialName; @@ -74,6 +86,50 @@ public class Material { this.vNeutrons = neutrons; this.vMass = getMass(); + //Sets tool Durability + if (durability != 0){ this.vDurability = durability; + + } + else { + if (inputs != null){ + long durabilityTemp = 0; + int counterTemp = 0; + for (MaterialStack m : inputs){ + durabilityTemp = (durabilityTemp+m.getStackMaterial().vDurability); + counterTemp++; + } + this.vDurability = (durabilityTemp/counterTemp); + } + else { + 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.vToolQuality = 0; + this.vHarvestLevel = 0; + } + //Sets the Rad level if (radiationLevel != 0){ this.isRadioactive = true; @@ -230,15 +286,15 @@ public class Material { final public boolean requiresBlastFurnace(){ return usesBlastFurnace; } - + final public Block getBlock(){ return Block.getBlockFromItem(ItemUtils.getItemStackOfAmountFromOreDictNoBroken("block"+unlocalizedName, 1).getItem()); } - + final public ItemStack getBlock(int stacksize){ return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("block"+unlocalizedName, stacksize); } - + final public ItemStack getDust(int stacksize){ return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dust"+unlocalizedName, stacksize); } @@ -298,11 +354,11 @@ public class Material { final public ItemStack getFrameBox(int stacksize){ return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("frameGt"+unlocalizedName, stacksize); } - + final public ItemStack getCell(int stacksize){ return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+unlocalizedName, stacksize); } - + final public ItemStack getNugget(int stacksize){ return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("nugget"+unlocalizedName, stacksize); } |