aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/core/item/ModItems.java17
-rw-r--r--src/Java/gtPlusPlus/core/item/tool/staballoy/MultiSpadeBase.java2
-rw-r--r--src/Java/gtPlusPlus/core/material/ELEMENT.java4
-rw-r--r--src/Java/gtPlusPlus/core/material/Material.java70
-rw-r--r--src/Java/gtPlusPlus/core/util/Utils.java17
-rw-r--r--src/Java/gtPlusPlus/core/util/item/ItemUtils.java110
-rw-r--r--src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java4
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