aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/gregtech/GT_Mod.java2
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java4
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java33
-rw-r--r--src/main/java/gregtech/common/items/armor/ArmorCalculation.java353
-rw-r--r--src/main/java/gregtech/common/items/armor/ArmorData.java298
-rw-r--r--src/main/java/gregtech/common/items/armor/ModularArmor_Item.java71
-rw-r--r--src/main/java/gregtech/common/items/armor/Values.java125
-rw-r--r--src/main/java/gregtech/common/items/armor/components/ArmorComponent.java57
-rw-r--r--src/main/java/gregtech/common/items/armor/components/ArmorComponentBattery.java19
-rw-r--r--src/main/java/gregtech/common/items/armor/components/ArmorComponentFunction.java22
-rw-r--r--src/main/java/gregtech/common/items/armor/components/ArmorElectricComponent.java30
-rw-r--r--src/main/java/gregtech/common/items/armor/components/ArmorPlating.java67
-rw-r--r--src/main/java/gregtech/common/items/armor/components/IArmorComponent.java11
-rw-r--r--src/main/java/gregtech/common/items/armor/components/LoadArmorComponents.java230
-rw-r--r--src/main/java/gregtech/common/items/armor/components/StatType.java56
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/ContainerBasicArmor.java (renamed from src/main/java/gregtech/common/items/armor/ContainerBasicArmor.java)20
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/ContainerElectricArmor1.java (renamed from src/main/java/gregtech/common/items/armor/ContainerElectricArmor1.java)26
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/ContainerModularArmor.java (renamed from src/main/java/gregtech/common/items/armor/ContainerModularArmor.java)8
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/FluidSync.java (renamed from src/main/java/gregtech/common/items/armor/FluidSync.java)2
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/FluidSync2.java (renamed from src/main/java/gregtech/common/items/armor/FluidSync2.java)2
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/GuiElectricArmor1.java (renamed from src/main/java/gregtech/common/items/armor/GuiElectricArmor1.java)95
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/GuiModularArmor.java (renamed from src/main/java/gregtech/common/items/armor/GuiModularArmor.java)89
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/InventoryArmor.java (renamed from src/main/java/gregtech/common/items/armor/InventoryArmor.java)4
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/SlotArmor.java18
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/SlotFluid.java (renamed from src/main/java/gregtech/common/items/armor/SlotFluid.java)2
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/SlotLocked.java (renamed from src/main/java/gregtech/common/items/armor/SlotLocked.java)2
-rw-r--r--src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java17
-rw-r--r--src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java17
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 {