diff options
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r-- | src/Java/gtPlusPlus/core/item/ModItems.java | 17 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/item/tool/staballoy/MultiSpadeBase.java | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/material/ELEMENT.java | 4 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/material/Material.java | 70 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/Utils.java | 17 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/item/ItemUtils.java | 110 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java | 4 |
7 files changed, 156 insertions, 68 deletions
diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java index 3335a8d89f..adb3c12421 100644 --- a/src/Java/gtPlusPlus/core/item/ModItems.java +++ b/src/Java/gtPlusPlus/core/item/ModItems.java @@ -16,6 +16,7 @@ import gtPlusPlus.core.item.base.plates.BaseItemPlate; import gtPlusPlus.core.item.effects.RarityUncommon; import gtPlusPlus.core.item.general.*; import gtPlusPlus.core.item.init.ItemsFoods; +import gtPlusPlus.core.item.init.ItemsMultiTools; import gtPlusPlus.core.item.tool.misc.SandstoneHammer; import gtPlusPlus.core.item.tool.staballoy.*; import gtPlusPlus.core.lib.*; @@ -471,20 +472,10 @@ public final class ModItems { metaItem2.registerItem(4, "Whirlygig", 1043644000, (short) 5, "Spin me right round.", EnumRarity.rare, EnumChatFormatting.DARK_GREEN, true); metaItem2.registerItem(5, "Whirlygig 2", 2124867000, (short) 7, "Spin me right round.", EnumRarity.uncommon, EnumChatFormatting.RED, true); + //Create Multi-tools + ItemsMultiTools.load(); - - //Load Multitools - boolean gtStyleTools = LoadedMods.Gregtech; - if (CORE.configSwitches.enableMultiSizeTools){ - Materials[] rm = Materials.values(); - for (Materials m : rm){ - MP_GTMATERIAL = ItemUtils.generateMultiPick(gtStyleTools, m); - MS_GTMATERIAL = ItemUtils.generateMultiShovel(gtStyleTools, m); - /*itemBaseDecidust = UtilsItems.generateDecidust(m); - itemBaseCentidust = UtilsItems.generateCentidust(m);*/ - } - } - + //Just an unusual plate needed for some black magic. itemPlateClay = new BaseItemPlate(MaterialUtils.generateMaterialFromGtENUM(Materials.Clay)); //EnderIO Resources diff --git a/src/Java/gtPlusPlus/core/item/tool/staballoy/MultiSpadeBase.java b/src/Java/gtPlusPlus/core/item/tool/staballoy/MultiSpadeBase.java index 511c6074ea..659086fe92 100644 --- a/src/Java/gtPlusPlus/core/item/tool/staballoy/MultiSpadeBase.java +++ b/src/Java/gtPlusPlus/core/item/tool/staballoy/MultiSpadeBase.java @@ -42,7 +42,7 @@ public class MultiSpadeBase extends StaballoySpade{ this.setTextureName("minecraft"+":"+"iron_shovel"); this.FACING_HORIZONTAL=true; this.setMaxStackSize(1); - this.setMaxDamage(materialDurability); + this.setMaxDamage(materialDurability*3); this.colour = colour; this.materialName = material.name(); this.setCreativeTab(AddToCreativeTab.tabTools); diff --git a/src/Java/gtPlusPlus/core/material/ELEMENT.java b/src/Java/gtPlusPlus/core/material/ELEMENT.java index 19b17fa333..e15b80c141 100644 --- a/src/Java/gtPlusPlus/core/material/ELEMENT.java +++ b/src/Java/gtPlusPlus/core/material/ELEMENT.java @@ -55,7 +55,7 @@ public final class ELEMENT { public final Material RUBIDIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Rubidium); public final Material STRONTIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Strontium); public final Material YTTRIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Yttrium); - public final Material ZIRCONIUM = new Material("Zirconium", new short[]{255, 250, 205}, 1855, 4377, 40, 51, false, "Zr", 0);//Not a GT Inherited Material + public final Material ZIRCONIUM = new Material("Zirconium", 25600, new short[]{255, 250, 205}, 1855, 4377, 40, 51, false, "Zr", 0);//Not a GT Inherited Material public final Material NIOBIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Niobium); public final Material MOLYBDENUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Molybdenum); //public final Material TECHNETIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Technetium); @@ -85,7 +85,7 @@ public final class ELEMENT { public final Material LEAD = MaterialUtils.generateMaterialFromGtENUM(Materials.Lead); public final Material BISMUTH = MaterialUtils.generateMaterialFromGtENUM(Materials.Bismuth); public final Material RADON = MaterialUtils.generateMaterialFromGtENUM(Materials.Radon); - public final Material THORIUM = new Material("Thorium", Materials.Thorium.mRGBa, Materials.Thorium.mMeltingPoint, Materials.Thorium.mBlastFurnaceTemp, 90, 142, false, MaterialUtils.superscript("Th"), 1); + public final Material THORIUM = new Material("Thorium", 51200, Materials.Thorium.mRGBa, Materials.Thorium.mMeltingPoint, Materials.Thorium.mBlastFurnaceTemp, 90, 142, false, MaterialUtils.superscript("Th"), 1); /*MaterialUtils.generateMaterialFromGtENUM(Materials.Thorium);*/ public final Material URANIUM238 = MaterialUtils.generateMaterialFromGtENUM(Materials.Uranium); public final Material URANIUM235 = MaterialUtils.generateMaterialFromGtENUM(Materials.Uranium235); 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); } diff --git a/src/Java/gtPlusPlus/core/util/Utils.java b/src/Java/gtPlusPlus/core/util/Utils.java index 9f14683382..cb30400fd7 100644 --- a/src/Java/gtPlusPlus/core/util/Utils.java +++ b/src/Java/gtPlusPlus/core/util/Utils.java @@ -4,6 +4,7 @@ import gregtech.api.enums.*; import gregtech.api.enums.TC_Aspects.TC_AspectStack; import gtPlusPlus.GTplusplus; import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.material.Material; import gtPlusPlus.core.util.fluid.FluidUtils; import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.core.util.math.MathUtils; @@ -527,10 +528,10 @@ public class Utils { } - public static ToolMaterial generateMaterialFromGT(Materials gtMaterial){ + public static ToolMaterial generateToolMaterialFromGT(Materials gtMaterial){ String name = gtMaterial.name(); int harvestLevel = gtMaterial.mToolQuality; - int durability = gtMaterial.mDurability*3; + int durability = gtMaterial.mDurability; float damage = gtMaterial.mToolQuality; int efficiency = (int) gtMaterial.mToolSpeed; int enchantability = gtMaterial.mEnchantmentToolsLevel; @@ -538,6 +539,18 @@ public class Utils { return temp; } + + public static ToolMaterial generateToolMaterial(Material material){ + String name = material.getLocalizedName(); + int harvestLevel = material.vHarvestLevel; + int durability = (int) material.vDurability; + float damage = material.vToolQuality; + int efficiency = (int) material.vToolQuality; + //int enchantability = material.mEnchantmentToolsLevel; + ToolMaterial temp = EnumHelper.addToolMaterial(name, harvestLevel, durability, efficiency, damage, 0); + return temp; + + } } diff --git a/src/Java/gtPlusPlus/core/util/item/ItemUtils.java b/src/Java/gtPlusPlus/core/util/item/ItemUtils.java index 2ce6d5bb66..409e52a579 100644 --- a/src/Java/gtPlusPlus/core/util/item/ItemUtils.java +++ b/src/Java/gtPlusPlus/core/util/item/ItemUtils.java @@ -253,11 +253,11 @@ public class ItemUtils { public static ItemStack getItemStackOfAmountFromOreDictNoBroken(String oredictName, int amount){ if (CORE.DEBUG){ - Utils.LOG_INFO("Looking up: "+oredictName+" - from method: "+ReflectionUtils.getMethodName(1)); - Utils.LOG_INFO("Looking up: "+oredictName+" - from method: "+ReflectionUtils.getMethodName(2)); - Utils.LOG_INFO("Looking up: "+oredictName+" - from method: "+ReflectionUtils.getMethodName(3)); - Utils.LOG_INFO("Looking up: "+oredictName+" - from method: "+ReflectionUtils.getMethodName(4)); - Utils.LOG_INFO("Looking up: "+oredictName+" - from method: "+ReflectionUtils.getMethodName(5)); + Utils.LOG_INFO("Looking up: "+oredictName+" - from method: "+ReflectionUtils.getMethodName(1)); + Utils.LOG_INFO("Looking up: "+oredictName+" - from method: "+ReflectionUtils.getMethodName(2)); + Utils.LOG_INFO("Looking up: "+oredictName+" - from method: "+ReflectionUtils.getMethodName(3)); + Utils.LOG_INFO("Looking up: "+oredictName+" - from method: "+ReflectionUtils.getMethodName(4)); + Utils.LOG_INFO("Looking up: "+oredictName+" - from method: "+ReflectionUtils.getMethodName(5)); } ItemStack returnValue = getItemStackOfAmountFromOreDict(oredictName, amount); if (returnValue.getItem().getClass() != ModItems.AAA_Broken.getClass() || returnValue.getItem() != ModItems.AAA_Broken){ @@ -283,48 +283,54 @@ public class ItemUtils { new BaseItemDustUnique("itemDustTiny"+unlocalizedName, materialName, Colour, "Tiny")}; return output; } - + public static Item[] generateSpecialUseDusts(Material material, boolean onlyLargeDust){ String materialName = material.getLocalizedName(); String unlocalizedName = Utils.sanitizeString(materialName); int Colour = material.getRgbAsHex(); Item[] output = null; if (onlyLargeDust == false){ - output = new Item[]{ - new BaseItemDustUnique("itemDust"+unlocalizedName, materialName, Colour, "Dust"), - new BaseItemDustUnique("itemDustSmall"+unlocalizedName, materialName, Colour, "Small"), - new BaseItemDustUnique("itemDustTiny"+unlocalizedName, materialName, Colour, "Tiny")}; + output = new Item[]{ + new BaseItemDustUnique("itemDust"+unlocalizedName, materialName, Colour, "Dust"), + new BaseItemDustUnique("itemDustSmall"+unlocalizedName, materialName, Colour, "Small"), + new BaseItemDustUnique("itemDustTiny"+unlocalizedName, materialName, Colour, "Tiny")}; } else{ output = new Item[]{ - new BaseItemDustUnique("itemDust"+unlocalizedName, materialName, Colour, "Dust") - }; + new BaseItemDustUnique("itemDust"+unlocalizedName, materialName, Colour, "Dust") + }; } return output; } public static MultiPickaxeBase generateMultiPick(boolean GT_Durability, Materials material){ - ToolMaterial customMaterial = Utils.generateMaterialFromGT(material); - Utils.LOG_WARNING("Generating a Multi-Pick out of "+material.name()); - short[] rgb; - rgb = material.getRGBA(); - int dur = customMaterial.getMaxUses()*3; - Utils.LOG_WARNING("Determined durability for "+material.name()+" is "+dur); + ToolMaterial customMaterial = Utils.generateToolMaterialFromGT(material); + return generateMultiPick(GT_Durability, customMaterial, material.name(), material.mDurability, material.mRGBa); + } + + public static MultiPickaxeBase generateMultiPick(Material material){ + ToolMaterial customMaterial = Utils.generateToolMaterial(material); + return generateMultiPick(true, customMaterial, material.getLocalizedName(), (int) material.vDurability, material.getRGBA()); + } + + public static MultiPickaxeBase generateMultiPick(boolean GT_Durability, ToolMaterial customMaterial, String name, int durability, short[] rgba){ + Utils.LOG_WARNING("Generating a Multi-Pick out of "+name); + short[] rgb = rgba; + int dur = customMaterial.getMaxUses(); + Utils.LOG_WARNING("Determined durability for "+name+" is "+dur); if (GT_Durability){ - dur = material.mDurability*100; - Utils.LOG_WARNING("Using gregtech durability value, "+material.name()+" is now "+dur+"."); + dur = durability*100; + Utils.LOG_WARNING("Using gregtech durability value, "+name+" is now "+dur+"."); } else if (dur <= 0){ - dur = material.mDurability; - Utils.LOG_WARNING("Determined durability too low, "+material.name()+" is now "+dur+" based on the GT material durability."); + dur = durability; + Utils.LOG_WARNING("Determined durability too low, "+name+" is now "+dur+" based on the GT material durability."); } - if (dur <= 0){ - Utils.LOG_WARNING("Still too low, "+material.name()+" will now go unused."); + Utils.LOG_WARNING("Still too low, "+name+" will now go unused."); return null; } - MultiPickaxeBase MP_Redstone = new MultiPickaxeBase( - material.name()+" Multipick", + name+" Multipick", (customMaterial), dur, Utils.rgbtoHexValue(rgb[0],rgb[1],rgb[2]) @@ -334,32 +340,42 @@ public class ItemUtils { return MP_Redstone; } return null; - } - + + + + + + public static MultiSpadeBase generateMultiShovel(boolean GT_Durability, Materials material){ - ToolMaterial customMaterial = Utils.generateMaterialFromGT(material); - Utils.LOG_WARNING("Generating a Multi-Shovel out of "+material.name()); - short[] rgb; - rgb = material.getRGBA(); + ToolMaterial customMaterial = Utils.generateToolMaterialFromGT(material); + return generateMultiShovel(GT_Durability, customMaterial, material.name(), material.mDurability, material.mRGBa); + } + + public static MultiSpadeBase generateMultiShovel(Material material){ + ToolMaterial customMaterial = Utils.generateToolMaterial(material); + return generateMultiShovel(true, customMaterial, material.getLocalizedName(), (int) material.vDurability, material.getRGBA()); + } + + public static MultiSpadeBase generateMultiShovel(boolean GT_Durability, ToolMaterial customMaterial, String name, int durability, short[] rgba){ + Utils.LOG_WARNING("Generating a Multi-Spade out of "+name); + short[] rgb = rgba; int dur = customMaterial.getMaxUses(); - Utils.LOG_WARNING("Determined durability for "+material.name()+" is "+dur); + Utils.LOG_WARNING("Determined durability for "+name+" is "+dur); if (GT_Durability){ - dur = material.mDurability*100; - Utils.LOG_WARNING("Using gregtech durability value, "+material.name()+" is now "+dur+"."); + dur = durability*100; + Utils.LOG_WARNING("Using gregtech durability value, "+name+" is now "+dur+"."); } else if (dur <= 0){ - dur = material.mDurability; - Utils.LOG_WARNING("Determined durability too low, "+material.name()+" is now "+dur+" based on the GT material durability."); + dur = durability; + Utils.LOG_WARNING("Determined durability too low, "+name+" is now "+dur+" based on the GT material durability."); } - if (dur <= 0){ - Utils.LOG_WARNING("Still too low, "+material.name()+" will now go unused."); + Utils.LOG_WARNING("Still too low, "+name+" will now go unused."); return null; } - MultiSpadeBase MP_Redstone = new MultiSpadeBase( - material.name()+" Multishovel", + name+" Multispade", (customMaterial), dur, Utils.rgbtoHexValue(rgb[0],rgb[1],rgb[2]) @@ -369,9 +385,19 @@ public class ItemUtils { return MP_Redstone; } return null; - } + + + + + + + + + + + public static BaseItemDecidust generateDecidust(Materials material){ if (GT_OreDictUnificator.get(OrePrefixes.dust, material, 1L) != null){ Material placeholder = MaterialUtils.generateMaterialFromGtENUM(material); diff --git a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java index 5d219f72b0..0d01e83848 100644 --- a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java +++ b/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java @@ -50,6 +50,7 @@ public class MaterialUtils { long protons = material.getProtons(); long neutrons = material.getNeutrons(); boolean blastFurnace = material.mBlastFurnaceRequired; + int durability = material.mDurability; String chemicalFormula = MaterialUtils.subscript(material.mChemicalFormula); Element element = material.mElement; int radioactivity = 0; @@ -63,7 +64,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, rgba, melting, boiling, protons, neutrons, blastFurnace, chemicalFormula, radioactivity); + return new Material(name, durability, rgba, melting, boiling, protons, neutrons, blastFurnace, chemicalFormula, radioactivity); } return null; @@ -72,6 +73,7 @@ public class MaterialUtils { public static Material generateQuickMaterial(String materialName, short[] colour, int sRadioactivity) { Material temp = new Material( materialName, + 0, //Durability colour, 1000, //melting 3000, //boiling |