diff options
author | Blood-Asp <bloodasphendrik@gmail.com> | 2016-10-30 22:39:40 +0100 |
---|---|---|
committer | Blood-Asp <bloodasphendrik@gmail.com> | 2016-10-30 22:39:40 +0100 |
commit | 814dc25690a60faaaeab710d0dad40fb4386b849 (patch) | |
tree | dc16a1911f585900367c35a623f9ad02e7e072fa | |
parent | ed724da44d7783705cb8fd503b3f4623b1cf1b86 (diff) | |
download | GT5-Unofficial-814dc25690a60faaaeab710d0dad40fb4386b849.tar.gz GT5-Unofficial-814dc25690a60faaaeab710d0dad40fb4386b849.tar.bz2 GT5-Unofficial-814dc25690a60faaaeab710d0dad40fb4386b849.zip |
Modular Armor changes 1
28 files changed, 881 insertions, 799 deletions
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index 2e727f7250..e36d897820 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -21,6 +21,7 @@ import gregtech.common.GT_Proxy; import gregtech.common.GT_RecipeAdder;
import gregtech.common.entities.GT_Entity_Arrow;
import gregtech.common.entities.GT_Entity_Arrow_Potion;
+import gregtech.common.items.armor.components.LoadArmorComponents;
import gregtech.common.items.behaviors.Behaviour_DataOrb;
import gregtech.loaders.load.GT_CoverBehaviorLoader;
import gregtech.loaders.load.GT_FuelLoader;
@@ -537,6 +538,7 @@ public class GT_Mod implements IGT_Mod { new GT_CropLoader().run();
new GT_Worldgenloader().run();
new GT_CoverLoader().run();
+ LoadArmorComponents.init();
GT_RecipeRegistrator.registerUsagesForMaterials(new ItemStack(Blocks.planks, 1), null, false);
GT_RecipeRegistrator.registerUsagesForMaterials(new ItemStack(Blocks.cobblestone, 1), null, false);
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java index ee30d8f4b9..d4d8f9cec7 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java @@ -37,7 +37,7 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch } public GT_MetaTileEntity_Hatch_Maintenance(int aID, String aName, String aNameRegional, int aTier, boolean aAuto) { - super(aID, aName, aNameRegional, aTier, 4, "For automaticly maintaining Multiblocks"); + super(aID, aName, aNameRegional, aTier, 4, "For automatically maintaining Multiblocks"); mAuto = aAuto; } @@ -48,7 +48,7 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch @Override public String[] getDescription() { - if(mAuto)return new String[]{mDescription, "Cannot be shared between Multiblocks!","4 Ducttape, 2 Lubricant Cells","4 Steel Screws, 2 Adv Circuits","For each autorepair"}; + if(mAuto)return new String[]{mDescription,"4 Ducttape, 2 Lubricant Cells","4 Steel Screws, 2 Adv Circuits","For each autorepair"}; return new String[]{mDescription, "Cannot be shared between Multiblocks!"}; } diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java index 00ee739ef1..01b8b3c3b2 100644 --- a/src/main/java/gregtech/common/GT_Proxy.java +++ b/src/main/java/gregtech/common/GT_Proxy.java @@ -29,6 +29,11 @@ import gregtech.api.util.*; import gregtech.common.entities.GT_Entity_Arrow; import gregtech.common.items.GT_MetaGenerated_Tool_01; import gregtech.common.items.armor.*; +import gregtech.common.items.armor.gui.ContainerBasicArmor; +import gregtech.common.items.armor.gui.ContainerElectricArmor1; +import gregtech.common.items.armor.gui.GuiElectricArmor1; +import gregtech.common.items.armor.gui.GuiModularArmor; +import gregtech.common.items.armor.gui.InventoryArmor; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; @@ -1315,6 +1320,20 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { return getRightItem(aPlayer, ID); } } + if(aID>=100){ + int tSlot = aID / 100; + int ID = aID%100; + switch(ID){ + case 0: + return new ContainerBasicArmor(aPlayer, new InventoryArmor(ModularArmor_Item.class, aPlayer.getEquipmentInSlot(tSlot))); + case 1: + return new ContainerElectricArmor1(aPlayer, new InventoryArmor(ModularArmor_Item.class, aPlayer.getEquipmentInSlot(tSlot))); + case 2: + return new ContainerElectricArmor1(aPlayer, new InventoryArmor(ModularArmor_Item.class, aPlayer.getEquipmentInSlot(tSlot))); + default: + return getRightItem(aPlayer, ID); + } + } TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); if ((tTileEntity instanceof IGregTechTileEntity)) { IMetaTileEntity tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity(); @@ -1355,6 +1374,20 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { return getRightItemGui(aPlayer, ID); } } + if(aID>=100){ + int tSlot = aID / 100; + int ID = aID%100; + switch(ID){ + case 0: + return new GuiModularArmor(new ContainerBasicArmor(aPlayer, new InventoryArmor(ModularArmor_Item.class, aPlayer.getEquipmentInSlot(tSlot))), aPlayer); + case 1: + return new GuiElectricArmor1(new ContainerElectricArmor1(aPlayer, new InventoryArmor(ModularArmor_Item.class, aPlayer.getEquipmentInSlot(tSlot))), aPlayer); + case 2: + return new GuiElectricArmor1(new ContainerElectricArmor1(aPlayer, new InventoryArmor(ModularArmor_Item.class, aPlayer.getEquipmentInSlot(tSlot))), aPlayer); + default: + return getRightItem(aPlayer, ID); + } + } TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); if ((tTileEntity instanceof IGregTechTileEntity)) { IMetaTileEntity tMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity(); diff --git a/src/main/java/gregtech/common/items/armor/ArmorCalculation.java b/src/main/java/gregtech/common/items/armor/ArmorCalculation.java index 440d6aaef9..7c8100db62 100644 --- a/src/main/java/gregtech/common/items/armor/ArmorCalculation.java +++ b/src/main/java/gregtech/common/items/armor/ArmorCalculation.java @@ -14,361 +14,10 @@ import thaumcraft.api.nodes.IRevealer; public class ArmorCalculation { public static float[] calculateArmor(ItemStack[] parts) { - float[] def = new float[32]; - def[0] = 0; // Weight - def[1] = 1; // physical Def - def[2] = 1; // projectileDef - def[3] = 1; // fireDef - def[4] = 1; // magicDef - def[5] = 1; // explosionDef - def[6] = 0; // radiationDef - def[7] = 0; // electricDef - def[8] = 0; // witherDef - def[9] = 0; // fallDef - def[10] = 0; // Thorns - def[11] = 0; // ItemMagnet - def[12] = 0; // ItemCharge - def[13] = 0; // Thaumcraft goggles - def[14] = 0; // Nightvision - def[15] = 0; // tankCap - def[16] = 0; // motorPower - def[17] = 0; // motorEU - def[18] = 0; // pistonPower - def[19] = 0; // pistonEU - def[20] = 0; // ElectrolyzerPower - def[21] = 0; // ElectrolyzerEU - def[22] = 0; // FieldEmmiterPower - def[23] = 0; // FieldEmmiterEU - def[24] = 0; // JetpackFuelPower - def[25] = 0; // FuelUsage - def[26] = 0; // JetpackEUPower - def[27] = 0; // JetpackEU - def[28] = 0; // AntiGravPower - def[29] = 0; // AntiGravEU - def[30] = 0; // ProcessingPower - def[31] = 0; // ProcessingPowerUsed - - if (parts != null) { - def[12] = 0.0f; - for (int i = 0; i < parts.length; i++) { - if (parts[i] != null) { - ItemData data = GT_OreDictUnificator.getItemData(parts[i]); - if (data != null && (data.mPrefix == OrePrefixes.plate || data.mPrefix == OrePrefixes.plateAlloy)) { - // Weight - def[0] = def[0] + Values.INSTANCE.getValues(data.mMaterial.mMaterial).weight; - if (data.mPrefix == OrePrefixes.plateAlloy && data.mMaterial.mMaterial == Materials.Iridium) { - def[0] = def[0] - 20; - } - // physicalDef - float tmp = Values.INSTANCE.getValues(data.mMaterial.mMaterial).physicalDef; - if (data.mPrefix == OrePrefixes.plateAlloy && data.mMaterial.mMaterial == Materials.Iridium) { - tmp = 0.27f; - } - if (tmp > 0.0f) { - def[1] = def[1] - (tmp * def[1]); - } - // projectileDef - tmp = Values.INSTANCE.getValues(data.mMaterial.mMaterial).projectileDef; - if (data.mPrefix == OrePrefixes.plateAlloy && data.mMaterial.mMaterial == Materials.Iridium) { - tmp = 0.27f; - } - if (tmp > 0.0f) { - def[2] = def[2] - (tmp * def[2]); - } - // fireDef - tmp = Values.INSTANCE.getValues(data.mMaterial.mMaterial).fireDef; - if (data.mPrefix == OrePrefixes.plateAlloy && data.mMaterial.mMaterial == Materials.Iridium) { - tmp = 0.25f; - } - if (tmp > 0.0f) { - def[3] = def[3] - (tmp * def[3]); - } - // magicDef - tmp = Values.INSTANCE.getValues(data.mMaterial.mMaterial).magicDef; - if (data.mPrefix == OrePrefixes.plateAlloy && data.mMaterial.mMaterial == Materials.Iridium) { - tmp = 0.25f; - } - if (tmp > 0.0f) { - def[4] = def[4] - (tmp * def[4]); - } - // explosionDef - tmp = Values.INSTANCE.getValues(data.mMaterial.mMaterial).explosionDef; - if (data.mPrefix == OrePrefixes.plateAlloy && data.mMaterial.mMaterial == Materials.Iridium) { - tmp = 0.27f; - } - if (tmp > 0.0f) { - def[5] = def[5] - (tmp * def[5]); - } - if (data.mPrefix == OrePrefixes.plate && data.mMaterial.mMaterial == Materials.Rubber) { - def[7] = def[7] + 0.25f; - def[9] = def[9] + 2.0f; - } - if (data.mPrefix == OrePrefixes.plate && data.mMaterial.mMaterial == Materials.Lead) { - def[6] = def[6] + 0.30f; - } - if (data.mPrefix == OrePrefixes.plate && data.mMaterial.mMaterial == Materials.Plastic) { - def[7] = def[7] + 0.25f; - } - if (data.mPrefix == OrePrefixes.plate && data.mMaterial.mMaterial == Materials.NeodymiumMagnetic) { - def[11] = def[11] + 2.0f; - } - if (data.mPrefix == OrePrefixes.plate && data.mMaterial.mMaterial == Materials.NetherStar) { - def[8] = def[8] + 0.20f; - } - if (data.mPrefix == OrePrefixes.plate && data.mMaterial.mMaterial == Materials.InfusedFire) { - def[10] = def[10] + 3.0f; - } - if (data.mPrefix == OrePrefixes.plate && data.mMaterial.mMaterial == Materials.InfusedEntropy) { - def[10] = def[10] + 4.0f; - } - } else if (GT_ModHandler.isChargerItem(parts[i])) { - def[12] = def[12] + (float) ic2.api.item.ElectricItem.manager.getCharge(parts[i]); - def[0] = (float) (def[0] + Math.pow(ic2.api.item.ElectricItem.manager.getCharge(parts[i]), 0.33f)); - } - else if (Loader.isModLoaded("Thaumcraft") && parts[i].getItem() instanceof IRevealer) { - def[13] = 1; - def[31] += 100; - } - else if (parts[i].getItem().getUnlocalizedName().equals("ic2.itemNightvisionGoggles")) { - def[14] = 1; - def[31] += 100; - } else if (parts[i].getItem().getUnlocalizedName().equals("gt.meta.spring")) {// Once readded: GT Motors - switch (parts[i].getItem().getDamage(parts[i])) { - case 8630: - def[16] += 200; // motorPower - def[17] += 50; - def[31] += 10; - break; - case 8631: - def[16] += 300; // motorPower - def[17] += 100; - def[31] += 20; - break; - case 8632: - def[16] += 400; // motorPower - def[17] += 200; - def[31] += 50; - break; - case 8633: - def[16] += 500; // motorPower - def[17] += 400; - def[31] += 100; - break; - case 8634: - def[16] += 600; // motorPower - def[17] += 800; - def[31] += 200; - break; - } - } else if (parts[i].getItem().getUnlocalizedName().equals("gt.meta.springSmall")) {// Once Readded: GT Electric Pistons - switch (parts[i].getItem().getDamage(parts[i])) { - case 8630: - def[18] += 3; - def[19] += 200; - def[31] += 10; - break; - case 8631: - def[18] += 4; - def[19] += 300; - def[31] += 20; - break; - case 8632: - def[18] += 5; - def[19] += 450; - def[31] += 50; - break; - case 8633: - def[18] += 6; - def[19] += 800; - def[31] += 100; - break; - case 8634: - def[18] += 7; - def[19] += 1600; - def[31] += 200; - break; - } - } else if (parts[i].getItem().getUnlocalizedName().equals("gt.meta.Electrolyzer")) {// Once Readded: GT Electrolyzer - switch (parts[i].getItem().getDamage(parts[i])) { - case 8630: - def[20] += 10; // ElectrolyzerPower - def[21] += 1; // ElectrolyzerEU - def[31] += 50; - break; - case 8631: - def[20] += 20; // ElectrolyzerPower - def[21] += 4; // ElectrolyzerEU - def[31] += 100; - break; - case 8632: - def[20] += 40; // ElectrolyzerPower - def[21] += 16; // ElectrolyzerEU - def[31] += 150; - break; - case 8633: - def[20] += 80; // ElectrolyzerPower - def[21] += 64; // ElectrolyzerEU - def[31] += 200; - break; - case 8634: - def[20] += 160; // ElectrolyzerPower - def[21] += 256; // ElectrolyzerEU - def[31] += 250; - break; - } - } else if (parts[i].getItem().equals(ItemList.Cell_Empty.getItem())) { - def[15] += 8000; - } else if (parts[i].getItem().getUnlocalizedName().equals("gt.meta.cell")) {// Once Readded: GT Fluid Cells (tank) - switch (parts[i].getItem().getDamage(parts[i])) { - case 8630: // steel fluid cell - def[15] += 16000; - break; - case 8631: // tungsten fluid cell - def[15] += 64000; - break; - } - } else if (parts[i].getItem().getUnlocalizedName().equals("gt.meta.emmiter")) {// Once Readded: GT Field Emmiter - switch (parts[i].getItem().getDamage(parts[i])) { - case 8630: - def[22] += 1; // FieldEmmiterPower - def[23] += 1; // FieldEmmiterEU - def[31] += 100; - break; - case 8631: - def[22] += 2; // FieldEmmiterPower - def[23] += 4; // FieldEmmiterEU - def[31] += 200; - break; - case 8632: - def[22] += 3; // FieldEmmiterPower - def[23] += 16; // FieldEmmiterEU - def[31] += 300; - break; - case 8633: - def[22] += 4; // FieldEmmiterPower - def[23] += 64; // FieldEmmiterEU - def[31] += 400; - break; - case 8634: - def[22] += 5; // FieldEmmiterPower - def[23] += 512; // FieldEmmiterEU - def[31] += 500; - break; - } - } else if (data !=null && data.mPrefix == OrePrefixes.circuit) {// processing power stuff - if (data.mMaterial.mMaterial == Materials.Basic) { - def[30] += 100; - } else if (data.mMaterial.mMaterial == Materials.Good) { - def[30] += 200; - } else if (data.mMaterial.mMaterial == Materials.Advanced) { - def[30] += 300; - } else if (data.mMaterial.mMaterial == Materials.Data) { - def[30] += 400; - } else if (data.mMaterial.mMaterial == Materials.Elite) { - def[30] += 500; - } else if (data.mMaterial.mMaterial == Materials.Master) { - def[30] += 600; - } - } else if (parts[i].getItem().getUnlocalizedName().equals("gte.meta.jetpack")) {// jeptack parts - switch (parts[i].getItem().getDamage(parts[i])) { - case 0: - def[24] += 50; // JetpackFuelPower - def[25] += 1; // FuelUsage - def[31] += 10; - break; - case 1: - def[24] += 75; // JetpackFuelPower - def[25] += 2; // FuelUsage - def[31] += 20; - break; - case 2: - def[24] += 100; // JetpackFuelPower - def[25] += 4; // FuelUsage - def[31] += 30; - break; - case 3: - def[24] += 125; // JetpackFuelPower - def[25] += 8; // FuelUsage - def[31] += 40; - break; - case 4: - def[24] += 150; // JetpackFuelPower - def[25] += 16; // FuelUsage - def[31] += 50; - break; - case 5: - def[26] += 20; // JetpackEUPower - def[27] += 8; // JetpackEU - def[31] += 30; - break; - case 6: - def[26] += 30; // JetpackEUPower - def[27] += 16; // JetpackEU - def[31] += 60; - break; - case 7: - def[26] += 40; // JetpackEUPower - def[27] += 32; // JetpackEU - def[31] += 90; - break; - case 8: - def[26] += 50; // JetpackEUPower - def[27] += 64; // JetpackEU - def[31] += 120; - break; - case 9: - def[26] += 60; // JetpackEUPower - def[27] += 128; // JetpackEU - def[31] += 150; - break; - case 10: - def[28] += 100; // AntiGravPower - def[29] += 32; // AntiGravEU - def[31] += 100; - break; - case 11: - def[28] += 133; // AntiGravPower - def[29] += 64; // AntiGravEU - def[31] += 200; - break; - case 12: - def[28] += 166; // AntiGravPower - def[29] += 128; // AntiGravEU - def[31] += 300; - break; - case 13: - def[28] += 200; // AntiGravPower - def[29] += 256; // AntiGravEU - def[31] += 400; - break; - case 14: - def[28] += 233; // AntiGravPower - def[29] += 512; // AntiGravEU - def[31] += 500; - break; - } - } else if (true) { - //System.out.println("Unknown Item: " + parts[i].getItem().getUnlocalizedName()); - } - } - } - } - def[1] = 1 - def[1]; - def[2] = 1 - def[2]; - def[3] = 1 - def[3]; - def[4] = 1 - def[4]; - def[5] = 1 - def[5]; - if (def[7] > 0.95) { - def[7] = 1.0f; - } - if (def[8] > 0.98) { - def[8] = 1.0f; - } - return def; + return new float[32]; } public static int deChargeBatterys(ItemStack[] parts, int amount) { - // System.out.println("deCharge " + amount); int decharged = 0; for (int i = 0; decharged < amount && i < parts.length; i++) { if (GT_ModHandler.isChargerItem(parts[i])) { diff --git a/src/main/java/gregtech/common/items/armor/ArmorData.java b/src/main/java/gregtech/common/items/armor/ArmorData.java index 79c6a20ffa..c6ef4d5bc0 100644 --- a/src/main/java/gregtech/common/items/armor/ArmorData.java +++ b/src/main/java/gregtech/common/items/armor/ArmorData.java @@ -4,13 +4,20 @@ import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.text.NumberFormat; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.Random; import gregtech.api.damagesources.GT_DamageSources; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; +import gregtech.common.items.armor.components.ArmorComponent; +import gregtech.common.items.armor.components.StatType; +import gregtech.common.items.armor.gui.ContainerBasicArmor; +import gregtech.common.items.armor.gui.ContainerModularArmor; +import gregtech.common.items.armor.gui.InventoryArmor; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -32,56 +39,59 @@ public class ArmorData { public ArmorData helmet; public ArmorData chestplate; public ArmorData leggings; - public ArmorData boots; + public ArmorData boots; - public boolean fullArmor; - public boolean fullRadiationDef; - public boolean fullElectricDef; + public Map<StatType,Float> mStat = new HashMap<StatType,Float>(); + public Map<StatType,Boolean> mBStat = new HashMap<StatType,Boolean>(); - public float fallDef; - public float physicalDef; - public float projectileDef; - public float fireDef; - public float magicDef; - public float explosionDef; - public float radiationDef; - public float electricDef; - public float witherDef; - - public float thorns; - public float thornsSingle; - public int magnet; - public int magnetSingle; - - public int partsCharge; +// public boolean fullArmor; +// public boolean fullRadiationDef; +// public boolean fullElectricDef; +// +// public float fallDef; +// public float physicalDef; +// public float projectileDef; +// public float fireDef; +// public float magicDef; +// public float explosionDef; +// public float radiationDef; +// public float electricDef; +// public float witherDef; +// +// public float thorns; +// public float thornsSingle; +// public int magnet; +// public int magnetSingle; +// +// public int partsCharge; public int maxCharge; public int charge; - public boolean thaumicGoggles; - public boolean nightVision; - public boolean potionInjector; - public boolean autoFeeder; +// public boolean thaumicGoggles; +// public boolean nightVision; +// public boolean potionInjector; +// public boolean autoFeeder; public FluidStack fluid; - public int tankCap; - - public int weight; - public int maxWeight; - public int processingPower; - public int processingPowerUsed; - public int partProcessing; - public int partProcessingUsed; - - public int motorPower; - public int motorEUusage; - public int pistonJumpboost; - public int pistonEUusage; - public int electrolyzerProd; - public int electrolyzerEUusage; - public int fieldGenCap; - public int fieldGenEUusage; - - public int jetpackMaxWeight; - public int antiGravMaxWeight; +// public int tankCap; +// +// public int weight; + public float maxWeight; +// public int processingPower; +// public int processingPowerUsed; +// public int partProcessing; +// public int partProcessingUsed; +// +// public int motorPower; +// public int motorEUusage; +// public int pistonJumpboost; +// public int pistonEUusage; +// public int electrolyzerProd; +// public int electrolyzerEUusage; +// public int fieldGenCap; +// public int fieldGenEUusage; +// +// public int jetpackMaxWeight; +// public int antiGravMaxWeight; public ArmorData(EntityPlayer player, ItemStack stack, int type, int tier) { this.type = type; @@ -118,45 +128,14 @@ public class ArmorData { } public ArmorData calculateArmor(ItemStack[] parts) { - float[] def = ArmorCalculation.calculateArmor(parts); - weight = (int) def[0]; - physicalDef = def[1]; - projectileDef = def[2]; - fireDef = def[3]; - magicDef = def[4]; - explosionDef = def[5]; - radiationDef = def[6]; - electricDef = def[7]; - witherDef = def[8]; - fallDef = def[9]; - thornsSingle = def[10]; - magnetSingle = (int) def[11]; - if (armorTier > 0) { - partsCharge = (int) def[12]; - thaumicGoggles = def[13] > 0.5f; - nightVision = def[14] > 0.5f; - tankCap = (int) def[15]; // tankCap - motorPower = (int) def[16]; // motorPower - motorEUusage = (int) def[17]; // motorEU - pistonJumpboost = (int) def[18]; // pistonPower - fallDef += pistonJumpboost; - pistonEUusage = (int) def[19]; // pistonEU - electrolyzerProd = (int) def[20]; // ElectrolyzerPower - electrolyzerEUusage = (int) def[21]; // ElectrolyzerEU - fieldGenCap = (int) def[22]; // FieldEmmiterPower - fieldGenEUusage = (int) def[23]; // FieldEmmiterEU - jetpackMaxWeight = (int) def[24] + (int) def[26]; // JetpackFuelPower// JetpackEUPower - def[25] = 0; // FuelUsage - def[27] = 0; // JetpackEU - antiGravMaxWeight = (int) def[28]; // AntiGravPower - def[29] = 0; // AntiGravEU - if (armorTier == 2) { - partProcessing = (int) def[30] + 500; // ProcessingPower - } else { - partProcessing = (int) def[30] + 300; // ProcessingPower - } - partProcessingUsed = (int) def[31]; // ProcessingPowerUsed + mStat.clear(); + mBStat.clear(); + for(ItemStack tPart : parts){ + if(tPart!=null && ArmorComponent.mStacks.containsKey(tPart.getUnlocalizedName())) + ArmorComponent.mStacks.get(tPart.getUnlocalizedName()).calculateArmor(this); } + for(StatType tType : StatType.values())if(!mStat.containsKey(tType))mStat.put(tType, .0f); + for(StatType tType : StatType.values())if(!mBStat.containsKey(tType))mBStat.put(tType, false); updateTooltip(); return this; } @@ -165,67 +144,67 @@ public class ArmorData { List<String> tagList = new ArrayList<String>(); String tmp2 = ""; if (maxWeight > 4000) { - tmp2 = " " + GT_LanguageManager.getTranslation("hav"); + tmp2 = " " + GT_LanguageManager.getTranslation("Too Heavy"); } if (maxCharge != 0) { DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US); DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols(); symbols.setGroupingSeparator(' '); if (type == 0) { - if (thaumicGoggles) { - tagList.add(GT_LanguageManager.getTranslation("thaum")); + if (mBStat.get(StatType.THAUMICGOGGLES)) { + tagList.add(GT_LanguageManager.getTranslation("Thaumic Goggles installed")); } - if (nightVision) { - tagList.add(GT_LanguageManager.getTranslation("night")); + if (mBStat.get(StatType.NIGHTVISION)) { + tagList.add(GT_LanguageManager.getTranslation("Nightvision installed")); } } - tagList.add("EU: " + formatter.format(charge + partsCharge)); + tagList.add("EU: " + formatter.format(charge + mStat.get(StatType.PARTSCHARGE))); if (type == 2) { - tagList.add(GT_LanguageManager.getTranslation("jum") + ": " + pistonJumpboost / 3 + "m"); + tagList.add(GT_LanguageManager.getTranslation("Jumpboost") + ": " + mStat.get(StatType.PISTONJUMPBOOST) / 3 + "m"); } - if (type == 2 && pistonJumpboost > 0) { - tagList.add(GT_LanguageManager.getTranslation("uph")); + if (type == 2 && mStat.get(StatType.PISTONJUMPBOOST) > 0) { + tagList.add(GT_LanguageManager.getTranslation("Uphill step assist active")); } - if (type == 2 && motorPower > 0) { - tagList.add(GT_LanguageManager.getTranslation("speass") + ": " + motorPower); - tagList.add(GT_LanguageManager.getTranslation("motuse") + ": " + motorEUusage + " EU"); + if (type == 2 && mStat.get(StatType.MOTPRPOWER) > 0) { + tagList.add(GT_LanguageManager.getTranslation("Speedup") + ": " + mStat.get(StatType.MOTPRPOWER)); + tagList.add(GT_LanguageManager.getTranslation("Motor energy usage") + ": " + mStat.get(StatType.MOTOREUUSAGE) + " EU"); if (maxWeight > 4000) { - tagList.add(GT_LanguageManager.getTranslation("over")); + tagList.add(GT_LanguageManager.getTranslation("Too Heavy!!!")); } } - tagList.add(GT_LanguageManager.getTranslation("pro1") + " " + partProcessing + " " + GT_LanguageManager.getTranslation("pro3")); - tagList.add(GT_LanguageManager.getTranslation("pro2") + ": " + partProcessingUsed + " " + GT_LanguageManager.getTranslation("pro3")); - if (type == 0 && electrolyzerProd > 0) { - tagList.add(GT_LanguageManager.getTranslation("elec1") + " " + electrolyzerProd / 2 + GT_LanguageManager.getTranslation("elec2")); + tagList.add(GT_LanguageManager.getTranslation("Processing power ") + " " + mStat.get(StatType.PARTPROCESSING) + " " + GT_LanguageManager.getTranslation("")); + tagList.add(GT_LanguageManager.getTranslation("Processing power used") + ": " + mStat.get(StatType.PARTPROCESSINGUSED) + " " + GT_LanguageManager.getTranslation("")); + if (type == 0 && mStat.get(StatType.ELECTROLYZERPROD) > 0) { + tagList.add(GT_LanguageManager.getTranslation("Electrolyzer produces ") + " " + mStat.get(StatType.ELECTROLYZERPROD) / 2 + GT_LanguageManager.getTranslation("per second")); } - if (tankCap > 0) { + if (mStat.get(StatType.TANKCAP) > 0) { if (fluid != null) { - tagList.add(GT_LanguageManager.getTranslation("tank") + ": " + fluid.getLocalizedName() + " " + fluid.amount + "L (" + tankCap + ")"); + tagList.add(GT_LanguageManager.getTranslation("Tank Capacity") + ": " + fluid.getLocalizedName() + " " + fluid.amount + "L (" + mStat.get(StatType.TANKCAP) + ")"); } else { - tagList.add(GT_LanguageManager.getTranslation("tankcap") + ": " + tankCap); + tagList.add(GT_LanguageManager.getTranslation("tankcap") + ": " + mStat.get(StatType.TANKCAP)); } } } - tagList.add(GT_LanguageManager.getTranslation("weight") + ": " + weight + tmp2); - tagList.add(GT_LanguageManager.getTranslation("phydef") + ": " + (Math.round(physicalDef * 1000) / 10.0) + "%"); - tagList.add(GT_LanguageManager.getTranslation("prodef") + ": " + (Math.round(projectileDef * 1000) / 10.0) + "%"); - tagList.add(GT_LanguageManager.getTranslation("firedef") + ": " + (Math.round(fireDef * 1000) / 10.0) + "%"); - tagList.add(GT_LanguageManager.getTranslation("magdef") + ": " + (Math.round(magicDef * 1000) / 10.0) + "%"); - tagList.add(GT_LanguageManager.getTranslation("expdef") + ": " + (Math.round(explosionDef * 1000) / 10.0) + "%"); - if (fallDef > 0 && type == 3) { - tagList.add(GT_LanguageManager.getTranslation("abs1") + " " + fallDef + GT_LanguageManager.getTranslation("abs2")); + tagList.add(GT_LanguageManager.getTranslation("Weight") + ": " + mStat.get(StatType.WEIGHT) + tmp2); + tagList.add(GT_LanguageManager.getTranslation("Physical Defence") + ": " + (Math.round(mStat.get(StatType.PHYSICALDEFENCE) * 1000) / 10.0) + "%"); + tagList.add(GT_LanguageManager.getTranslation("Projectile Defence") + ": " + (Math.round(mStat.get(StatType.PROJECTILEDEFENCE) * 1000) / 10.0) + "%"); + tagList.add(GT_LanguageManager.getTranslation("Fire Defence") + ": " + (Math.round(mStat.get(StatType.FIREDEFENCE) * 1000) / 10.0) + "%"); + tagList.add(GT_LanguageManager.getTranslation("Magic Defence") + ": " + (Math.round(mStat.get(StatType.MAGICDEFENCE) * 1000) / 10.0) + "%"); + tagList.add(GT_LanguageManager.getTranslation("Explosive Defence") + ": " + (Math.round(mStat.get(StatType.EXPLOSIONDEFENCE) * 1000) / 10.0) + "%"); + if (mStat.get(StatType.FALLDEFENCE) > 0 && type == 3) { + tagList.add(GT_LanguageManager.getTranslation("Absorbs") + " " + mStat.get(StatType.FALLDEFENCE) + GT_LanguageManager.getTranslation(" m of Fall Defence")); } - if (thorns > 0) { - tagList.add(GT_LanguageManager.getTranslation("thorns") + ": " + (int) thorns); + if (mStat.get(StatType.THORNS) > 0) { + tagList.add(GT_LanguageManager.getTranslation("Thorns") + ": " + mStat.get(StatType.THORNS)); } - if (magnet > 0) { - tagList.add(GT_LanguageManager.getTranslation("magnet") + ": " + magnet + "m"); + if (mStat.get(StatType.MAGNET) > 0) { + tagList.add(GT_LanguageManager.getTranslation("Magnet") + ": " + mStat.get(StatType.MAGNET) + "m"); } - if (fullRadiationDef) { - tagList.add(GT_LanguageManager.getTranslation("radim")); + if (mBStat.get(StatType.FULLRADIATIONARMOR)) { + tagList.add(GT_LanguageManager.getTranslation("Is Full Radiation Defence")); } else { - if (radiationDef > 0.01d) { - tagList.add(GT_LanguageManager.getTranslation("raddef") + ": " + (Math.round(radiationDef * 1000) / 10.0) + "%"); + if (mStat.get(StatType.RADIATIONDEFENCE) > 0.01d) { + tagList.add(GT_LanguageManager.getTranslation("Radiation Defence") + ": " + (Math.round(mStat.get(StatType.RADIATIONDEFENCE) * 1000) / 10.0) + "%"); } } info = tagList; @@ -242,12 +221,12 @@ public class ArmorData { ModularArmor_Item tmp = (ModularArmor_Item) stack.getItem(); ContainerModularArmor tmp2 = new ContainerBasicArmor(aPlayer, new InventoryArmor(ModularArmor_Item.class, stack)); if ((this.type + i) == 4) { - fluid = ArmorCalculation.getFluid(tmp2.mInvArmor.parts, tankCap); + fluid = ArmorCalculation.getFluid(tmp2.mInvArmor.parts, Math.round(mStat.get(StatType.TANKCAP))); } if (maxCharge > 0 && charge < maxCharge) { int loaded = ArmorCalculation.deChargeBatterys(tmp2.mInvArmor.parts, maxCharge - charge); charge = charge + loaded; - tmp.data.partsCharge -= loaded; + change(mStat, StatType.PARTSCHARGE, -loaded); } switch (tmp.armorType) { @@ -270,39 +249,39 @@ public class ArmorData { } } if (helmet != null && chestplate != null && leggings != null && boots != null) { - fullArmor = true; + set(mBStat, StatType.FULLARMOR, true); } else { - fullArmor = false; + set(mBStat, StatType.FULLARMOR, false); } - fullRadiationDef = fullArmor && helmet.radiationDef > 0.9f && chestplate.radiationDef > 0.9f && leggings.radiationDef > 0.9f && boots.radiationDef > 0.9f; - fullElectricDef = fullArmor && helmet.electricDef > 0.9f && chestplate.electricDef > 0.9f && leggings.electricDef > 0.9f && boots.electricDef > 0.9f; - magnet = 0; - thorns = 0; - processingPower = 0; - processingPowerUsed = 0; + set(mBStat, StatType.FULLRADIATIONARMOR, mBStat.get(StatType.FULLARMOR) && helmet.mStat.get(StatType.RADIATIONDEFENCE) > 0.9f && chestplate.mStat.get(StatType.RADIATIONDEFENCE) > 0.9f && leggings.mStat.get(StatType.RADIATIONDEFENCE) > 0.9f && boots.mStat.get(StatType.RADIATIONDEFENCE) > 0.9f); + set(mBStat, StatType.FULLELECTRICARMOR, mBStat.get(StatType.FULLARMOR) && chestplate.mStat.get(StatType.ELECTRICALDEFENCE) > 0.9f && chestplate.mStat.get(StatType.ELECTRICALDEFENCE) > 0.9f && leggings.mStat.get(StatType.ELECTRICALDEFENCE) > 0.9f && boots.mStat.get(StatType.ELECTRICALDEFENCE) > 0.9f); + set(mBStat, StatType.MAGNET, 0); + set(mBStat, StatType.THORNS, 0); + set(mBStat, StatType.PROCESSINGPOWER, 0); + set(mBStat, StatType.PROCESSINGPOWERUSED, 0); if (helmet != null) { - magnet += helmet.magnetSingle; - thorns += helmet.thornsSingle; - processingPower += helmet.partProcessing; - processingPowerUsed += helmet.partProcessingUsed; + change(mStat, StatType.MAGNET, helmet.mStat.get(StatType.MAGNET)); + change(mStat, StatType.THORNS, helmet.mStat.get(StatType.THORNS)); + change(mStat, StatType.PROCESSINGPOWER, helmet.mStat.get(StatType.PROCESSINGPOWER)); + change(mStat, StatType.PROCESSINGPOWERUSED, helmet.mStat.get(StatType.PROCESSINGPOWERUSED)); } if (chestplate != null) { - magnet += chestplate.magnetSingle; - thorns += chestplate.thornsSingle; - processingPower += chestplate.partProcessing; - processingPowerUsed += chestplate.partProcessingUsed; + change(mStat, StatType.MAGNET, chestplate.mStat.get(StatType.MAGNET)); + change(mStat, StatType.THORNS, chestplate.mStat.get(StatType.THORNS)); + change(mStat, StatType.PROCESSINGPOWER, chestplate.mStat.get(StatType.PROCESSINGPOWER)); + change(mStat, StatType.PROCESSINGPOWERUSED, chestplate.mStat.get(StatType.PROCESSINGPOWERUSED)); } if (leggings != null) { - magnet += leggings.magnetSingle; - thorns += leggings.thornsSingle; - processingPower += leggings.partProcessing; - processingPowerUsed += leggings.partProcessingUsed; + change(mStat, StatType.MAGNET, leggings.mStat.get(StatType.MAGNET)); + change(mStat, StatType.THORNS, leggings.mStat.get(StatType.THORNS)); + change(mStat, StatType.PROCESSINGPOWER, leggings.mStat.get(StatType.PROCESSINGPOWER)); + change(mStat, StatType.PROCESSINGPOWERUSED, leggings.mStat.get(StatType.PROCESSINGPOWERUSED)); } if (boots != null) { - magnet += boots.magnetSingle; - thorns += boots.thornsSingle; - processingPower += boots.partProcessing; - processingPowerUsed += boots.partProcessingUsed; + change(mStat, StatType.MAGNET, boots.mStat.get(StatType.MAGNET)); + change(mStat, StatType.THORNS, boots.mStat.get(StatType.THORNS)); + change(mStat, StatType.PROCESSINGPOWER, boots.mStat.get(StatType.PROCESSINGPOWER)); + change(mStat, StatType.PROCESSINGPOWERUSED, boots.mStat.get(StatType.PROCESSINGPOWERUSED)); } isTopItem = false; if (type == 0) { @@ -315,18 +294,41 @@ public class ArmorData { isTopItem = true; } if (helmet != null) { - maxWeight = helmet.weight; + maxWeight = helmet.mStat.get(StatType.WEIGHT); } if (chestplate != null) { - maxWeight += chestplate.weight; + maxWeight += chestplate.mStat.get(StatType.WEIGHT); } if (leggings != null) { - maxWeight += leggings.weight; + maxWeight += leggings.mStat.get(StatType.WEIGHT); } if (boots != null) { - maxWeight += boots.weight; + maxWeight += boots.mStat.get(StatType.WEIGHT); } } + + public void set(Map aMap, StatType aType, boolean aSet){ + if(aMap.containsKey(aType))aMap.remove(aType); + aMap.put(aType, aSet); + } + + public void set(Map aMap, StatType aType, float aSet){ + if(aMap.containsKey(aType))aMap.remove(aType); + aMap.put(aType, aSet); + } + + public void change(Map aMap, StatType aType, float aChange){ + float tChange = 0; + if(aMap==null)System.out.println("changeMapnull"); + if(aMap.containsKey(aType)){tChange = (float) aMap.get(aType); + aMap.remove(aType); + } + aMap.put(aType, (tChange + aChange)); + } + + public void dechargeComponents(int aCharge){ + + } public double getBaseAbsorptionRatio() { switch (this.type) { diff --git a/src/main/java/gregtech/common/items/armor/ModularArmor_Item.java b/src/main/java/gregtech/common/items/armor/ModularArmor_Item.java index c305278543..6327a8c8ba 100644 --- a/src/main/java/gregtech/common/items/armor/ModularArmor_Item.java +++ b/src/main/java/gregtech/common/items/armor/ModularArmor_Item.java @@ -2,6 +2,10 @@ package gregtech.common.items.armor; import gregtech.api.damagesources.GT_DamageSources; import gregtech.api.enums.GT_Values; +import gregtech.common.items.armor.components.StatType; +import gregtech.common.items.armor.gui.ContainerBasicArmor; +import gregtech.common.items.armor.gui.ContainerModularArmor; +import gregtech.common.items.armor.gui.InventoryArmor; import ic2.core.IC2; import java.util.ArrayList; @@ -86,24 +90,24 @@ public class ModularArmor_Item extends ItemArmor implements ISpecialArmor, IGogg if (player != null && armor != null && source != null) { double tmp = 0.0d; if (source.isMagicDamage()) { - tmp = data.magicDef; + tmp = data.mStat.get(StatType.MAGICDEFENCE); } else if (source == GT_DamageSources.getRadioactiveDamage()) { - tmp = data.radiationDef; + tmp = data.mStat.get(StatType.RADIATIONDEFENCE); } else if (source == GT_DamageSources.getElectricDamage()) { - tmp = data.electricDef; + tmp = data.mStat.get(StatType.ELECTRICALDEFENCE); } else if (source == DamageSource.wither) { - tmp = data.witherDef; + tmp = data.mStat.get(StatType.WITHERDEFENCE); } else if (source.isFireDamage() || source == GT_DamageSources.getHeatDamage()) { - tmp = data.fireDef; + tmp = data.mStat.get(StatType.FIREDEFENCE); } else if (source.isExplosion()) { - tmp = data.explosionDef; + tmp = data.mStat.get(StatType.EXPLOSIONDEFENCE); } else if (source.isProjectile()) { - tmp = data.projectileDef; + tmp = data.mStat.get(StatType.PROJECTILEDEFENCE); } else { - tmp = data.physicalDef; + tmp = data.mStat.get(StatType.PHYSICALDEFENCE); } - if (data.thorns > 0.1d && source != DamageSource.fall && source.getSourceOfDamage() != null) { - source.getSourceOfDamage().attackEntityFrom(new DamageSource("Thorns"), data.thorns); + if (data.mStat.get(StatType.THORNS) > 0.1d && source != DamageSource.fall && source.getSourceOfDamage() != null) { + source.getSourceOfDamage().attackEntityFrom(new DamageSource("Thorns"), data.mStat.get(StatType.THORNS)); } // fallDamage @@ -111,12 +115,12 @@ public class ModularArmor_Item extends ItemArmor implements ISpecialArmor, IGogg int fallDef = 0; ItemStack stack = player.getEquipmentInSlot(1); if (stack != null && stack.getItem() instanceof ModularArmor_Item) { - fallDef = (int) data.boots.fallDef; + fallDef = Math.round(data.boots.mStat.get(StatType.FALLDEFENCE)); } tmp = 1.0d - (fallDef > damage ? 0.0d : (1.0d - tmp) * 0.5d); } if (tmp == 0.0d) { - tmp = data.physicalDef; + tmp = data.mStat.get(StatType.PHYSICALDEFENCE); } if (openGuiNr == 2) { tmp = 1.0f - ((1.0f - tmp) / 2.0f); @@ -133,7 +137,7 @@ public class ModularArmor_Item extends ItemArmor implements ISpecialArmor, IGogg if (data == null) { data = fillArmorData(player, armor); } - int tmp = (int) -Math.floor(-(data.getBaseAbsorptionRatio() * 20 * data.physicalDef)); + int tmp = (int) -Math.floor(-(data.getBaseAbsorptionRatio() * 20 * data.mStat.get(StatType.PHYSICALDEFENCE))); return tmp; } @@ -179,10 +183,10 @@ public class ModularArmor_Item extends ItemArmor implements ISpecialArmor, IGogg if (FMLCommonHandler.instance().getEffectiveSide().isServer() && event.entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.entity; ItemStack armor = player.inventory.armorInventory[0]; - if (data != null && event != null && data.type == 3 && data.charge >= data.pistonEUusage && event.distance - 3 <= data.fallDef) { + if (data != null && event != null && data.type == 3 && data.charge >= data.mStat.get(StatType.PISTONEUUSAGE) && event.distance - 3 <= data.mStat.get(StatType.FALLDEFENCE)) { event.setCanceled(true); - } else if (data != null && event != null && data.type == 3 && data.charge >= data.pistonEUusage) { - event.distance -= data.fallDef; + } else if (data != null && event != null && data.type == 3 && data.charge >= data.mStat.get(StatType.PISTONEUUSAGE)) { + event.distance -= data.mStat.get(StatType.FALLDEFENCE); } } } @@ -226,14 +230,14 @@ public class ModularArmor_Item extends ItemArmor implements ISpecialArmor, IGogg } } // Fill Air Tank - if (data.tooltipUpdate == 40 && data.processingPower > data.processingPowerUsed && data.type == 0 && data.fluid != null - && data.fluid.getUnlocalizedName().equals("oxygen") && data.fluid.amount < data.tankCap && data.charge > data.electrolyzerEUusage) { - data.charge -= data.electrolyzerEUusage; + if (data.tooltipUpdate == 40 && data.mStat.get(StatType.PROCESSINGPOWER) > data.mStat.get(StatType.PROCESSINGPOWERUSED) && data.type == 0 && data.fluid != null + && data.fluid.getUnlocalizedName().equals("oxygen") && data.fluid.amount < data.mStat.get(StatType.TANKCAP) && data.charge > data.mStat.get(StatType.ELECTROLYZEREUUSAGE)) { + data.charge -= data.mStat.get(StatType.ELECTROLYZEREUUSAGE); ItemStack stack = aPlayer.getEquipmentInSlot(4); if (stack != null && stack.getItem() instanceof ModularArmor_Item) { ModularArmor_Item tmp = (ModularArmor_Item) stack.getItem(); ContainerModularArmor tmp2 = new ContainerBasicArmor(aPlayer, new InventoryArmor(ModularArmor_Item.class, stack)); - ArmorCalculation.useFluid(tmp2.mInvArmor.parts, -data.electrolyzerProd); + ArmorCalculation.useFluid(tmp2.mInvArmor.parts, -Math.round(data.mStat.get(StatType.ELECTROLYZERPROD))); } } @@ -263,7 +267,7 @@ public class ModularArmor_Item extends ItemArmor implements ISpecialArmor, IGogg // Night Vision if (timer >= 200) { timer = 0; - if (data.processingPower > data.processingPowerUsed && data.helmet != null && data.helmet.nightVision && data.charge > 3) { + if (data.mStat.get(StatType.PROCESSINGPOWER) > data.mStat.get(StatType.PROCESSINGPOWERUSED) && data.helmet != null && data.helmet.mBStat.get(StatType.NIGHTVISION) && data.charge > 3) { aPlayer.addPotionEffect(new PotionEffect(Potion.nightVision.getId(), 500, -3)); data.charge -= 4; } else { @@ -281,12 +285,13 @@ public class ModularArmor_Item extends ItemArmor implements ISpecialArmor, IGogg } // Item Magnet - if (data.magnet > 1) { + if (data.mStat.get(StatType.MAGNET) > 1) { double x = aPlayer.posX; double y = aPlayer.posY - (aPlayer.worldObj.isRemote ? 1.62 : 0) + 0.75; double z = aPlayer.posZ; + int tMagnet = Math.round(data.mStat.get(StatType.MAGNET)); List<EntityItem> items = aPlayer.worldObj.getEntitiesWithinAABB(EntityItem.class, - AxisAlignedBB.getBoundingBox(x - data.magnet, y - data.magnet, z - data.magnet, x + data.magnet, y + data.magnet, z + data.magnet)); + AxisAlignedBB.getBoundingBox(x - tMagnet, y - tMagnet, z - tMagnet, x + tMagnet, y + tMagnet, z + tMagnet)); for (EntityItem item : items) { ItemStack stack = item.getEntityItem(); if (!item.isDead && stack != null) { @@ -297,21 +302,21 @@ public class ModularArmor_Item extends ItemArmor implements ISpecialArmor, IGogg // Weight limit calcuation double motorSpeed = 0; if (data.leggings != null) { - motorSpeed = data.leggings.motorPower; + motorSpeed = data.leggings.mStat.get(StatType.MOTPRPOWER); } if (data.maxWeight > 4000) { - if (data.leggings != null && data.leggings.charge > data.leggings.motorEUusage) { + if (data.leggings != null && data.leggings.charge > data.leggings.mStat.get(StatType.MOTOREUUSAGE)) { motorSpeed -= data.maxWeight - 4000; - data.leggings.charge -= (data.leggings.motorEUusage / 100); + data.leggings.charge -= (data.leggings.mStat.get(StatType.MOTOREUUSAGE) / 100); } else { aPlayer.motionX *= (4000.0d / data.maxWeight); aPlayer.motionZ *= (4000.0d / data.maxWeight); } } - if (data.leggings != null && data.leggings.charge > data.leggings.motorEUusage && data.processingPower > data.processingPowerUsed && motorSpeed > 0 + if (data.leggings != null && data.leggings.charge > data.leggings.mStat.get(StatType.MOTOREUUSAGE) && data.mStat.get(StatType.PROCESSINGPOWER) > data.mStat.get(StatType.PROCESSINGPOWERUSED) && motorSpeed > 0 && aPlayer.isSprinting() && jumpticks > 0 && (aPlayer.onGround && Math.abs(aPlayer.motionX) + Math.abs(aPlayer.motionZ) > 0.10000000149011612D)) { - data.leggings.charge -= data.leggings.motorEUusage; + data.leggings.charge -= data.leggings.mStat.get(StatType.MOTOREUUSAGE); motorSpeed = Math.sqrt(motorSpeed) / 3; float var7 = (float) (0.02f * motorSpeed); @@ -328,8 +333,8 @@ public class ModularArmor_Item extends ItemArmor implements ISpecialArmor, IGogg } // jump+step up assist - if (data.processingPower > data.processingPowerUsed && data.leggings != null) { - double stepup = data.leggings.pistonJumpboost; + if (data.mStat.get(StatType.PROCESSINGPOWER) > data.mStat.get(StatType.PROCESSINGPOWERUSED) && data.leggings != null) { + double stepup = data.leggings.mStat.get(StatType.PISTONJUMPBOOST); if (stepup > 1) { aPlayer.stepHeight = 1.0f; } @@ -349,7 +354,7 @@ public class ModularArmor_Item extends ItemArmor implements ISpecialArmor, IGogg List<PotionEffect> effects = new LinkedList(aPlayer.getActivePotionEffects()); for (PotionEffect effect : effects) { int id = effect.getPotionID(); - if (id == 24 && data.fullRadiationDef) { + if (id == 24 && data.mBStat.get(StatType.FULLRADIATIONARMOR)) { aPlayer.removePotionEffect(id); } } @@ -415,7 +420,7 @@ public class ModularArmor_Item extends ItemArmor implements ISpecialArmor, IGogg if (data == null) { data = fillArmorData((EntityPlayer) aPlayer, aStack); } - return data.thaumicGoggles && data.armorTier > 0 && data.charge > 0; + return data.mBStat.get(StatType.THAUMICGOGGLES) && data.armorTier > 0 && data.charge > 0; } @Override @@ -423,7 +428,7 @@ public class ModularArmor_Item extends ItemArmor implements ISpecialArmor, IGogg if (data == null) { data = fillArmorData((EntityPlayer) aPlayer, aStack); } - return data.thaumicGoggles && data.armorTier > 0 && data.charge > 0; + return data.mBStat.get(StatType.THAUMICGOGGLES) && data.armorTier > 0 && data.charge > 0; } public ArmorData fillArmorData(EntityPlayer player, ItemStack stack) { diff --git a/src/main/java/gregtech/common/items/armor/Values.java b/src/main/java/gregtech/common/items/armor/Values.java deleted file mode 100644 index cad53d645f..0000000000 --- a/src/main/java/gregtech/common/items/armor/Values.java +++ /dev/null @@ -1,125 +0,0 @@ -package gregtech.common.items.armor; - -import java.util.HashMap; -import java.util.Map; - -import gregtech.api.enums.Materials; - -public class Values { - public static Values INSTANCE; - public static final Map<Materials, Values> MATERIAL_MAP = new HashMap<Materials, Values>(); - - public int weight; - public float physicalDef; - public float projectileDef; - public float fireDef; - public float magicDef; - public float explosionDef; - - public Values(Materials material, int weight, float physicalDef, float projectileDef, float fireDef, float magicDef, float explosionDef) { - this.weight = weight; - this.physicalDef = physicalDef; - this.projectileDef = projectileDef; - this.fireDef = fireDef; - this.magicDef = magicDef; - this.explosionDef = explosionDef; - } - - public Values() { - INSTANCE = this; - MATERIAL_MAP.put(Materials._NULL, new Values(Materials._NULL, 0, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f)); - MATERIAL_MAP.put(Materials.Rubber, new Values(Materials.Rubber, 60, 0.06f, 0.06f, 0.02f, 0.1f, 0.1f)); - MATERIAL_MAP.put(Materials.Wood, new Values(Materials.Wood, 80, 0.08f, 0.09f, 0.02f, 0.08f, 0.08f)); - MATERIAL_MAP.put(Materials.Brass, new Values(Materials.Brass, 140, 0.12f, 0.12f, 0.10f, 0.10f, 0.12f)); - MATERIAL_MAP.put(Materials.Copper, new Values(Materials.Copper, 140, 0.11f, 0.11f, 0.10f, 0.10f, 0.11f)); - MATERIAL_MAP.put(Materials.Lead, new Values(Materials.Lead, 280, 0.05f, 0.05f, 0.05f, 0.05f, 0.05f)); - MATERIAL_MAP.put(Materials.Plastic, new Values(Materials.Plastic, 60, 0.10f, 0.10f, 0.02f, 0.02f, 0.10f)); - MATERIAL_MAP.put(Materials.Aluminium, new Values(Materials.Aluminium, 120, 0.14f, 0.14f, 0.12f, 0.12f, 0.14f)); - MATERIAL_MAP.put(Materials.AstralSilver, new Values(Materials.AstralSilver, 180, 0.10f, 0.10f, 0.10f, 0.18f, 0.10f)); - MATERIAL_MAP.put(Materials.BismuthBronze, new Values(Materials.BismuthBronze, 160, 0.12f, 0.12f, 0.10f, 0.10f, 0.12f)); - MATERIAL_MAP.put(Materials.BlackBronze, new Values(Materials.BlackBronze, 160, 0.13f, 0.13f, 0.10f, 0.10f, 0.13f)); - MATERIAL_MAP.put(Materials.BlackSteel, new Values(Materials.BlackSteel, 200, 0.19f, 0.19f, 0.17f, 0.17f, 0.19f)); - MATERIAL_MAP.put(Materials.BlueSteel, new Values(Materials.BlueSteel, 200, 0.21f, 0.21f, 0.19f, 0.19f, 0.21f)); - MATERIAL_MAP.put(Materials.Bronze, new Values(Materials.Bronze, 160, 0.13f, 0.13f, 0.12f, 0.12f, 0.13f)); - MATERIAL_MAP.put(Materials.CobaltBrass, new Values(Materials.CobaltBrass, 180, 0.15f, 0.15f, 0.14f, 0.14f, 0.15f)); - MATERIAL_MAP.put(Materials.DamascusSteel, new Values(Materials.DamascusSteel, 200, 0.22f, 0.22f, 0.20f, 0.20f, 0.22f)); - MATERIAL_MAP.put(Materials.Electrum, new Values(Materials.Electrum, 250, 0.11f, 0.11f, 0.10f, 0.10f, 0.11f)); - MATERIAL_MAP.put(Materials.Emerald, new Values(Materials.Emerald, 160, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f)); - MATERIAL_MAP.put(Materials.Gold, new Values(Materials.Gold, 300, 0.09f, 0.09f, 0.05f, 0.25f, 0.09f)); - MATERIAL_MAP.put(Materials.GreenSapphire, new Values(Materials.GreenSapphire, 160, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f)); - MATERIAL_MAP.put(Materials.Invar, new Values(Materials.Invar, 190, 0.10f, 0.10f, 0.22f, 0.22f, 0.10f)); - MATERIAL_MAP.put(Materials.Iron, new Values(Materials.Iron, 200, 0.12f, 0.12f, 0.10f, 0.10f, 0.12f)); - MATERIAL_MAP.put(Materials.IronWood, new Values(Materials.IronWood, 150, 0.17f, 0.17f, 0.02f, 0.02f, 0.17f)); - MATERIAL_MAP.put(Materials.Magnalium, new Values(Materials.Magnalium, 120, 0.15f, 0.15f, 0.17f, 0.17f, 0.15f)); - MATERIAL_MAP.put(Materials.NeodymiumMagnetic, new Values(Materials.NeodymiumMagnetic, 220, 0.14f, 0.14f, 0.14f, 0.14f, 0.14f)); - MATERIAL_MAP.put(Materials.Manganese, new Values(Materials.Manganese, 180, 0.15f, 0.15f, 0.14f, 0.14f, 0.15f)); - MATERIAL_MAP.put(Materials.MeteoricIron, new Values(Materials.MeteoricIron, 200, 0.18f, 0.18f, 0.16f, 0.16f, 0.18f)); - MATERIAL_MAP.put(Materials.MeteoricSteel, new Values(Materials.MeteoricSteel, 200, 0.21f, 0.21f, 0.19f, 0.19f, 0.21f)); - MATERIAL_MAP.put(Materials.Molybdenum, new Values(Materials.Molybdenum, 140, 0.14f, 0.14f, 0.14f, 0.14f, 0.14f)); - MATERIAL_MAP.put(Materials.Nickel, new Values(Materials.Nickel, 180, 0.12f, 0.12f, 0.15f, 0.15f, 0.12f)); - MATERIAL_MAP.put(Materials.Olivine, new Values(Materials.Olivine, 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f)); - MATERIAL_MAP.put(Materials.Opal, new Values(Materials.Opal, 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f)); - MATERIAL_MAP.put(Materials.Palladium, new Values(Materials.Palladium, 280, 0.14f, 0.14f, 0.12f, 0.12f, 0.14f)); - MATERIAL_MAP.put(Materials.Platinum, new Values(Materials.Platinum, 290, 0.15f, 0.15f, 0.13f, 0.13f, 0.15f)); - MATERIAL_MAP.put(Materials.GarnetRed, new Values(Materials.GarnetRed, 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f)); - MATERIAL_MAP.put(Materials.RedSteel, new Values(Materials.RedSteel, 200, 0.20f, 0.20f, 0.18f, 0.18f, 0.20f)); - MATERIAL_MAP.put(Materials.RoseGold, new Values(Materials.RoseGold, 240, 0.10f, 0.10f, 0.08f, 0.18f, 0.10f)); - MATERIAL_MAP.put(Materials.Ruby, new Values(Materials.Ruby, 180, 0.10f, 0.10f, 0.20f, 0.20f, 0.10f)); - MATERIAL_MAP.put(Materials.Sapphire, new Values(Materials.Sapphire, 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f)); - MATERIAL_MAP.put(Materials.Silver, new Values(Materials.Silver, 220, 0.11f, 0.11f, 0.07f, 0.24f, 0.11f)); - MATERIAL_MAP.put(Materials.StainlessSteel, new Values(Materials.StainlessSteel, 200, 0.16f, 0.16f, 0.21f, 0.21f, 0.16f)); - MATERIAL_MAP.put(Materials.Steel, new Values(Materials.Steel, 200, 0.18f, 0.18f, 0.16f, 0.16f, 0.18f)); - MATERIAL_MAP.put(Materials.SterlingSilver, new Values(Materials.SterlingSilver, 210, 0.15f, 0.15f, 0.13f, 0.13f, 0.15f)); - MATERIAL_MAP.put(Materials.Tanzanite, new Values(Materials.Tanzanite, 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f)); - MATERIAL_MAP.put(Materials.Thorium, new Values(Materials.Thorium, 280, 0.13f, 0.13f, 0.16f, 0.16f, 0.13f)); - MATERIAL_MAP.put(Materials.WroughtIron, new Values(Materials.WroughtIron, 200, 0.14f, 0.14f, 0.12f, 0.12f, 0.14f)); - MATERIAL_MAP.put(Materials.GarnetYellow, new Values(Materials.GarnetYellow, 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f)); - MATERIAL_MAP.put(Materials.Carbon, new Values(Materials.Carbon, 60, 0.06f, 0.23f, 0.05f, 0.05f, 0.06f)); - MATERIAL_MAP.put(Materials.InfusedAir,new Values(Materials.InfusedAir, 10, 0.10f, 0.10f, 0.10f,0.10f, 0.10f)); - MATERIAL_MAP.put(Materials.Amethyst, new Values(Materials.Amethyst, 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f)); - MATERIAL_MAP.put(Materials.InfusedWater,new Values(Materials.InfusedWater, 150, 0.10f, 0.10f,0.20f, 0.20f, 0.10f)); - MATERIAL_MAP.put(Materials.BlueTopaz, new Values(Materials.BlueTopaz, 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f)); - MATERIAL_MAP.put(Materials.Chrome, new Values(Materials.Chrome, 200, 0.12f, 0.12f, 0.21f, 0.21f, 0.12f)); - MATERIAL_MAP.put(Materials.Cobalt, new Values(Materials.Cobalt, 220, 0.16f, 0.16f, 0.14f, 0.14f, 0.16f)); - MATERIAL_MAP.put(Materials.DarkIron, new Values(Materials.DarkIron, 200, 0.21f, 0.21f, 0.19f, 0.19f, 0.21f)); - MATERIAL_MAP.put(Materials.Diamond, new Values(Materials.Diamond, 200, 0.20f, 0.20f, 0.22f, 0.22f, 0.20f)); - MATERIAL_MAP.put(Materials.Enderium, new Values(Materials.Enderium, 250, 0.22f, 0.22f, 0.21f, 0.21f, 0.22f)); - MATERIAL_MAP.put(Materials.ElectrumFlux,new Values(Materials.ElectrumFlux, 180, 0.19f, 0.19f, 0.16f, 0.16f, 0.19f)); - MATERIAL_MAP.put(Materials.Force, new Values(Materials.Force, 180, 0.10f, 0.10f, 0.20f, 0.20f, 0.10f)); - MATERIAL_MAP.put(Materials.HSLA, new Values(Materials.HSLA, 200, 0.21f, 0.21f, 0.17f, 0.17f, 0.21f)); - MATERIAL_MAP.put(Materials.InfusedFire,new Values(Materials.InfusedFire, 150, 0.12f, 0.10f, 0.30f, 0.30f, 0.12f)); - MATERIAL_MAP.put(Materials.InfusedGold, new Values(Materials.InfusedGold, 300, 0.15f, 0.15f, 0.05f, 0.05f, 0.15f)); - MATERIAL_MAP.put(Materials.Mithril, new Values(Materials.Mithril, 200, 0.25f, 0.25f, 0.10f, 0.30f, 0.25f)); - MATERIAL_MAP.put(Materials.InfusedOrder,new Values(Materials.InfusedOrder, 150, 0.18f, 0.22f,0.22f, 0.25f, 0.22f)); - MATERIAL_MAP.put(Materials.Steeleaf, new Values(Materials.Steeleaf, 120, 0.16f, 0.16f, 0.06f, 0.06f, 0.16f)); - MATERIAL_MAP.put(Materials.InfusedEarth,new Values(Materials.InfusedEarth, 350, 0.30f, 0.30f,0.30f, 0.30f, 0.30f)); - MATERIAL_MAP.put(Materials.Thaumium, new Values(Materials.Thaumium, 200, 0.18f, 0.19f, 0.20f, 0.30f, 0.18f)); - MATERIAL_MAP.put(Materials.Titanium, new Values(Materials.Titanium, 140, 0.20f, 0.20f, 0.18f, 0.18f, 0.20f)); - MATERIAL_MAP.put(Materials.Tungsten, new Values(Materials.Tungsten, 270, 0.27f, 0.26f, 0.23f, 0.26f, 0.26f)); - MATERIAL_MAP.put(Materials.Topaz, new Values(Materials.Topaz, 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f)); - MATERIAL_MAP.put(Materials.Ultimet, new Values(Materials.Ultimet, 180, 0.21f, 0.21f, 0.19f, 0.19f, 0.21f)); - MATERIAL_MAP.put(Materials.Uranium, new Values(Materials.Uranium, 290, 0.27f, 0.23f, 0.20f, 0.15f, 0.21f)); - MATERIAL_MAP.put(Materials.Vinteum, new Values(Materials.Vinteum, 180, 0.10f, 0.12f, 0.14f, 0.28f, 0.12f)); - MATERIAL_MAP.put(Materials.Duranium, new Values(Materials.Duranium, 140, 0.24f, 0.24f, 0.24f, 0.24f, 0.24f)); - MATERIAL_MAP.put(Materials.Iridium, new Values(Materials.Iridium, 220, 0.24f, 0.24f, 0.22f, 0.22f, 0.24f)); - MATERIAL_MAP.put(Materials.Osmiridium, new Values(Materials.Osmiridium, 240, 0.18f, 0.18f, 0.16f, 0.16f, 0.18f)); - MATERIAL_MAP.put(Materials.Osmium, new Values(Materials.Osmium, 250, 0.12f, 0.12f, 0.10f, 0.10f, 0.12f)); - MATERIAL_MAP.put(Materials.Naquadah, new Values(Materials.Naquadah, 250, 0.27f, 0.27f, 0.25f, 0.25f, 0.27f)); - MATERIAL_MAP.put(Materials.NetherStar, new Values(Materials.NetherStar, 140, 0.22f, 0.22f, 0.24f, 0.24f, 0.22f)); - MATERIAL_MAP.put(Materials.InfusedEntropy,new Values(Materials.InfusedEntropy, 150, 0.10f, 0.10f,0.10f, 0.10f, 0.10f)); - MATERIAL_MAP.put(Materials.Tritanium, new Values(Materials.Tritanium, 140, 0.26f, 0.26f, 0.26f, 0.26f, 0.26f)); - MATERIAL_MAP.put(Materials.TungstenSteel, new Values(Materials.TungstenSteel, 270, 0.30f, 0.28f, 0.25f, 0.28f, 0.30f)); - MATERIAL_MAP.put(Materials.Adamantium, new Values(Materials.Adamantium, 200, 0.28f, 0.28f, 0.26f, 0.30f, 0.30f)); - MATERIAL_MAP.put(Materials.NaquadahAlloy, new Values(Materials.NaquadahAlloy, 300, 0.33f, 0.33f, 0.33f, 0.33f, 0.33f)); - MATERIAL_MAP.put(Materials.Neutronium, new Values(Materials.Neutronium, 600, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f)); - } - - public Values getValues(Materials mat) { - Values tmp = MATERIAL_MAP.get(mat); - - if (tmp == null) { - return MATERIAL_MAP.get(Materials._NULL); - } - return tmp; - } -} diff --git a/src/main/java/gregtech/common/items/armor/components/ArmorComponent.java b/src/main/java/gregtech/common/items/armor/components/ArmorComponent.java new file mode 100644 index 0000000000..caf33a3783 --- /dev/null +++ b/src/main/java/gregtech/common/items/armor/components/ArmorComponent.java @@ -0,0 +1,57 @@ +package gregtech.common.items.armor.components; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import gregtech.api.objects.ItemData; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import gregtech.common.items.armor.ArmorData; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + +public abstract class ArmorComponent implements IArmorComponent { + public ItemStack mStack; + public String mOreDict; + public static Map<String, ArmorComponent> mOreDicts = new HashMap<String, ArmorComponent>(); + public static Map<String, ArmorComponent> mStacks = new HashMap<String, ArmorComponent>(); + public Map<StatType,Float> mStat = new HashMap<StatType,Float>(); + public Map<StatType,Boolean> mBStat = new HashMap<StatType,Boolean>(); + + public ArmorComponent(String aOreDict, boolean aElectric, float aWeight){ + mOreDict = aOreDict; + mBStat.put(StatType.ELECTRIC, aElectric); + mOreDicts.put(aOreDict, this); + for(ItemStack tStack : OreDictionary.getOres(aOreDict))if(tStack!=null)mStacks.put(tStack.getUnlocalizedName(), this); + mStat.put(StatType.WEIGHT, aWeight); + } + + public ArmorComponent(ItemStack aStack, boolean aElectric, float aWeight){ + mStack = aStack; + mBStat.put(StatType.ELECTRIC, aElectric); + mStacks.put(aStack.getUnlocalizedName(), this); + mStat.put(StatType.WEIGHT, aWeight); + } + + @Override + public boolean isArmorComponent(ItemStack aStack) { + if(mStack!=null && GT_Utility.areStacksEqual(mStack, aStack, true)){return true;} + if(mOreDict!=null){ + for(ItemStack tStack : OreDictionary.getOres(mOreDict)) + if(GT_Utility.areStacksEqual(tStack, aStack, true))return true;} + return false; + } + + public void addVal(StatType aType, ArmorData aArmorData){ + float tArmorDef = 0.0f; + if(aArmorData.mStat.containsKey(aType)){ + tArmorDef = aArmorData.mStat.get(aType); + aArmorData.mStat.remove(aType);} + aArmorData.mStat.put(aType, tArmorDef + mStat.get(aType)); + } + + public abstract void calculateArmor(ArmorData aArmorData); + +} diff --git a/src/main/java/gregtech/common/items/armor/components/ArmorComponentBattery.java b/src/main/java/gregtech/common/items/armor/components/ArmorComponentBattery.java new file mode 100644 index 0000000000..52ec405e98 --- /dev/null +++ b/src/main/java/gregtech/common/items/armor/components/ArmorComponentBattery.java @@ -0,0 +1,19 @@ +package gregtech.common.items.armor.components; + +import gregtech.common.items.armor.ArmorData; +import net.minecraft.item.ItemStack; + +public class ArmorComponentBattery extends ArmorComponent{ + public ArmorComponentBattery(ItemStack aStack, boolean aElectric, float aWeight, float aBatteryCapacity) { + super(aStack, aElectric, aWeight); + mStat.put(StatType.WEIGHT, aWeight); + mStat.put(StatType.BATTERYCAPACITY, aBatteryCapacity); + } + + @Override + public void calculateArmor(ArmorData aArmorData) { + addVal(StatType.WEIGHT, aArmorData); + addVal(StatType.BATTERYCAPACITY, aArmorData); + } + +} diff --git a/src/main/java/gregtech/common/items/armor/components/ArmorComponentFunction.java b/src/main/java/gregtech/common/items/armor/components/ArmorComponentFunction.java new file mode 100644 index 0000000000..99960d78f4 --- /dev/null +++ b/src/main/java/gregtech/common/items/armor/components/ArmorComponentFunction.java @@ -0,0 +1,22 @@ +package gregtech.common.items.armor.components; + +import gregtech.common.items.armor.ArmorData; +import net.minecraft.item.ItemStack; + +public class ArmorComponentFunction extends ArmorComponent{ + StatType mType; + public ArmorComponentFunction(ItemStack aStack, boolean aElectric, float aWeight, StatType aType, float aProcessingUsed) { + super(aStack, aElectric, aWeight); + mType = aType; + mStat.put(StatType.WEIGHT, aWeight); + mStat.put(StatType.PROCESSINGPOWERUSED, aProcessingUsed); + } + + @Override + public void calculateArmor(ArmorData aArmorData) { + addVal(StatType.WEIGHT, aArmorData); + addVal(StatType.PROCESSINGPOWERUSED, aArmorData); + if(!aArmorData.mBStat.containsKey(mType))aArmorData.mBStat.put(mType, true); + } + +} diff --git a/src/main/java/gregtech/common/items/armor/components/ArmorElectricComponent.java b/src/main/java/gregtech/common/items/armor/components/ArmorElectricComponent.java new file mode 100644 index 0000000000..a6cfb68f5b --- /dev/null +++ b/src/main/java/gregtech/common/items/armor/components/ArmorElectricComponent.java @@ -0,0 +1,30 @@ +package gregtech.common.items.armor.components; + +import gregtech.common.items.armor.ArmorData; +import net.minecraft.item.ItemStack; + +public class ArmorElectricComponent extends ArmorComponent{ + StatType mType1; + StatType mType2; + StatType mType3; + + public ArmorElectricComponent(ItemStack aStack, float aWeight, StatType aType1, float aValue1, StatType aType2, float aValue2, StatType aType3, float aValue3) { + super(aStack, true, aWeight); + mType1 = aType1; + mType2 = aType2; + mType3 = aType3; + mStat.put(StatType.WEIGHT, aWeight); + mStat.put(aType1, aValue1); + if(mType2!=null)mStat.put(mType2, aValue2); + if(mType3!=null)mStat.put(mType3, aValue3); + } + + @Override + public void calculateArmor(ArmorData aArmorData) { + addVal(mType1, aArmorData); + if(mType2!=null)addVal(mType2, aArmorData); + if(mType3!=null)addVal(mType3, aArmorData); + addVal(StatType.WEIGHT, aArmorData); + } + +} diff --git a/src/main/java/gregtech/common/items/armor/components/ArmorPlating.java b/src/main/java/gregtech/common/items/armor/components/ArmorPlating.java new file mode 100644 index 0000000000..6ee8095ce5 --- /dev/null +++ b/src/main/java/gregtech/common/items/armor/components/ArmorPlating.java @@ -0,0 +1,67 @@ +package gregtech.common.items.armor.components; + +import gregtech.common.items.armor.ArmorData; +import net.minecraft.item.ItemStack; + +public class ArmorPlating extends ArmorComponent{ + StatType mType; + public ArmorPlating(ItemStack aStack, float aWeight, float aPhysicalDef, float aProjectileDef, float aFireDef, float aMagicDef, float aExplosionDef, float aFallDef, float aRadiationDef, float aElectricDef, float aWitherDef) { + super(aStack, false, aWeight); + addStats(aPhysicalDef, aProjectileDef, aFireDef, aMagicDef, aExplosionDef, aFallDef, aRadiationDef, aElectricDef, aWitherDef); + } + + public ArmorPlating(String aOreDict, float aWeight, float aPhysicalDef, float aProjectileDef, float aFireDef, float aMagicDef, float aExplosionDef, float aFallDef, float aRadiationDef, float aElectricDef, float aWitherDef) { + super(aOreDict, false, aWeight); + addStats(aPhysicalDef, aProjectileDef, aFireDef, aMagicDef, aExplosionDef, aFallDef, aRadiationDef, aElectricDef, aWitherDef); + } + + public ArmorPlating(String aOreDict, float aWeight, float aPhysicalDef, float aProjectileDef, float aFireDef, float aMagicDef, float aExplosionDef, float aFallDef, float aRadiationDef, float aElectricDef, float aWitherDef, StatType aType, float aSpecial) { + super(aOreDict, false, aWeight); + addStats(aPhysicalDef, aProjectileDef, aFireDef, aMagicDef, aExplosionDef, aFallDef, aRadiationDef, aElectricDef, aWitherDef); + mType = aType; + mStat.put(mType, aSpecial); + } + + public ArmorPlating(String aOreDict,float aWeight, float aPhysicalDef, float aProjectileDef, float aFireDef, float aMagicDef, float aExplosionDef) { + super(aOreDict, false, aWeight); + addStats(aPhysicalDef, aProjectileDef, aFireDef, aMagicDef, aExplosionDef, 0, 0, 0, 0); + } + + public void addStats(float aPhysicalDef, float aProjectileDef, float aFireDef, float aMagicDef, float aExplosionDef, float aFallDef, float aRadiationDef, float aElectricDef, float aWitherDef){ + mStat.put(StatType.FALLDEFENCE, aFallDef); + mStat.put(StatType.PHYSICALDEFENCE, aPhysicalDef); + mStat.put(StatType.PROJECTILEDEFENCE, aProjectileDef); + mStat.put(StatType.FIREDEFENCE, aFireDef); + mStat.put(StatType.MAGICDEFENCE, aMagicDef); + mStat.put(StatType.EXPLOSIONDEFENCE, aExplosionDef); + mStat.put(StatType.RADIATIONDEFENCE, aRadiationDef); + mStat.put(StatType.ELECTRICALDEFENCE, aElectricDef); + mStat.put(StatType.WITHERDEFENCE, aWitherDef); + } + + @Override + public void calculateArmor(ArmorData aArmorData) { + calDef(StatType.FALLDEFENCE, aArmorData); + calDef(StatType.PHYSICALDEFENCE, aArmorData); + calDef(StatType.PROJECTILEDEFENCE, aArmorData); + calDef(StatType.FIREDEFENCE, aArmorData); + calDef(StatType.MAGICDEFENCE, aArmorData); + calDef(StatType.EXPLOSIONDEFENCE, aArmorData); + calDef(StatType.RADIATIONDEFENCE, aArmorData); + calDef(StatType.ELECTRICALDEFENCE, aArmorData); + calDef(StatType.WITHERDEFENCE, aArmorData); + addVal(StatType.WEIGHT, aArmorData); + if(mType!=null)addVal(mType, aArmorData); + } + + public void calDef(StatType aType, ArmorData aArmorData){ + float tArmorDef = 0.0f; + if(aArmorData.mStat.containsKey(aType)){ + tArmorDef = aArmorData.mStat.get(aType); + aArmorData.mStat.remove(aType);} + float tComponentDef = mStat.get(aType); + aArmorData.mStat.put(aType, tArmorDef + ((1.0f -tArmorDef) * tComponentDef)); +// System.out.println("calDef: "+aType.name()+" "+tArmorDef+" "+(tArmorDef + ((1.0f -tArmorDef) * tComponentDef))); + } + +} diff --git a/src/main/java/gregtech/common/items/armor/components/IArmorComponent.java b/src/main/java/gregtech/common/items/armor/components/IArmorComponent.java new file mode 100644 index 0000000000..340601b354 --- /dev/null +++ b/src/main/java/gregtech/common/items/armor/components/IArmorComponent.java @@ -0,0 +1,11 @@ +package gregtech.common.items.armor.components; + +import gregtech.common.items.armor.ArmorData; +import net.minecraft.item.ItemStack; + +public interface IArmorComponent { + + boolean isArmorComponent(ItemStack aStack); + + void calculateArmor(ArmorData aArmorData); +} diff --git a/src/main/java/gregtech/common/items/armor/components/LoadArmorComponents.java b/src/main/java/gregtech/common/items/armor/components/LoadArmorComponents.java new file mode 100644 index 0000000000..f394caa23b --- /dev/null +++ b/src/main/java/gregtech/common/items/armor/components/LoadArmorComponents.java @@ -0,0 +1,230 @@ +package gregtech.common.items.armor.components; + +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import ic2.core.Ic2Items; + +public class LoadArmorComponents { + public static void init(){ + new ArmorPlating("plateRubber", 60, 0.06f, 0.06f, 0.02f, 0.10f, 0.10f, 2f, 0f, .25f, 0f); + new ArmorPlating("plateWood", 80, 0.08f, 0.09f, 0.02f, 0.08f, 0.08f); + new ArmorPlating("plateBrass", 140, 0.12f, 0.12f, 0.10f, 0.10f, 0.12f); + new ArmorPlating("plateCopper", 140, 0.11f, 0.11f, 0.10f, 0.10f, 0.11f); + new ArmorPlating("plateLead", 280, 0.05f, 0.05f, 0.05f, 0.05f, 0.05f, 0, .3f, 0, 0); + new ArmorPlating("platePlastic", 60, 0.10f, 0.10f, 0.02f, 0.02f, 0.10f, 0, 0, .25f, 0); + new ArmorPlating("plateAluminium", 120, 0.14f, 0.14f, 0.12f, 0.12f, 0.14f); + new ArmorPlating("plateAstralSilver", 180, 0.10f, 0.10f, 0.10f, 0.18f, 0.10f); + new ArmorPlating("plateBismuthBronze", 160, 0.12f, 0.12f, 0.10f, 0.10f, 0.12f); + new ArmorPlating("plateBlackBronze", 160, 0.13f, 0.13f, 0.10f, 0.10f, 0.13f); + new ArmorPlating("plateBlackSteel", 200, 0.19f, 0.19f, 0.17f, 0.17f, 0.19f); + new ArmorPlating("plateBlueSteel", 200, 0.21f, 0.21f, 0.19f, 0.19f, 0.21f); + new ArmorPlating("plateBronze", 160, 0.13f, 0.13f, 0.12f, 0.12f, 0.13f); + new ArmorPlating("plateCobaltBrass", 180, 0.15f, 0.15f, 0.14f, 0.14f, 0.15f); + new ArmorPlating("plateDamascusSteel", 200, 0.22f, 0.22f, 0.20f, 0.20f, 0.22f); + new ArmorPlating("plateElectrum", 250, 0.11f, 0.11f, 0.10f, 0.10f, 0.11f); + new ArmorPlating("plateEmerald", 160, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f); + new ArmorPlating("plateGold", 300, 0.09f, 0.09f, 0.05f, 0.25f, 0.09f); + new ArmorPlating("plateGreenSapphire", 160, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f); + new ArmorPlating("plateInvar", 190, 0.10f, 0.10f, 0.22f, 0.22f, 0.10f); + new ArmorPlating("plateIron", 200, 0.12f, 0.12f, 0.10f, 0.10f, 0.12f); + new ArmorPlating("plateIronWood", 150, 0.17f, 0.17f, 0.02f, 0.02f, 0.17f); + new ArmorPlating("plateMagnalium", 120, 0.15f, 0.15f, 0.17f, 0.17f, 0.15f); + new ArmorPlating("plateNeodymiumMagnetic", 220, 0.14f, 0.14f, 0.14f, 0.14f, 0.14f, 0, 0, 0, 0, StatType.MAGNETSINGLE, 2.0f); + new ArmorPlating("plateManganese", 180, 0.15f, 0.15f, 0.14f, 0.14f, 0.15f); + new ArmorPlating("plateMeteoricIron", 200, 0.18f, 0.18f, 0.16f, 0.16f, 0.18f); + new ArmorPlating("plateMeteoricSteel", 200, 0.21f, 0.21f, 0.19f, 0.19f, 0.21f); + new ArmorPlating("plateMolybdenum", 140, 0.14f, 0.14f, 0.14f, 0.14f, 0.14f); + new ArmorPlating("plateNickel", 180, 0.12f, 0.12f, 0.15f, 0.15f, 0.12f); + new ArmorPlating("plateOlivine", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f); + new ArmorPlating("plateOpal", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f); + new ArmorPlating("platePalladium", 280, 0.14f, 0.14f, 0.12f, 0.12f, 0.14f); + new ArmorPlating("platePlatinum", 290, 0.15f, 0.15f, 0.13f, 0.13f, 0.15f); + new ArmorPlating("plateGarnetRed", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f); + new ArmorPlating("plateRedSteel", 200, 0.20f, 0.20f, 0.18f, 0.18f, 0.20f); + new ArmorPlating("plateRoseGold", 240, 0.10f, 0.10f, 0.08f, 0.18f, 0.10f); + new ArmorPlating("plateRuby", 180, 0.10f, 0.10f, 0.20f, 0.20f, 0.10f); + new ArmorPlating("plateSapphire", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f); + new ArmorPlating("plateSilver", 220, 0.11f, 0.11f, 0.07f, 0.24f, 0.11f); + new ArmorPlating("plateStainlessSteel", 200, 0.16f, 0.16f, 0.21f, 0.21f, 0.16f); + new ArmorPlating("plateSteel", 200, 0.18f, 0.18f, 0.16f, 0.16f, 0.18f); + new ArmorPlating("plateSterlingSilver", 210, 0.15f, 0.15f, 0.13f, 0.13f, 0.15f); + new ArmorPlating("plateTanzanite", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f); + new ArmorPlating("plateThorium", 280, 0.13f, 0.13f, 0.16f, 0.16f, 0.13f); + new ArmorPlating("plateWroughtIron", 200, 0.14f, 0.14f, 0.12f, 0.12f, 0.14f); + new ArmorPlating("plateGarnetYellow", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f); + new ArmorPlating("plateAlloyCarbon", 60, 0.06f, 0.23f, 0.05f, 0.05f, 0.06f); + new ArmorPlating("plateInfusedAir", 10, 0.10f, 0.10f, 0.10f, 0.10f, 0.10f); + new ArmorPlating("plateAmethyst", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f); + new ArmorPlating("plateInfusedWater", 150, 0.10f, 0.10f, 0.20f, 0.20f, 0.10f); + new ArmorPlating("plateBlueTopaz", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f); + new ArmorPlating("plateChrome", 200, 0.12f, 0.12f, 0.21f, 0.21f, 0.12f); + new ArmorPlating("plateCobalt", 220, 0.16f, 0.16f, 0.14f, 0.14f, 0.16f); + new ArmorPlating("plateDarkIron", 200, 0.21f, 0.21f, 0.19f, 0.19f, 0.21f); + new ArmorPlating("plateDiamond", 200, 0.20f, 0.20f, 0.22f, 0.22f, 0.20f); + new ArmorPlating("plateEnderium", 250, 0.22f, 0.22f, 0.21f, 0.21f, 0.22f); + new ArmorPlating("plateElectrumFlux", 180, 0.19f, 0.19f, 0.16f, 0.16f, 0.19f); + new ArmorPlating("plateForce", 180, 0.10f, 0.10f, 0.20f, 0.20f, 0.10f); + new ArmorPlating("plateHSLA", 200, 0.21f, 0.21f, 0.17f, 0.17f, 0.21f); + new ArmorPlating("plateInfusedFire", 150, 0.12f, 0.10f, 0.30f, 0.30f, 0.12f, 0, 0, 0, 0, StatType.THORNSSINGLE, 3.0f); + new ArmorPlating("plateInfusedGold", 300, 0.15f, 0.15f, 0.05f, 0.05f, 0.15f); + new ArmorPlating("plateMithril", 200, 0.25f, 0.25f, 0.10f, 0.30f, 0.25f); + new ArmorPlating("plateInfusedOrder", 150, 0.18f, 0.22f, 0.22f, 0.25f, 0.22f); + new ArmorPlating("plateSteeleaf", 120, 0.16f, 0.16f, 0.06f, 0.06f, 0.16f); + new ArmorPlating("plateInfusedEarth", 350, 0.30f, 0.30f, 0.30f, 0.30f, 0.30f); + new ArmorPlating("plateThaumium", 200, 0.18f, 0.19f, 0.20f, 0.30f, 0.18f); + new ArmorPlating("plateTitanium", 140, 0.20f, 0.20f, 0.18f, 0.18f, 0.20f); + new ArmorPlating("plateTungsten", 270, 0.27f, 0.26f, 0.23f, 0.26f, 0.26f); + new ArmorPlating("plateTopaz", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f); + new ArmorPlating("plateUltimet", 180, 0.21f, 0.21f, 0.19f, 0.19f, 0.21f); + new ArmorPlating("plateUranium", 290, 0.27f, 0.23f, 0.20f, 0.15f, 0.21f); + new ArmorPlating("plateVinteum", 180, 0.10f, 0.12f, 0.14f, 0.28f, 0.12f); + new ArmorPlating("plateDuranium", 140, 0.24f, 0.24f, 0.24f, 0.24f, 0.24f); + new ArmorPlating("plateAlloyIridium", 220, 0.24f, 0.24f, 0.22f, 0.22f, 0.24f); + new ArmorPlating("plateOsmiridium", 240, 0.18f, 0.18f, 0.16f, 0.16f, 0.18f); + new ArmorPlating("plateOsmium", 250, 0.12f, 0.12f, 0.10f, 0.10f, 0.12f); + new ArmorPlating("plateNaquadah", 250, 0.27f, 0.27f, 0.25f, 0.25f, 0.27f); + new ArmorPlating("plateNetherStar", 140, 0.22f, 0.22f, 0.24f, 0.24f, 0.22f, 0, 0, 0, .2f); + new ArmorPlating("plateInfusedEntropy", 150, 0.10f, 0.10f, 0.10f, 0.10f, 0.10f, 0, 0, 0, 0, StatType.THORNSSINGLE, 4.0f); + new ArmorPlating("plateTritanium", 140, 0.26f, 0.26f, 0.26f, 0.26f, 0.26f); + new ArmorPlating("plateTungstenSteel", 270, 0.30f, 0.28f, 0.25f, 0.28f, 0.30f); + new ArmorPlating("plateAdamantium", 200, 0.28f, 0.28f, 0.26f, 0.30f, 0.30f); + new ArmorPlating("plateNaquadahAlloy", 300, 0.33f, 0.33f, 0.33f, 0.33f, 0.33f); + new ArmorPlating("plateNeutronium", 600, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f); + + new ArmorComponentFunction(GT_ModHandler.getIC2Item("nightvisionGoggles", 1), true, 100, StatType.NIGHTVISION, 100); + if(GT_ModHandler.getModItem("Thaumcraft", "ItemGoggles", 1)!=null)new ArmorComponentFunction(GT_ModHandler.getModItem("Thaumcraft", "ItemGoggles", 1), true, 100, StatType.THAUMICGOGGLES, 100); + new ArmorComponentBattery(ItemList.Battery_RE_LV_Lithium.get(1, new Object[]{}), true, 100, 100000); + new ArmorComponentBattery(ItemList.Battery_RE_MV_Lithium.get(1, new Object[]{}), true, 100, 400000); + new ArmorComponentBattery(ItemList.Battery_RE_HV_Lithium.get(1, new Object[]{}), true, 100, 1600000); + + new ArmorComponentBattery(ItemList.Battery_RE_LV_Cadmium.get(1, new Object[]{}), true, 100, 75000); + new ArmorComponentBattery(ItemList.Battery_RE_MV_Cadmium.get(1, new Object[]{}), true, 100, 300000); + new ArmorComponentBattery(ItemList.Battery_RE_HV_Cadmium.get(1, new Object[]{}), true, 100, 1200000); + + new ArmorComponentBattery(ItemList.Battery_RE_LV_Sodium.get(1, new Object[]{}), true, 100, 50000); + new ArmorComponentBattery(ItemList.Battery_RE_MV_Sodium.get(1, new Object[]{}), true, 100, 200000); + new ArmorComponentBattery(ItemList.Battery_RE_HV_Sodium.get(1, new Object[]{}), true, 100, 800000); + + new ArmorComponentBattery(ItemList.IC2_EnergyCrystal.get(1, new Object[]{}), true, 100, 1000000); + new ArmorComponentBattery(ItemList.IC2_LapotronCrystal.get(1, new Object[]{}), true, 100, 10000000); + new ArmorComponentBattery(ItemList.Energy_LapotronicOrb.get(1, new Object[]{}), true, 100, 100000000); + new ArmorComponentBattery(ItemList.Energy_LapotronicOrb2.get(1, new Object[]{}), true, 100, 1000000000); + + new ArmorElectricComponent(ItemList.Electric_Motor_LV.get(1, new Object[]{}), 20, StatType.MOTPRPOWER, 200f, StatType.MOTOREUUSAGE, 50f, StatType.PROCESSINGPOWERUSED, 10f); + new ArmorElectricComponent(ItemList.Electric_Motor_MV.get(1, new Object[]{}), 40, StatType.MOTPRPOWER, 300f, StatType.MOTOREUUSAGE, 100f, StatType.PROCESSINGPOWERUSED, 20f); + new ArmorElectricComponent(ItemList.Electric_Motor_HV.get(1, new Object[]{}), 60, StatType.MOTPRPOWER, 400f, StatType.MOTOREUUSAGE, 200f, StatType.PROCESSINGPOWERUSED, 50f); + new ArmorElectricComponent(ItemList.Electric_Motor_EV.get(1, new Object[]{}), 80, StatType.MOTPRPOWER, 500f, StatType.MOTOREUUSAGE, 400f, StatType.PROCESSINGPOWERUSED, 100f); + new ArmorElectricComponent(ItemList.Electric_Motor_IV.get(1, new Object[]{}),100, StatType.MOTPRPOWER, 600f, StatType.MOTOREUUSAGE, 800f, StatType.PROCESSINGPOWERUSED, 200f); + + new ArmorElectricComponent(ItemList.Electric_Piston_LV.get(1, new Object[]{}), 20, StatType.PISTONJUMPBOOST, 3, StatType.PISTONEUUSAGE, 200f, StatType.PROCESSINGPOWERUSED, 10f); + new ArmorElectricComponent(ItemList.Electric_Piston_MV.get(1, new Object[]{}), 40, StatType.PISTONJUMPBOOST, 4, StatType.PISTONEUUSAGE, 300f, StatType.PROCESSINGPOWERUSED, 20f); + new ArmorElectricComponent(ItemList.Electric_Piston_HV.get(1, new Object[]{}), 60, StatType.PISTONJUMPBOOST, 5, StatType.PISTONEUUSAGE, 450f, StatType.PROCESSINGPOWERUSED, 50f); + new ArmorElectricComponent(ItemList.Electric_Piston_EV.get(1, new Object[]{}), 80, StatType.PISTONJUMPBOOST, 6, StatType.PISTONEUUSAGE, 800f, StatType.PROCESSINGPOWERUSED, 100f); + new ArmorElectricComponent(ItemList.Electric_Piston_IV.get(1, new Object[]{}),100, StatType.PISTONJUMPBOOST, 7, StatType.PISTONEUUSAGE,1600f, StatType.PROCESSINGPOWERUSED, 200f); + + new ArmorElectricComponent(ItemList.Machine_LV_Electrolyzer.get(1, new Object[]{}), 20, StatType.ELECTROLYZERPROD, 10, StatType.ELECTROLYZEREUUSAGE, 1, StatType.PROCESSINGPOWERUSED, 50f); + new ArmorElectricComponent(ItemList.Machine_MV_Electrolyzer.get(1, new Object[]{}), 40, StatType.ELECTROLYZERPROD, 20, StatType.ELECTROLYZEREUUSAGE, 4, StatType.PROCESSINGPOWERUSED, 100f); + new ArmorElectricComponent(ItemList.Machine_HV_Electrolyzer.get(1, new Object[]{}), 60, StatType.ELECTROLYZERPROD, 40, StatType.ELECTROLYZEREUUSAGE, 16, StatType.PROCESSINGPOWERUSED, 150f); + new ArmorElectricComponent(ItemList.Machine_EV_Electrolyzer.get(1, new Object[]{}), 80, StatType.ELECTROLYZERPROD, 80, StatType.ELECTROLYZEREUUSAGE, 64, StatType.PROCESSINGPOWERUSED, 200f); + new ArmorElectricComponent(ItemList.Machine_IV_Electrolyzer.get(1, new Object[]{}),100, StatType.ELECTROLYZERPROD,160, StatType.ELECTROLYZEREUUSAGE, 128, StatType.PROCESSINGPOWERUSED, 250f); + + new ArmorElectricComponent(ItemList.Field_Generator_LV.get(1, new Object[]{}), 20, StatType.FIELDGENCAP, 1, StatType.FIELDGENEUUSAGE, 1, StatType.PROCESSINGPOWERUSED, 100f); + new ArmorElectricComponent(ItemList.Field_Generator_MV.get(1, new Object[]{}), 40, StatType.FIELDGENCAP, 2, StatType.FIELDGENEUUSAGE, 4, StatType.PROCESSINGPOWERUSED, 200f); + new ArmorElectricComponent(ItemList.Field_Generator_HV.get(1, new Object[]{}), 60, StatType.FIELDGENCAP, 3, StatType.FIELDGENEUUSAGE, 16, StatType.PROCESSINGPOWERUSED, 300f); + new ArmorElectricComponent(ItemList.Field_Generator_EV.get(1, new Object[]{}), 80, StatType.FIELDGENCAP, 4, StatType.FIELDGENEUUSAGE, 64, StatType.PROCESSINGPOWERUSED, 400f); + new ArmorElectricComponent(ItemList.Field_Generator_IV.get(1, new Object[]{}),100, StatType.FIELDGENCAP, 5, StatType.FIELDGENEUUSAGE, 512, StatType.PROCESSINGPOWERUSED, 500f); + + new ArmorElectricComponent(ItemList.Cell_Empty.get(1, new Object[]{}), 20, StatType.TANKCAP, 8000, null, 1, null, 0); + new ArmorElectricComponent(ItemList.Large_Fluid_Cell_Steel.get(1, new Object[]{}), 40, StatType.TANKCAP, 16000, null, 1, null, 0); + new ArmorElectricComponent(ItemList.Large_Fluid_Cell_TungstenSteel.get(1, new Object[]{}), 80, StatType.TANKCAP, 64000, null, 1, null, 0); + + new ArmorElectricComponent(GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 1), 10, StatType.PROCESSINGPOWER, 100, null, 1, null, 1); + new ArmorElectricComponent(GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 1), 20, StatType.PROCESSINGPOWER, 200, null, 1, null, 1); + new ArmorElectricComponent(GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1),30, StatType.PROCESSINGPOWER, 300, null, 1, null, 1); + new ArmorElectricComponent(GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data, 1), 40, StatType.PROCESSINGPOWER, 400, null, 1, null, 1); + new ArmorElectricComponent(GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 1), 50, StatType.PROCESSINGPOWER, 500, null, 1, null, 1); + new ArmorElectricComponent(GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 1), 60, StatType.PROCESSINGPOWER, 600, null, 1, null, 1); + +// if (parts[i].getItem().getUnlocalizedName().equals("gte.meta.jetpack")) {// jeptack parts +// switch (parts[i].getItem().getDamage(parts[i])) { +// case 0: +// def[24] += 50; // JetpackFuelPower +// def[25] += 1; // FuelUsage +// def[31] += 10; +// break; +// case 1: +// def[24] += 75; // JetpackFuelPower +// def[25] += 2; // FuelUsage +// def[31] += 20; +// break; +// case 2: +// def[24] += 100; // JetpackFuelPower +// def[25] += 4; // FuelUsage +// def[31] += 30; +// break; +// case 3: +// def[24] += 125; // JetpackFuelPower +// def[25] += 8; // FuelUsage +// def[31] += 40; +// break; +// case 4: +// def[24] += 150; // JetpackFuelPower +// def[25] += 16; // FuelUsage +// def[31] += 50; +// break; +// case 5: +// def[26] += 20; // JetpackEUPower +// def[27] += 8; // JetpackEU +// def[31] += 30; +// break; +// case 6: +// def[26] += 30; // JetpackEUPower +// def[27] += 16; // JetpackEU +// def[31] += 60; +// break; +// case 7: +// def[26] += 40; // JetpackEUPower +// def[27] += 32; // JetpackEU +// def[31] += 90; +// break; +// case 8: +// def[26] += 50; // JetpackEUPower +// def[27] += 64; // JetpackEU +// def[31] += 120; +// break; +// case 9: +// def[26] += 60; // JetpackEUPower +// def[27] += 128; // JetpackEU +// def[31] += 150; +// break; +// case 10: +// def[28] += 100; // AntiGravPower +// def[29] += 32; // AntiGravEU +// def[31] += 100; +// break; +// case 11: +// def[28] += 133; // AntiGravPower +// def[29] += 64; // AntiGravEU +// def[31] += 200; +// break; +// case 12: +// def[28] += 166; // AntiGravPower +// def[29] += 128; // AntiGravEU +// def[31] += 300; +// break; +// case 13: +// def[28] += 200; // AntiGravPower +// def[29] += 256; // AntiGravEU +// def[31] += 400; +// break; +// case 14: +// def[28] += 233; // AntiGravPower +// def[29] += 512; // AntiGravEU +// def[31] += 500; +// break; +// } + } +} diff --git a/src/main/java/gregtech/common/items/armor/components/StatType.java b/src/main/java/gregtech/common/items/armor/components/StatType.java new file mode 100644 index 0000000000..80fe5cc6d4 --- /dev/null +++ b/src/main/java/gregtech/common/items/armor/components/StatType.java @@ -0,0 +1,56 @@ +package gregtech.common.items.armor.components; + +import java.util.List; + +import net.minecraftforge.fluids.FluidStack; + +public enum StatType { + ELECTRIC, + ELECTRIC2, + + FULLARMOR, + FULLRADIATIONARMOR, + FULLELECTRICARMOR, + + FALLDEFENCE, + PHYSICALDEFENCE, + PROJECTILEDEFENCE, + FIREDEFENCE, + MAGICDEFENCE, + EXPLOSIONDEFENCE, + RADIATIONDEFENCE, + ELECTRICALDEFENCE, + WITHERDEFENCE, + + THORNS, + THORNSSINGLE, + MAGNET, + MAGNETSINGLE, + + THAUMICGOGGLES, + NIGHTVISION, + POTIONINJECTOR, + AUTOFEEDER, + + TANKCAP, + WEIGHT, + PROCESSINGPOWER, + PROCESSINGPOWERUSED, + PARTPROCESSING, + PARTPROCESSINGUSED, + + MOTPRPOWER, + MOTOREUUSAGE, + PISTONJUMPBOOST, + PISTONEUUSAGE, + ELECTROLYZERPROD, + ELECTROLYZEREUUSAGE, + FIELDGENCAP, + FIELDGENEUUSAGE, + JETPACKMAXWEIGHT, + ANTIGRAVMAXWEIGHT, + + PARTSCHARGE, + BATTERYCAPACITY; + +} diff --git a/src/main/java/gregtech/common/items/armor/ContainerBasicArmor.java b/src/main/java/gregtech/common/items/armor/gui/ContainerBasicArmor.java index 108d813707..a2ee329099 100644 --- a/src/main/java/gregtech/common/items/armor/ContainerBasicArmor.java +++ b/src/main/java/gregtech/common/items/armor/gui/ContainerBasicArmor.java @@ -1,4 +1,4 @@ -package gregtech.common.items.armor; +package gregtech.common.items.armor.gui; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -12,15 +12,15 @@ public class ContainerBasicArmor extends ContainerModularArmor { } public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new Slot(mInvArmor, 0, 118, 6)); - addSlotToContainer(new Slot(mInvArmor, 1, 136, 6)); - addSlotToContainer(new Slot(mInvArmor, 2, 154, 6)); - addSlotToContainer(new Slot(mInvArmor, 3, 118, 24)); - addSlotToContainer(new Slot(mInvArmor, 4, 136, 24)); - addSlotToContainer(new Slot(mInvArmor, 5, 154, 24)); - addSlotToContainer(new Slot(mInvArmor, 6, 118, 42)); - addSlotToContainer(new Slot(mInvArmor, 7, 136, 42)); - addSlotToContainer(new Slot(mInvArmor, 8, 154, 42)); + addSlotToContainer(new SlotArmor(mInvArmor, 0, 118, 6)); + addSlotToContainer(new SlotArmor(mInvArmor, 1, 136, 6)); + addSlotToContainer(new SlotArmor(mInvArmor, 2, 154, 6)); + addSlotToContainer(new SlotArmor(mInvArmor, 3, 118, 24)); + addSlotToContainer(new SlotArmor(mInvArmor, 4, 136, 24)); + addSlotToContainer(new SlotArmor(mInvArmor, 5, 154, 24)); + addSlotToContainer(new SlotArmor(mInvArmor, 6, 118, 42)); + addSlotToContainer(new SlotArmor(mInvArmor, 7, 136, 42)); + addSlotToContainer(new SlotArmor(mInvArmor, 8, 154, 42)); for (int i = 0; i < 3; i++) { for (int j = 0; j < 9; j++) { diff --git a/src/main/java/gregtech/common/items/armor/ContainerElectricArmor1.java b/src/main/java/gregtech/common/items/armor/gui/ContainerElectricArmor1.java index 063807275c..02c8f016bb 100644 --- a/src/main/java/gregtech/common/items/armor/ContainerElectricArmor1.java +++ b/src/main/java/gregtech/common/items/armor/gui/ContainerElectricArmor1.java @@ -1,4 +1,4 @@ -package gregtech.common.items.armor; +package gregtech.common.items.armor.gui; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -12,18 +12,18 @@ public class ContainerElectricArmor1 extends ContainerBasicArmor { } public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new Slot(mInvArmor, 0, 118, 6)); - addSlotToContainer(new Slot(mInvArmor, 1, 136, 6)); - addSlotToContainer(new Slot(mInvArmor, 2, 154, 6)); - addSlotToContainer(new Slot(mInvArmor, 3, 118, 24)); - addSlotToContainer(new Slot(mInvArmor, 4, 136, 24)); - addSlotToContainer(new Slot(mInvArmor, 5, 154, 24)); - addSlotToContainer(new Slot(mInvArmor, 6, 118, 42)); - addSlotToContainer(new Slot(mInvArmor, 7, 136, 42)); - addSlotToContainer(new Slot(mInvArmor, 8, 154, 42)); - addSlotToContainer(new Slot(mInvArmor, 9, 118, 60)); - addSlotToContainer(new Slot(mInvArmor, 10, 136, 60)); - addSlotToContainer(new Slot(mInvArmor, 11, 154, 60)); + addSlotToContainer(new SlotArmor(mInvArmor, 0, 118, 6)); + addSlotToContainer(new SlotArmor(mInvArmor, 1, 136, 6)); + addSlotToContainer(new SlotArmor(mInvArmor, 2, 154, 6)); + addSlotToContainer(new SlotArmor(mInvArmor, 3, 118, 24)); + addSlotToContainer(new SlotArmor(mInvArmor, 4, 136, 24)); + addSlotToContainer(new SlotArmor(mInvArmor, 5, 154, 24)); + addSlotToContainer(new SlotArmor(mInvArmor, 6, 118, 42)); + addSlotToContainer(new SlotArmor(mInvArmor, 7, 136, 42)); + addSlotToContainer(new SlotArmor(mInvArmor, 8, 154, 42)); + addSlotToContainer(new SlotArmor(mInvArmor, 9, 118, 60)); + addSlotToContainer(new SlotArmor(mInvArmor, 10, 136, 60)); + addSlotToContainer(new SlotArmor(mInvArmor, 11, 154, 60)); addSlotToContainer(new SlotFluid(mInvArmor,12,94,32)); diff --git a/src/main/java/gregtech/common/items/armor/ContainerModularArmor.java b/src/main/java/gregtech/common/items/armor/gui/ContainerModularArmor.java index 88f1a71599..0258a3eb3c 100644 --- a/src/main/java/gregtech/common/items/armor/ContainerModularArmor.java +++ b/src/main/java/gregtech/common/items/armor/gui/ContainerModularArmor.java @@ -1,5 +1,6 @@ -package gregtech.common.items.armor; +package gregtech.common.items.armor.gui; +import gregtech.common.items.armor.ArmorData; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -18,10 +19,7 @@ public abstract class ContainerModularArmor extends Container { addSlots(player.inventory); } - public ArmorData getData(EntityPlayer aPlayer){ - - - + public ArmorData getData(EntityPlayer aPlayer){ return null; } diff --git a/src/main/java/gregtech/common/items/armor/FluidSync.java b/src/main/java/gregtech/common/items/armor/gui/FluidSync.java index 70ee268188..8f1aef56d1 100644 --- a/src/main/java/gregtech/common/items/armor/FluidSync.java +++ b/src/main/java/gregtech/common/items/armor/gui/FluidSync.java @@ -1,4 +1,4 @@ -package gregtech.common.items.armor; +package gregtech.common.items.armor.gui; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.IBlockAccess; diff --git a/src/main/java/gregtech/common/items/armor/FluidSync2.java b/src/main/java/gregtech/common/items/armor/gui/FluidSync2.java index de801aad8a..75c3c6d363 100644 --- a/src/main/java/gregtech/common/items/armor/FluidSync2.java +++ b/src/main/java/gregtech/common/items/armor/gui/FluidSync2.java @@ -1,4 +1,4 @@ -package gregtech.common.items.armor; +package gregtech.common.items.armor.gui; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/gregtech/common/items/armor/GuiElectricArmor1.java b/src/main/java/gregtech/common/items/armor/gui/GuiElectricArmor1.java index 136630124f..3ea092a2ab 100644 --- a/src/main/java/gregtech/common/items/armor/GuiElectricArmor1.java +++ b/src/main/java/gregtech/common/items/armor/gui/GuiElectricArmor1.java @@ -1,7 +1,8 @@ -package gregtech.common.items.armor; +package gregtech.common.items.armor.gui; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Utility; +import gregtech.common.items.armor.components.StatType; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; @@ -97,42 +98,42 @@ public class GuiElectricArmor1 extends GuiContainer { break; } - if(cont.mInvArmor.data.tankCap>0){ + if(cont.mInvArmor.data.mStat.get(StatType.TANKCAP)>0){ drawTexturedModalRect(xStart + 94, yStart + 32, 231, 69, 16, 34); } - int bar = (int) Math.floor(18 * (cont.mInvArmor.data.weight/(float)1000)); + int bar = (int) Math.floor(18 * (cont.mInvArmor.data.mStat.get(StatType.WEIGHT)/(float)1000)); drawTexturedModalRect(xStart + 15, yStart + 7, 217, 26, bar, 5); drawTexturedModalRect(xStart + bar + 15, yStart + 7, 197+bar, 26, 18-bar, 5); if(tab==0){ //processing power bar - bar = Math.min((int) Math.floor(52 * ((float)cont.mInvArmor.data.processingPowerUsed/(float)cont.mInvArmor.data.processingPower)),52); + bar = Math.min((int) Math.floor(52 * ((float)cont.mInvArmor.data.mStat.get(StatType.PROCESSINGPOWERUSED)/(float)cont.mInvArmor.data.mStat.get(StatType.PROCESSINGPOWER))),52); drawTexturedModalRect(xStart + 17, yStart + 17, 177, 146, bar, 5); drawTexturedModalRect(xStart + bar + 17, yStart + 17, 177+bar, 139, 52-bar, 5); }else if(tab==1){ }else{ //Def tab values - if(cont.mInvArmor.data.physicalDef>0)drawTexturedModalRect(xStart + 30, yStart + 20, 186, 33, 7, 7); - drawBars(31, 20, cont.mInvArmor.data.physicalDef); - if(cont.mInvArmor.data.projectileDef>0)drawTexturedModalRect(xStart + 30, yStart + 29, 186, 42, 7, 7); - drawBars(31, 29, cont.mInvArmor.data.projectileDef); - if(cont.mInvArmor.data.fireDef>0)drawTexturedModalRect(xStart + 30, yStart + 38, 186, 51, 7, 7); - drawBars(31, 38, cont.mInvArmor.data.fireDef); - if(cont.mInvArmor.data.magicDef>0)drawTexturedModalRect(xStart + 30, yStart + 47, 186, 60, 7, 7); - drawBars(31, 47, cont.mInvArmor.data.magicDef); - if(cont.mInvArmor.data.explosionDef>0)drawTexturedModalRect(xStart + 30, yStart + 56, 186, 69, 7, 7); - drawBars(31, 56, cont.mInvArmor.data.explosionDef); - if(cont.mInvArmor.data.radiationDef>0)drawTexturedModalRect(xStart + 61, yStart + 20, 186, 87, 7, 7); - drawBars(62, 20, cont.mInvArmor.data.radiationDef); - if(cont.mInvArmor.data.electricDef>0)drawTexturedModalRect(xStart + 61, yStart + 29, 186, 96, 7, 7); - drawBars(62, 29, cont.mInvArmor.data.electricDef); - if(cont.mInvArmor.data.witherDef>0)drawTexturedModalRect(xStart + 61, yStart + 38, 186, 105, 7, 7); - drawBars(62, 38, cont.mInvArmor.data.witherDef); - if(cont.mInvArmor.data.fallDef>0)drawTexturedModalRect(xStart + 61, yStart + 47, 186, 114, 7, 7); - if(cont.mInvArmor.data.thorns>0)drawTexturedModalRect(xStart + 61, yStart + 56, 186, 123, 7, 7); - if(cont.mInvArmor.data.magnet>0)drawTexturedModalRect(xStart + 70, yStart + 56, 186, 78, 7, 7); + if(cont.mInvArmor.data.mStat.get(StatType.PHYSICALDEFENCE)>0)drawTexturedModalRect(xStart + 30, yStart + 20, 186, 33, 7, 7); + drawBars(31, 20, cont.mInvArmor.data.mStat.get(StatType.PHYSICALDEFENCE)); + if(cont.mInvArmor.data.mStat.get(StatType.PROJECTILEDEFENCE)>0)drawTexturedModalRect(xStart + 30, yStart + 29, 186, 42, 7, 7); + drawBars(31, 29, cont.mInvArmor.data.mStat.get(StatType.PROJECTILEDEFENCE)); + if(cont.mInvArmor.data.mStat.get(StatType.FIREDEFENCE)>0)drawTexturedModalRect(xStart + 30, yStart + 38, 186, 51, 7, 7); + drawBars(31, 38, cont.mInvArmor.data.mStat.get(StatType.FIREDEFENCE)); + if(cont.mInvArmor.data.mStat.get(StatType.MAGICDEFENCE)>0)drawTexturedModalRect(xStart + 30, yStart + 47, 186, 60, 7, 7); + drawBars(31, 47, cont.mInvArmor.data.mStat.get(StatType.MAGICDEFENCE)); + if(cont.mInvArmor.data.mStat.get(StatType.EXPLOSIONDEFENCE)>0)drawTexturedModalRect(xStart + 30, yStart + 56, 186, 69, 7, 7); + drawBars(31, 56, cont.mInvArmor.data.mStat.get(StatType.EXPLOSIONDEFENCE)); + if(cont.mInvArmor.data.mStat.get(StatType.RADIATIONDEFENCE)>0)drawTexturedModalRect(xStart + 61, yStart + 20, 186, 87, 7, 7); + drawBars(62, 20, cont.mInvArmor.data.mStat.get(StatType.RADIATIONDEFENCE)); + if(cont.mInvArmor.data.mStat.get(StatType.ELECTRICALDEFENCE)>0)drawTexturedModalRect(xStart + 61, yStart + 29, 186, 96, 7, 7); + drawBars(62, 29, cont.mInvArmor.data.mStat.get(StatType.ELECTRICALDEFENCE)); + if(cont.mInvArmor.data.mStat.get(StatType.WITHERDEFENCE)>0)drawTexturedModalRect(xStart + 61, yStart + 38, 186, 105, 7, 7); + drawBars(62, 38, cont.mInvArmor.data.mStat.get(StatType.WITHERDEFENCE)); + if(cont.mInvArmor.data.mStat.get(StatType.FALLDEFENCE)>0)drawTexturedModalRect(xStart + 61, yStart + 47, 186, 114, 7, 7); + if(cont.mInvArmor.data.mStat.get(StatType.THORNS)>0)drawTexturedModalRect(xStart + 61, yStart + 56, 186, 123, 7, 7); + if(cont.mInvArmor.data.mStat.get(StatType.MAGNET)>0)drawTexturedModalRect(xStart + 70, yStart + 56, 186, 78, 7, 7); } @@ -208,9 +209,9 @@ public class GuiElectricArmor1 extends GuiContainer { List<String> list = new ArrayList<String>(); //General tooltips if(x>=7&&y>=11&&x<=33&&y<=17){ - list.add(GT_LanguageManager.getTranslation("weight") + ": " + cont.mInvArmor.data.weight); + list.add(GT_LanguageManager.getTranslation("Weight") + ": " + cont.mInvArmor.data.mStat.get(StatType.WEIGHT)); list.add("Total Weight: "+cont.mInvArmor.data.maxWeight); - if (cont.mInvArmor.data.weight > 1000) + if (cont.mInvArmor.data.mStat.get(StatType.WEIGHT) > 1000) list.add("Too Heavy!"); } if(x>=56&&y>=11&&x<=112&&y<=17){ @@ -232,50 +233,50 @@ public class GuiElectricArmor1 extends GuiContainer { } } if(tab==0){ - if(x>=93&&y>=36&&x<=110&&y<=71){list.add("Tank Capacity: "+cont.mInvArmor.data.tankCap+"L"); + if(x>=93&&y>=36&&x<=110&&y<=71){list.add("Tank Capacity: "+cont.mInvArmor.data.mStat.get(StatType.TANKCAP)+"L"); } - if(x>=7&&y>=22&&x<=70&&y<=28){list.add("Processing Power Provided: "+cont.mInvArmor.data.processingPower); - list.add("Processing Power Used: "+cont.mInvArmor.data.processingPowerUsed); + if(x>=7&&y>=22&&x<=70&&y<=28){list.add("Processing Power Provided: "+cont.mInvArmor.data.mStat.get(StatType.PROCESSINGPOWER)); + list.add("Processing Power Used: "+cont.mInvArmor.data.mStat.get(StatType.PROCESSINGPOWERUSED)); } }else if(tab==1){ }else{ if (x >= 28 && x <= 58) { if (y >= 25 && y <= 32) { - list.add(GT_LanguageManager.getTranslation("phydef") + ": " + (Math.round(cont.mInvArmor.data.physicalDef * 1000) / 10.0) + "%"); + list.add(GT_LanguageManager.getTranslation("Physical Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.PHYSICALDEFENCE) * 1000) / 10.0) + "%"); } else if (y >= 33 && y <= 41) { - list.add(GT_LanguageManager.getTranslation("prodef") + ": " + (Math.round(cont.mInvArmor.data.projectileDef * 1000) / 10.0) + "%"); + list.add(GT_LanguageManager.getTranslation("Projectile Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.PROJECTILEDEFENCE) * 1000) / 10.0) + "%"); } else if (y >= 42 && y <= 50) { - list.add(GT_LanguageManager.getTranslation("firedef") + ": " + (Math.round(cont.mInvArmor.data.fireDef * 1000) / 10.0) + "%"); + list.add(GT_LanguageManager.getTranslation("Fire Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.FIREDEFENCE) * 1000) / 10.0) + "%"); } else if (y >= 51 && y <= 59) { - list.add(GT_LanguageManager.getTranslation("magdef") + ": " + (Math.round(cont.mInvArmor.data.magicDef * 1000) / 10.0) + "%"); + list.add(GT_LanguageManager.getTranslation("Magical Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.MAGICDEFENCE) * 1000) / 10.0) + "%"); } else if (y >= 60 && y <= 68) { - list.add(GT_LanguageManager.getTranslation("expdef") + ": " + (Math.round(cont.mInvArmor.data.explosionDef * 1000) / 10.0) + "%"); + list.add(GT_LanguageManager.getTranslation("Explosion Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.EXPLOSIONDEFENCE) * 1000) / 10.0) + "%"); } } else if (x >= 59 && x <= 90) { if (y >= 25 && y <= 32) { - list.add(GT_LanguageManager.getTranslation("raddef") + ": " + (Math.round(cont.mInvArmor.data.radiationDef * 1000) / 10.0) + "%"); - if(cont.mInvArmor.data.fullRadiationDef){ - list.add("Radiation Immunity");} + list.add(GT_LanguageManager.getTranslation("Radiation Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.RADIATIONDEFENCE) * 1000) / 10.0) + "%"); + if(cont.mInvArmor.data.mBStat.get(StatType.FULLRADIATIONARMOR)){ + list.add(GT_LanguageManager.getTranslation("Radiation Immunity"));} } else if (y >= 33 && y <= 41) { - list.add(GT_LanguageManager.getTranslation("eledef") + ": " + (Math.round(cont.mInvArmor.data.electricDef * 1000) / 10.0) + "%"); - if(cont.mInvArmor.data.fullElectricDef){ - list.add("Electric Immunity");} + list.add(GT_LanguageManager.getTranslation("Electrical Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.ELECTRICALDEFENCE) * 1000) / 10.0) + "%"); + if(cont.mInvArmor.data.mBStat.get(StatType.FULLELECTRICARMOR)){ + list.add(GT_LanguageManager.getTranslation("Electric Immunity"));} } else if (y >= 42 && y <= 50) { - list.add(GT_LanguageManager.getTranslation("whidef") + ": " + (Math.round(cont.mInvArmor.data.witherDef * 1000) / 10.0) + "%"); + list.add(GT_LanguageManager.getTranslation("Wither Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.WITHERDEFENCE) * 1000) / 10.0) + "%"); } else if (y >= 51 && y <= 59) { if(cont.mInvArmor.data.type!=3){ - list.add("Fall Damage absorbtion"); - list.add("Only for Boots"); + list.add(GT_LanguageManager.getTranslation("Fall Damage absorbtion")); + list.add(GT_LanguageManager.getTranslation("Only for Boots")); }else{ - list.add(GT_LanguageManager.getTranslation("abs1") + " " + (int) Math.round(cont.mInvArmor.data.fallDef) + GT_LanguageManager.getTranslation("abs2"));} + list.add(GT_LanguageManager.getTranslation("Absorbs") + " " + (int) Math.round(cont.mInvArmor.data.mStat.get(StatType.FALLDEFENCE)) + GT_LanguageManager.getTranslation("m of Fall Damage"));} } else if (y >= 60 && y <= 68) { if(x<69){ - list.add(GT_LanguageManager.getTranslation("thorns") + ": " + (int) Math.round(cont.mInvArmor.data.thornsSingle) + " Dmg"); - list.add("Total "+GT_LanguageManager.getTranslation("thorns") + ": " + (int) Math.round(cont.mInvArmor.data.thorns) + " Dmg"); + list.add(GT_LanguageManager.getTranslation("Thorns") + ": " + (int) Math.round(cont.mInvArmor.data.mStat.get(StatType.THORNSSINGLE)) + " Dmg"); + list.add(GT_LanguageManager.getTranslation("Total Thorns") + ": " + (int) Math.round(cont.mInvArmor.data.mStat.get(StatType.THORNS)) + " Dmg"); }else{ - list.add(GT_LanguageManager.getTranslation("magnet") + ": " + cont.mInvArmor.data.magnetSingle + " m"); - list.add("Total "+GT_LanguageManager.getTranslation("magnet") + ": " + cont.mInvArmor.data.magnet + " m");} + list.add(GT_LanguageManager.getTranslation("Magnet") + ": " + cont.mInvArmor.data.mStat.get(StatType.MAGNETSINGLE) + " m"); + list.add(GT_LanguageManager.getTranslation("Total Magnet") + ": " + cont.mInvArmor.data.mStat.get(StatType.MAGNET) + " m");} } } } diff --git a/src/main/java/gregtech/common/items/armor/GuiModularArmor.java b/src/main/java/gregtech/common/items/armor/gui/GuiModularArmor.java index 17fd84b2fb..a24ca3ca1e 100644 --- a/src/main/java/gregtech/common/items/armor/GuiModularArmor.java +++ b/src/main/java/gregtech/common/items/armor/gui/GuiModularArmor.java @@ -1,6 +1,7 @@ -package gregtech.common.items.armor; +package gregtech.common.items.armor.gui; import gregtech.api.util.GT_LanguageManager; +import gregtech.common.items.armor.components.StatType; import java.util.ArrayList; import java.util.List; @@ -38,44 +39,44 @@ public class GuiModularArmor extends GuiContainer { List<String> list = new ArrayList<String>(); if (x >= 10 && x <= 17) { if (y >= 20 && y <= 27) { - list.add(GT_LanguageManager.getTranslation("weight") + ": " + cont.mInvArmor.data.weight); + list.add(GT_LanguageManager.getTranslation("Weight") + ": " + cont.mInvArmor.data.mStat.get(StatType.WEIGHT)); list.add("Total Weight: "+cont.mInvArmor.data.maxWeight); - if (cont.mInvArmor.data.weight > 1000) + if (cont.mInvArmor.data.mStat.get(StatType.WEIGHT) > 1000) list.add("Too Heavy!"); } else if (y >= 29 && y <= 36) { - list.add(GT_LanguageManager.getTranslation("phydef") + ": " + (Math.round(cont.mInvArmor.data.physicalDef * 1000) / 10.0) + "%"); + list.add(GT_LanguageManager.getTranslation("Physical Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.PHYSICALDEFENCE) * 1000) / 10.0) + "%"); } else if (y >= 38 && y <= 45) { - list.add(GT_LanguageManager.getTranslation("prodef") + ": " + (Math.round(cont.mInvArmor.data.projectileDef * 1000) / 10.0) + "%"); + list.add(GT_LanguageManager.getTranslation("Projectile Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.PROJECTILEDEFENCE) * 1000) / 10.0) + "%"); } else if (y >= 47 && y <= 54) { - list.add(GT_LanguageManager.getTranslation("firedef") + ": " + (Math.round(cont.mInvArmor.data.fireDef * 1000) / 10.0) + "%"); + list.add(GT_LanguageManager.getTranslation("Fire Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.FIREDEFENCE) * 1000) / 10.0) + "%"); } else if (y >= 56 && y <= 63) { - list.add(GT_LanguageManager.getTranslation("magdef") + ": " + (Math.round(cont.mInvArmor.data.magicDef * 1000) / 10.0) + "%"); + list.add(GT_LanguageManager.getTranslation("Magic Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.MAGICDEFENCE) * 1000) / 10.0) + "%"); } else if (y >= 65 && y <= 72) { - list.add(GT_LanguageManager.getTranslation("expdef") + ": " + (Math.round(cont.mInvArmor.data.explosionDef * 1000) / 10.0) + "%"); + list.add(GT_LanguageManager.getTranslation("Explosion Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.EXPLOSIONDEFENCE) * 1000) / 10.0) + "%"); } } else if (x >= 59 && x <= 66) { if (y >= 20 && y <= 27) { - list.add(GT_LanguageManager.getTranslation("thorns") + ": " + (int) Math.round(cont.mInvArmor.data.thornsSingle) + " Dmg"); - list.add("Total "+GT_LanguageManager.getTranslation("thorns") + ": " + (int) Math.round(cont.mInvArmor.data.thorns) + " Dmg"); + list.add(GT_LanguageManager.getTranslation("Thorns") + ": " + (int) Math.round(cont.mInvArmor.data.mStat.get(StatType.THORNSSINGLE)) + " Dmg"); + list.add(GT_LanguageManager.getTranslation("Total Thorns") + ": " + (int) Math.round(cont.mInvArmor.data.mStat.get(StatType.THORNS)) + " Dmg"); } else if (y >= 29 && y <= 36) { - list.add(GT_LanguageManager.getTranslation("magnet") + ": " + cont.mInvArmor.data.magnetSingle + " m"); - list.add("Total "+GT_LanguageManager.getTranslation("magnet") + ": " + cont.mInvArmor.data.magnet + " m"); + list.add(GT_LanguageManager.getTranslation("Magnet") + ": " + cont.mInvArmor.data.mStat.get(StatType.MAGNETSINGLE) + " m"); + list.add(GT_LanguageManager.getTranslation("Total Magnet") + ": " + cont.mInvArmor.data.mStat.get(StatType.MAGNET) + " m"); } else if (y >= 38 && y <= 45) { - list.add(GT_LanguageManager.getTranslation("raddef") + ": " + (Math.round(cont.mInvArmor.data.radiationDef * 1000) / 10.0) + "%"); - if(cont.mInvArmor.data.fullRadiationDef){ - list.add("Radiation Immunity");} + list.add(GT_LanguageManager.getTranslation("Radiation Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.RADIATIONDEFENCE) * 1000) / 10.0) + "%"); + if(cont.mInvArmor.data.mBStat.get(StatType.FULLRADIATIONARMOR)){ + list.add(GT_LanguageManager.getTranslation("Radiation Immunity"));} } else if (y >= 47 && y <= 54) { - list.add(GT_LanguageManager.getTranslation("eledef") + ": " + (Math.round(cont.mInvArmor.data.electricDef * 1000) / 10.0) + "%"); - if(cont.mInvArmor.data.fullElectricDef){ + list.add(GT_LanguageManager.getTranslation("Electrical Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.ELECTRICALDEFENCE) * 1000) / 10.0) + "%"); + if(cont.mInvArmor.data.mBStat.get(StatType.FULLELECTRICARMOR)){ list.add("Electric Immunity");} } else if (y >= 56 && y <= 63) { - list.add(GT_LanguageManager.getTranslation("whidef") + ": " + (Math.round(cont.mInvArmor.data.witherDef * 1000) / 10.0) + "%"); + list.add(GT_LanguageManager.getTranslation("Wither Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.WITHERDEFENCE) * 1000) / 10.0) + "%"); } else if (y >= 65 && y <= 72) { if(cont.mInvArmor.data.type!=3){ - list.add("Fall Damage absorbtion"); - list.add("Only for Boots"); + list.add(GT_LanguageManager.getTranslation("Fall Damage absorbtion")); + list.add(GT_LanguageManager.getTranslation("Only for Boots")); }else{ - list.add(GT_LanguageManager.getTranslation("abs1") + " " + (int) Math.round(cont.mInvArmor.data.fallDef) + GT_LanguageManager.getTranslation("abs2"));} + list.add(GT_LanguageManager.getTranslation("Absorbs") + " " + (int) Math.round(cont.mInvArmor.data.mStat.get(StatType.FALLDEFENCE)) + GT_LanguageManager.getTranslation("m of Fall Damage"));} } } if (!list.isEmpty()) @@ -108,62 +109,68 @@ public class GuiModularArmor extends GuiContainer { } // Weight: 10, 15 =191, 20 - if(cont.mInvArmor.data.weight>0){ + if(getF(StatType.WEIGHT)>0){ drawTexturedModalRect(xStart + 10, yStart + 15, 191, 20, 7, 7); } // Physical Def: 10, 24 =191, 29 - if(cont.mInvArmor.data.physicalDef>0){ + if(getF(StatType.PHYSICALDEFENCE)>0){ drawTexturedModalRect(xStart + 10, yStart + 24, 191, 29, 7, 7); } // Projectile Def: 10, 33 =191, 38 - if(cont.mInvArmor.data.projectileDef>0){ + if(getF(StatType.PROJECTILEDEFENCE)>0){ drawTexturedModalRect(xStart + 10, yStart + 33, 191, 38, 7, 7); } // Fire Def: 10, 42 =191, 47 - if(cont.mInvArmor.data.fireDef>0){ + if(getF(StatType.FIREDEFENCE)>0){ drawTexturedModalRect(xStart + 10, yStart + 42, 191, 47, 7, 7); } // Magic Def: 10, 51 =191, 56 - if(cont.mInvArmor.data.magicDef>0){ + if(getF(StatType.MAGICDEFENCE)>0){ drawTexturedModalRect(xStart + 10, yStart + 51, 191, 56, 7, 7); } // Explosive Def: 10, 60 =191, 65 - if(cont.mInvArmor.data.explosionDef>0){ + if(getF(StatType.EXPLOSIONDEFENCE)>0){ drawTexturedModalRect(xStart + 10, yStart + 60, 191, 65, 7, 7); } // Thorns: 59, 15 =198, 20 - if(cont.mInvArmor.data.thorns>0){ + if(getF(StatType.THORNS)>0){ drawTexturedModalRect(xStart + 59, yStart + 15, 198, 20, 7, 7); } // Magnet: 59, 24 =198, 29 - if(cont.mInvArmor.data.magnetSingle>0){ + if(getF(StatType.MAGNETSINGLE)>0){ drawTexturedModalRect(xStart + 59, yStart + 24, 198, 29, 7, 7); } // Radiation Def: 59, 33 =198, 38 - if(cont.mInvArmor.data.radiationDef>0){ + if(getF(StatType.RADIATIONDEFENCE)>0){ drawTexturedModalRect(xStart + 59, yStart + 33, 198, 38, 7, 7); } // Electric Def: 59, 42 =198, 47 - if(cont.mInvArmor.data.electricDef>0){ + if(getF(StatType.ELECTRICALDEFENCE)>0){ drawTexturedModalRect(xStart + 59, yStart + 42, 198, 47, 7, 7); } // Wither Def: 59, 51 =198, 56 - if(cont.mInvArmor.data.witherDef>0){ + if(getF(StatType.WITHERDEFENCE)>0){ drawTexturedModalRect(xStart + 59, yStart + 51, 198, 56, 7, 7); } // Fall Reduction: 59, 60 =198, 65 - if(cont.mInvArmor.data.fallDef>0){ + if(getF(StatType.FALLDEFENCE)>0){ drawTexturedModalRect(xStart + 59, yStart + 60, 198, 65, 7, 7); } - drawBars(10, 24, cont.mInvArmor.data.physicalDef); - drawBars(10, 33, cont.mInvArmor.data.projectileDef); - drawBars(10, 42, cont.mInvArmor.data.fireDef); - drawBars(10, 51, cont.mInvArmor.data.magicDef); - drawBars(10, 60, cont.mInvArmor.data.explosionDef); - drawBars(59, 33, cont.mInvArmor.data.radiationDef); - drawBars(59, 42, cont.mInvArmor.data.electricDef); - drawBars(59, 51, cont.mInvArmor.data.witherDef); + drawBars(10, 24, getF(StatType.PHYSICALDEFENCE)); + drawBars(10, 33, getF(StatType.PROJECTILEDEFENCE)); + drawBars(10, 42, getF(StatType.FIREDEFENCE)); + drawBars(10, 51, getF(StatType.MAGICDEFENCE)); + drawBars(10, 60, getF(StatType.EXPLOSIONDEFENCE)); + drawBars(59, 33, getF(StatType.RADIATIONDEFENCE)); + drawBars(59, 42, getF(StatType.ELECTRICALDEFENCE)); + drawBars(59, 51, getF(StatType.WITHERDEFENCE)); + } + + public float getF(StatType aType){ + if(cont.mInvArmor.data.mStat.containsKey(aType)) + return cont.mInvArmor.data.mStat.get(aType); + return .0f; } public void drawBars(int x, int y, float value) { diff --git a/src/main/java/gregtech/common/items/armor/InventoryArmor.java b/src/main/java/gregtech/common/items/armor/gui/InventoryArmor.java index 0d615ed732..ff77584314 100644 --- a/src/main/java/gregtech/common/items/armor/InventoryArmor.java +++ b/src/main/java/gregtech/common/items/armor/gui/InventoryArmor.java @@ -1,6 +1,8 @@ -package gregtech.common.items.armor; +package gregtech.common.items.armor.gui; import gregtech.api.util.GT_Utility; +import gregtech.common.items.armor.ArmorData; +import gregtech.common.items.armor.ModularArmor_Item; import java.util.Random; diff --git a/src/main/java/gregtech/common/items/armor/gui/SlotArmor.java b/src/main/java/gregtech/common/items/armor/gui/SlotArmor.java new file mode 100644 index 0000000000..8e6d2d41e8 --- /dev/null +++ b/src/main/java/gregtech/common/items/armor/gui/SlotArmor.java @@ -0,0 +1,18 @@ +package gregtech.common.items.armor.gui; + +import gregtech.common.items.armor.components.ArmorComponent; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class SlotArmor extends Slot{ + + public SlotArmor(IInventory par1iInventory, int par2, int par3, int par4) { + super(par1iInventory, par2, par3, par4); + } + + @Override + public boolean isItemValid(ItemStack par1ItemStack) { + return ArmorComponent.mStacks.containsKey(par1ItemStack.getUnlocalizedName()); + } +} diff --git a/src/main/java/gregtech/common/items/armor/SlotFluid.java b/src/main/java/gregtech/common/items/armor/gui/SlotFluid.java index 9636cb4549..a3d2bdaf09 100644 --- a/src/main/java/gregtech/common/items/armor/SlotFluid.java +++ b/src/main/java/gregtech/common/items/armor/gui/SlotFluid.java @@ -1,4 +1,4 @@ -package gregtech.common.items.armor; +package gregtech.common.items.armor.gui; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/gregtech/common/items/armor/SlotLocked.java b/src/main/java/gregtech/common/items/armor/gui/SlotLocked.java index b54d8d1027..14012d7674 100644 --- a/src/main/java/gregtech/common/items/armor/SlotLocked.java +++ b/src/main/java/gregtech/common/items/armor/gui/SlotLocked.java @@ -1,4 +1,4 @@ -package gregtech.common.items.armor; +package gregtech.common.items.armor.gui; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; diff --git a/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java index e1fb3ef1db..d22490ddd4 100644 --- a/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java @@ -740,6 +740,21 @@ public class GT_CraftingRecipeLoader implements Runnable { if(Loader.isModLoaded("GraviSuite")){ GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getModItem("GraviSuite", "advNanoChestPlate", 1, GT_Values.W)); GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("GraviSuite", "advNanoChestPlate", 1, GT_Values.W), new Object[]{"CJC","CNC","WPW",'C',OrePrefixes.plateAlloy.get(Materials.Carbon),'J',GT_ModHandler.getModItem("GraviSuite", "advJetpack", 1, GT_Values.W),'N',GT_ModHandler.getIC2Item("nanoBodyarmor", 1L),'W',OrePrefixes.wireGt04.get(Materials.Platinum),'P',OrePrefixes.circuit.get(Materials.Elite)}); - } + } + + long bits = GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE; + GT_ModHandler.addCraftingRecipe(ItemList.ModularBasicHelmet. getWildcard(1, new Object[0]),bits, new Object[] { "AAA", "B B", 'A', new ItemStack(Items.leather, 1, 32767), 'B', OrePrefixes.ring.get(Materials.AnyIron)} ); + GT_ModHandler.addCraftingRecipe(ItemList.ModularBasicChestplate. getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BAB", "AAA", 'A', new ItemStack(Items.leather, 1, 32767), 'B', OrePrefixes.ring.get(Materials.AnyIron)} ); + GT_ModHandler.addCraftingRecipe(ItemList.ModularBasicLeggings. getWildcard(1, new Object[0]),bits, new Object[] { "BAB", "A A", "A A", 'A', new ItemStack(Items.leather, 1, 32767), 'B', OrePrefixes.ring.get(Materials.AnyIron)} ); + GT_ModHandler.addCraftingRecipe(ItemList.ModularBasicBoots. getWildcard(1, new Object[0]),bits, new Object[] { "A A", "B B", "A A", 'A', new ItemStack(Items.leather, 1, 32767), 'B', OrePrefixes.ring.get(Materials.AnyIron)} ); + GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric1Helmet. getWildcard(1, new Object[0]),bits, new Object[] { "ACA", "B B", 'A', OrePrefixes.stick.get(Materials.Aluminium), 'B', OrePrefixes.plate.get(Materials.Steel), 'C', OrePrefixes.battery.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric1Chestplate.getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BCB", "AAA", 'A', OrePrefixes.stick.get(Materials.Aluminium), 'B', OrePrefixes.plate.get(Materials.Steel), 'C', OrePrefixes.battery.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric1Leggings. getWildcard(1, new Object[0]),bits, new Object[] { "BCB", "A A", "A A", 'A', OrePrefixes.stick.get(Materials.Aluminium), 'B', OrePrefixes.plate.get(Materials.Steel), 'C', OrePrefixes.battery.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric1Boots. getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BCB", "A A", 'A', OrePrefixes.stick.get(Materials.Aluminium), 'B', OrePrefixes.plate.get(Materials.Steel), 'C', OrePrefixes.battery.get(Materials.Advanced)}); + GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric2Helmet. getWildcard(1, new Object[0]),bits, new Object[] { "ACA", "B B", 'A', OrePrefixes.stick.get(Materials.TungstenSteel), 'B', OrePrefixes.plateAlloy.get(Materials.Carbon),'C',OrePrefixes.battery.get(Materials.Master)}); + GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric2Chestplate.getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BCB", "AAA", 'A', OrePrefixes.stick.get(Materials.TungstenSteel), 'B', OrePrefixes.plateAlloy.get(Materials.Carbon),'C',OrePrefixes.battery.get(Materials.Master)}); + GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric2Leggings. getWildcard(1, new Object[0]),bits, new Object[] { "BCB", "A A", "A A", 'A', OrePrefixes.stick.get(Materials.TungstenSteel), 'B', OrePrefixes.plateAlloy.get(Materials.Carbon),'C',OrePrefixes.battery.get(Materials.Master)}); + GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric2Boots. getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BCB", "A A", 'A', OrePrefixes.stick.get(Materials.TungstenSteel), 'B', OrePrefixes.plateAlloy.get(Materials.Carbon),'C',OrePrefixes.battery.get(Materials.Master)}); + } } diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java index 0a76375f4a..83d616e392 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java @@ -19,7 +19,6 @@ import gregtech.common.blocks.*; import gregtech.common.items.*;
import gregtech.common.items.armor.ElectricModularArmor1;
import gregtech.common.items.armor.ModularArmor_Item;
-import gregtech.common.items.armor.Values;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
@@ -662,7 +661,6 @@ public class GT_Loader_Item_Block_And_Fluid GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Amber, GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1L, 6));
GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Firestone, GT_ModHandler.getModItem("Railcraft", "firestone.raw", 1L));
- new Values();
ItemList.ModularBasicHelmet.set(new ModularArmor_Item(0, 0, "modulararmor_helmet",0));
ItemList.ModularBasicChestplate.set(new ModularArmor_Item(0, 1, "modulararmor_chestplate",0));
ItemList.ModularBasicLeggings.set(new ModularArmor_Item(0, 2, "modulararmor_leggings",0));
@@ -676,21 +674,6 @@ public class GT_Loader_Item_Block_And_Fluid ItemList.ModularElectric2Leggings.set(new ElectricModularArmor1(0, 2, "modularelectric2_leggings",2));
ItemList.ModularElectric2Boots.set(new ElectricModularArmor1(0, 3, "modularelectric2_boots",2));
-// long bits = GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE;
-// GT_ModHandler.addCraftingRecipe(ItemList.ModularBasicHelmet. getWildcard(1, new Object[0]),bits, new Object[] { "AAA", "B B", 'A', new ItemStack(Items.leather, 1, 32767), 'B', OrePrefixes.ring.get(Materials.AnyIron)} );
-// GT_ModHandler.addCraftingRecipe(ItemList.ModularBasicChestplate. getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BAB", "AAA", 'A', new ItemStack(Items.leather, 1, 32767), 'B', OrePrefixes.ring.get(Materials.AnyIron)} );
-// GT_ModHandler.addCraftingRecipe(ItemList.ModularBasicLeggings. getWildcard(1, new Object[0]),bits, new Object[] { "BAB", "A A", "A A", 'A', new ItemStack(Items.leather, 1, 32767), 'B', OrePrefixes.ring.get(Materials.AnyIron)} );
-// GT_ModHandler.addCraftingRecipe(ItemList.ModularBasicBoots. getWildcard(1, new Object[0]),bits, new Object[] { "A A", "B B", "A A", 'A', new ItemStack(Items.leather, 1, 32767), 'B', OrePrefixes.ring.get(Materials.AnyIron)} );
-// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric1Helmet. getWildcard(1, new Object[0]),bits, new Object[] { "ACA", "B B", 'A', OrePrefixes.stick.get(Materials.Aluminium), 'B', OrePrefixes.plate.get(Materials.Steel), 'C', OrePrefixes.battery.get(Materials.Advanced)});
-// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric1Chestplate.getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BCB", "AAA", 'A', OrePrefixes.stick.get(Materials.Aluminium), 'B', OrePrefixes.plate.get(Materials.Steel), 'C', OrePrefixes.battery.get(Materials.Advanced)});
-// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric1Leggings. getWildcard(1, new Object[0]),bits, new Object[] { "BCB", "A A", "A A", 'A', OrePrefixes.stick.get(Materials.Aluminium), 'B', OrePrefixes.plate.get(Materials.Steel), 'C', OrePrefixes.battery.get(Materials.Advanced)});
-// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric1Boots. getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BCB", "A A", 'A', OrePrefixes.stick.get(Materials.Aluminium), 'B', OrePrefixes.plate.get(Materials.Steel), 'C', OrePrefixes.battery.get(Materials.Advanced)});
-// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric2Helmet. getWildcard(1, new Object[0]),bits, new Object[] { "ACA", "B B", 'A', OrePrefixes.stick.get(Materials.TungstenSteel), 'B', OrePrefixes.plateAlloy.get(Materials.Carbon),'C',OrePrefixes.battery.get(Materials.Master)});
-// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric2Chestplate.getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BCB", "AAA", 'A', OrePrefixes.stick.get(Materials.TungstenSteel), 'B', OrePrefixes.plateAlloy.get(Materials.Carbon),'C',OrePrefixes.battery.get(Materials.Master)});
-// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric2Leggings. getWildcard(1, new Object[0]),bits, new Object[] { "BCB", "A A", "A A", 'A', OrePrefixes.stick.get(Materials.TungstenSteel), 'B', OrePrefixes.plateAlloy.get(Materials.Carbon),'C',OrePrefixes.battery.get(Materials.Master)});
-// GT_ModHandler.addCraftingRecipe(ItemList.ModularElectric2Boots. getWildcard(1, new Object[0]),bits, new Object[] { "A A", "BCB", "A A", 'A', OrePrefixes.stick.get(Materials.TungstenSteel), 'B', OrePrefixes.plateAlloy.get(Materials.Carbon),'C',OrePrefixes.battery.get(Materials.Master)});
-
-
if (GregTech_API.sUnification.get(ConfigCategories.specialunificationtargets + "." + "railcraft", "plateIron", true)) {
GT_OreDictUnificator.set(OrePrefixes.plate, Materials.Iron, GT_ModHandler.getModItem("Railcraft", "part.plate", 1L, 0));
} else {
|