aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/gregtech/GT_Mod.java3
-rw-r--r--src/main/java/gregtech/api/GregTech_API.java2
-rw-r--r--src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java5
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java6
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java20
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java21
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java5
-rw-r--r--src/main/java/gregtech/api/util/GT_LanguageManager.java16
-rw-r--r--src/main/java/gregtech/api/util/GT_Utility.java4
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java39
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Item_Machines.java10
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java245
-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.java68
-rw-r--r--src/main/java/gregtech/common/items/armor/components/ArmorComponentBattery.java18
-rw-r--r--src/main/java/gregtech/common/items/armor/components/ArmorComponentFunction.java21
-rw-r--r--src/main/java/gregtech/common/items/armor/components/ArmorElectricComponent.java31
-rw-r--r--src/main/java/gregtech/common/items/armor/components/ArmorPlating.java103
-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.java251
-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/common/items/behaviors/Behaviour_Sense.java6
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java1
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java7
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java1
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java1
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java1
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java1
-rw-r--r--src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java29
-rw-r--r--src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java40
-rw-r--r--src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java17
46 files changed, 1186 insertions, 972 deletions
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java
index 2e727f7250..77e9cfaaa0 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;
@@ -124,6 +125,7 @@ public class GT_Mod implements IGT_Mod {
GregTech_API.sUnification = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "Unification.cfg")));
GregTech_API.sSpecialFile = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "Other.cfg")));
GregTech_API.sOPStuff = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "OverpoweredStuff.cfg")));
+ GregTech_API.sModularArmor = new GT_Config(new Configuration(new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "ModularArmor.cfg")));
GregTech_API.sClientDataFile = new GT_Config(new Configuration(new File(aEvent.getModConfigurationDirectory().getParentFile(), "GregTech.cfg")));
GregTech_API.mIC2Classic = Loader.isModLoaded("IC2-Classic-Spmod");
@@ -537,6 +539,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/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java
index 691e83e8e6..9633eb3950 100644
--- a/src/main/java/gregtech/api/GregTech_API.java
+++ b/src/main/java/gregtech/api/GregTech_API.java
@@ -171,7 +171,7 @@ public class GregTech_API {
/**
* The Configuration Objects
*/
- public static GT_Config sRecipeFile = null, sMachineFile = null, sWorldgenFile = null, sMaterialProperties = null, sMaterialComponents = null, sUnification = null, sSpecialFile = null, sClientDataFile, sOPStuff = null;
+ public static GT_Config sRecipeFile = null, sMachineFile = null, sWorldgenFile = null, sModularArmor = null, sMaterialProperties = null, sMaterialComponents = null, sUnification = null, sSpecialFile = null, sClientDataFile, sOPStuff = null;
public static int TICKS_FOR_LAG_AVERAGING = 25, MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING = 100;
/**
* Initialized by the Block creation.
diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java
index 0fae6d119b..b368a47b66 100644
--- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java
+++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java
@@ -6,6 +6,7 @@ import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import crazypants.enderio.api.tool.ITool;
import forestry.api.arboriculture.IToolGrafter;
+import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.enchants.Enchantment_Radioactivity;
import gregtech.api.enums.Materials;
@@ -16,6 +17,7 @@ import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
+import gregtech.common.GT_Proxy;
import mods.railcraft.api.core.items.IToolCrowbar;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -476,7 +478,8 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements
if (tStats == null) return null;
doDamage(aStack, tStats.getToolDamagePerContainerCraft());
aStack = aStack.stackSize > 0 ? aStack : null;
- if (playSound) {
+ if (playSound && GT_Mod.gregtechproxy.mTicksUntilNextCraftSound <= 0) {
+ GT_Mod.gregtechproxy.mTicksUntilNextCraftSound = 10;
String sound = (aStack == null) ? tStats.getBreakingSound() : tStats.getCraftingSound();
GT_Utility.doSoundAtClient(sound, 1, 1.0F);
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java
index c79bca8df2..fdb3c0da8b 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java
@@ -267,9 +267,9 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
@Override
public String[] getDescription() {
return new String[]{
- "Max Voltage: " + EnumChatFormatting.GREEN + mVoltage + " (" + VN[GT_Utility.getTier(mVoltage)] + ")" + EnumChatFormatting.GRAY,
- "Max Amperage: " + EnumChatFormatting.YELLOW + mAmperage + EnumChatFormatting.GRAY,
- "Loss/Meter/Ampere: " + EnumChatFormatting.RED + mCableLossPerMeter + EnumChatFormatting.GRAY + " EU-Volt"
+ "Max Voltage: %%%" + EnumChatFormatting.GREEN + mVoltage + " (" + VN[GT_Utility.getTier(mVoltage)] + ")" + EnumChatFormatting.GRAY,
+ "Max Amperage: %%%" + EnumChatFormatting.YELLOW + mAmperage + EnumChatFormatting.GRAY,
+ "Loss/Meter/Ampere: %%%" + EnumChatFormatting.RED + mCableLossPerMeter + EnumChatFormatting.GRAY + " EU-Volt"
};
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java
index 560ddb0947..effff677d7 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java
@@ -2,6 +2,7 @@ package gregtech.api.metatileentity.implementations;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Dyes;
+import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.SubTag;
@@ -203,7 +204,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
continue;
}
}
- }
+ }
FluidTankInfo[] tInfo = tTileEntity.getTankInfo(ForgeDirection.getOrientation(tSide).getOpposite());
if (tInfo != null && tInfo.length > 0) {
if (tTileEntity instanceof ICoverable && ((ICoverable) tTileEntity).getCoverBehaviorAtSide(GT_Utility.getOppositeSide(tSide)).alwaysLookConnected(GT_Utility.getOppositeSide(tSide), ((ICoverable) tTileEntity).getCoverIDAtSide(GT_Utility.getOppositeSide(tSide)), ((ICoverable) tTileEntity).getCoverDataAtSide(GT_Utility.getOppositeSide(tSide)), ((ICoverable) tTileEntity))) {
@@ -217,9 +218,22 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
if (((1 << tSide) & mLastReceivedFrom) == 0)
tTanks.put(tTileEntity, ForgeDirection.getOrientation(tSide).getOpposite());
}
+
if (aBaseMetaTileEntity.getCoverBehaviorAtSide(tSide).alwaysLookConnected(tSide, aBaseMetaTileEntity.getCoverIDAtSide(tSide), aBaseMetaTileEntity.getCoverDataAtSide(tSide), aBaseMetaTileEntity)) {
mConnections |= (1 << tSide);
}
+ }else if(tInfo != null && tInfo.length == 0){
+ IGregTechTileEntity tSideTile = aBaseMetaTileEntity.getIGregTechTileEntityAtSide(tSide);
+ if(tSideTile!=null){
+ ItemStack tCover = tSideTile.getCoverItemAtSide(GT_Utility.getOppositeSide(tSide));
+ if (tCover!=null &&(GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_LV.get(1, new Object[]{},true)) ||
+ GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_MV.get(1, new Object[]{},true)) ||
+ GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_HV.get(1, new Object[]{},true)) ||
+ GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_EV.get(1, new Object[]{},true)) ||
+ GT_Utility.areStacksEqual(tCover, ItemList.FluidRegulator_IV.get(1, new Object[]{},true)))) {
+ mConnections |= (1 << tSide);
+ }
+ }
}
}
}
@@ -365,8 +379,8 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
@Override
public String[] getDescription() {
return new String[]{
- EnumChatFormatting.BLUE + "Fluid Capacity: " + (mCapacity * 20) + "L/sec" + EnumChatFormatting.GRAY,
- EnumChatFormatting.RED + "Heat Limit: " + mHeatResistance + " K" + EnumChatFormatting.GRAY
+ EnumChatFormatting.BLUE + "Fluid Capacity: %%%" + (mCapacity * 20) + "L/sec" + EnumChatFormatting.GRAY,
+ EnumChatFormatting.RED + "Heat Limit: %%%" + mHeatResistance + " K" + EnumChatFormatting.GRAY
};
}
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 6340939ee7..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
@@ -30,7 +30,6 @@ import scala.actors.threadpool.Arrays;
public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch {
public boolean mWrench = false, mScrewdriver = false, mSoftHammer = false, mHardHammer = false, mSolderingTool = false, mCrowbar = false, mAuto;
- public GT_MetaTileEntity_MultiBlockBase mController = null;
public GT_MetaTileEntity_Hatch_Maintenance(int aID, String aName, String aNameRegional, int aTier) {
super(aID, aName, aNameRegional, aTier, 1, "For maintaining Multiblocks");
@@ -38,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;
}
@@ -49,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!"};
}
@@ -113,10 +112,7 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch
return new GT_GUIContainer_MaintenanceHatch(aPlayerInventory, aBaseMetaTileEntity);
}
- @Override
- public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) {
- if (aBaseMetaTileEntity.isServerSide() && aTimer % 100 == 0 && mController != null) {
- if(!mController.mCrowbar || !mController.mHardHammer || !mController.mScrewdriver || !mController.mSoftHammer || !mController.mSolderingTool || !mController.mWrench){
+ public boolean autoMaintainance() {
boolean tSuccess = true;
ItemStack[] mInputs = new ItemStack[]{ItemList.Duct_Tape.get(4, new Object[]{}),GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Lubricant, 2),GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 4),GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2)};
List<ItemStack> aInputs = Arrays.asList(mInventory);
@@ -161,11 +157,10 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch
this.mScrewdriver = true;
this.mSoftHammer = true;
this.mSolderingTool = true;
- this.mWrench = true;
+ this.mWrench = true;
+ return true;
}
- }
- }
- super.onPostTick(aBaseMetaTileEntity, aTimer);
+ return false;
}
public void onToolClick(ItemStack aStack, EntityLivingBase aPlayer) {
@@ -201,8 +196,4 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch
public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
return false;
}
-
- public void setController(GT_MetaTileEntity_MultiBlockBase aController){
- mController = aController;
- }
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index b7e740cb6f..4edb0ae5a4 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -206,7 +206,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
for (GT_MetaTileEntity_Hatch_Maintenance tHatch : mMaintenanceHatches) {
if (isValidMetaTileEntity(tHatch)) {
if (!this.disableMaintenance) {
- tHatch.setController(this);
+ if(tHatch.mAuto && (!mWrench||!mScrewdriver||!mSoftHammer||!mHardHammer||!mSolderingTool||!mCrowbar))tHatch.autoMaintainance();
if (tHatch.mWrench) mWrench = true;
if (tHatch.mScrewdriver) mScrewdriver = true;
if (tHatch.mSoftHammer) mSoftHammer = true;
@@ -714,8 +714,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
if (aMetaTileEntity == null) return false;
if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) {
- ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex;
- ((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity).setController(this);
+ ((GT_MetaTileEntity_Hatch) aMetaTileEntity).mMachineBlock = (byte) aBaseCasingIndex;
return mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity);
}
return false;
diff --git a/src/main/java/gregtech/api/util/GT_LanguageManager.java b/src/main/java/gregtech/api/util/GT_LanguageManager.java
index 9937d0c069..36b543b183 100644
--- a/src/main/java/gregtech/api/util/GT_LanguageManager.java
+++ b/src/main/java/gregtech/api/util/GT_LanguageManager.java
@@ -14,8 +14,9 @@ import java.util.Map.Entry;
import static gregtech.api.enums.GT_Values.E;
public class GT_LanguageManager {
- public static final HashMap<String, String> TEMPMAP = new HashMap<String, String>(), BUFFERMAP = new HashMap<String, String>();
+ public static final HashMap<String, String> TEMPMAP = new HashMap<String, String>(), BUFFERMAP = new HashMap<String, String>(), LANGMAP = new HashMap<String, String>();
public static Configuration sEnglishFile;
+ public static boolean sUseEnglishFile = false;
public static String addStringLocalization(String aKey, String aEnglish) {
return addStringLocalization(aKey, aEnglish, true);
@@ -23,10 +24,17 @@ public class GT_LanguageManager {
public static String addStringLocalization(String aKey, String aEnglish, boolean aWriteIntoLangFile) {
if (aKey == null) return E;
- if (aWriteIntoLangFile) aEnglish = writeToLangFile(aKey, aEnglish);
+ if (aWriteIntoLangFile){ aEnglish = writeToLangFile(aKey, aEnglish);
+ if(!LANGMAP.containsKey(aKey)){
+ LANGMAP.put(aKey, aEnglish);
+ }
+ }
TEMPMAP.put(aKey.trim(), aEnglish);
LanguageRegistry.instance().injectLanguage("en_US", TEMPMAP);
TEMPMAP.clear();
+ if(sUseEnglishFile && !aWriteIntoLangFile && LANGMAP.containsKey(aKey)){
+ aEnglish = LANGMAP.get(aKey);
+ }
return aEnglish;
}
@@ -44,8 +52,10 @@ public class GT_LanguageManager {
}
Property tProperty = sEnglishFile.get("LanguageFile", aKey.trim(), aEnglish);
if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) sEnglishFile.save();
- if (sEnglishFile.get("EnableLangFile", "UseThisFileAsLanguageFile", false).getBoolean(false))
+ if (sEnglishFile.get("EnableLangFile", "UseThisFileAsLanguageFile", false).getBoolean(false)){
aEnglish = tProperty.getString();
+ sUseEnglishFile = true;
+ }
}
return aEnglish;
}
diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java
index a16c4213dd..fe3565cd9f 100644
--- a/src/main/java/gregtech/api/util/GT_Utility.java
+++ b/src/main/java/gregtech/api/util/GT_Utility.java
@@ -1754,7 +1754,7 @@ public class GT_Utility {
tList.add("Oil in Chunk: " + tFluid.amount + " " + tFluid.getLocalizedName());
}
// if(aPlayer.capabilities.isCreativeMode){
- ChunkPosition tPos = new ChunkPosition(aX/16, 1, aZ/16);
+ ChunkPosition tPos = new ChunkPosition(aX>>4, 1, aZ>>4);
if(GT_Proxy.chunkData.containsKey(tPos)){
int[] tPollution = GT_Proxy.chunkData.get(tPos);
if(tPollution.length>1){
@@ -2075,4 +2075,4 @@ public class GT_Utility {
}
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java
index 00bc5ab0c1..34c317c8b8 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;
@@ -173,6 +178,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
public int mPollutionPoisonLimit = 750000;
public int mPollutionVegetationLimit = 1000000;
public int mPollutionSourRainLimit = 2000000;
+ public int mTicksUntilNextCraftSound = 0;
public double mMagneticraftBonusOutputPercent = 100.0d;
private World mUniverse = null;
private final String aTextThermalExpansion = "ThermalExpansion";
@@ -815,6 +821,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
}
return;
}
+ }else if(this.mIgnoredNames.contains(aEvent.Name)){
GT_Log.ore.println(tModToName + " is getting ignored via hardcode.");
return;
}
@@ -1186,10 +1193,12 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
@SubscribeEvent
public void onWorldTickEvent(TickEvent.WorldTickEvent aEvent) {
+ if(aEvent.world.provider.dimensionId == 0)
+ mTicksUntilNextCraftSound--;
if (aEvent.side.isServer()) {
if (this.mUniverse == null) {
this.mUniverse = aEvent.world;
- }
+ }
if (this.isFirstServerWorldTick) {
File tSaveDiretory = getSaveDirectory();
if (tSaveDiretory != null) {
@@ -1312,6 +1321,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();
@@ -1352,6 +1375,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/blocks/GT_Item_Machines.java b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
index 281176542f..4014b01f39 100644
--- a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
+++ b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
@@ -45,8 +45,14 @@ public class GT_Item_Machines
int i = 0;
for (String tDescription : tTileEntity.getDescription()) {
if (GT_Utility.isStringValid(tDescription)) {
- aList.add(GT_LanguageManager.addStringLocalization("TileEntity_DESCRIPTION_" + tDamage + "_Index_" + i++, tDescription, !GregTech_API.sPostloadFinished ));
- }
+ if(tDescription.contains("%%%")){
+ String[] tString = tDescription.split("%%%");
+ if(tString.length>=2){
+ aList.add(GT_LanguageManager.addStringLocalization("TileEntity_DESCRIPTION_" + tDamage + "_Index_" + i++, tString[0], !GregTech_API.sPostloadFinished )+" "+tString[1]);
+ }
+ }else{String tTranslated = GT_LanguageManager.addStringLocalization("TileEntity_DESCRIPTION_" + tDamage + "_Index_" + i++, tDescription, !GregTech_API.sPostloadFinished );
+ aList.add(tTranslated.equals("") ? tDescription : tTranslated);}
+ }else i++;
}
}
if (tTileEntity.getEUCapacity() > 0L) {
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java b/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java
index c3d101ba4c..ff47dfdc97 100644
--- a/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java
+++ b/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java
@@ -9,130 +9,123 @@ import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidHandler;
-public class GT_Cover_FluidRegulator
- extends GT_CoverBehavior {
- public final int mTransferRate;
-
- public GT_Cover_FluidRegulator(int aTransferRate) {
- this.mTransferRate = aTransferRate;
- }
-
- public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity, long aTimer) {
- if (aCoverVariable == 0) {
- return aCoverVariable;
- }
- if ((aTileEntity instanceof IFluidHandler)) {
- IFluidHandler tTank2 = aTileEntity.getITankContainerAtSide(aSide);
- if (tTank2 != null) {
- IFluidHandler tTank1 = (IFluidHandler) aTileEntity;
- if (aCoverVariable > 0) {
- FluidStack tLiquid = tTank1.drain(ForgeDirection.UNKNOWN, aCoverVariable, false);
- if (tLiquid != null) {
- tLiquid = tLiquid.copy();
- tLiquid.amount = tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tLiquid, false);
- if (tLiquid.amount > 0) {
- if (aTileEntity.getUniversalEnergyCapacity() >= Math.min(1, tLiquid.amount / 10)) {
- if (aTileEntity.isUniversalEnergyStored(Math.min(1, tLiquid.amount / 10))) {
- aTileEntity.decreaseStoredEnergyUnits(Math.min(1, tLiquid.amount / 10), true);
- tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tTank1.drain(ForgeDirection.UNKNOWN, tLiquid.amount, true), true);
- }
- } else {
- tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tTank1.drain(ForgeDirection.UNKNOWN, tLiquid.amount, true), true);
- }
- }
- }
- } else {
- FluidStack tLiquid = tTank2.drain(ForgeDirection.getOrientation(aSide).getOpposite(), Math.abs(aCoverVariable), false);
- if (tLiquid != null) {
- tLiquid = tLiquid.copy();
- tLiquid.amount = tTank1.fill(ForgeDirection.UNKNOWN, tLiquid, false);
- if (tLiquid.amount > 0) {
- if (aTileEntity.getUniversalEnergyCapacity() >= Math.min(1, tLiquid.amount / 10)) {
- if (aTileEntity.isUniversalEnergyStored(Math.min(1, tLiquid.amount / 10))) {
- aTileEntity.decreaseStoredEnergyUnits(Math.min(1, tLiquid.amount / 10), true);
- tTank1.fill(ForgeDirection.UNKNOWN, tTank2.drain(ForgeDirection.getOrientation(aSide).getOpposite(), tLiquid.amount, true), true);
- }
- } else {
- tTank1.fill(ForgeDirection.UNKNOWN, tTank2.drain(ForgeDirection.getOrientation(aSide).getOpposite(), tLiquid.amount, true), true);
- }
- }
- }
- }
- }
- }
- return aCoverVariable;
- }
-
- public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- if (GT_Utility.getClickedFacingCoords(aSide, aX, aY, aZ)[0] >= 0.5F) {
- aCoverVariable += 16;
- } else {
- aCoverVariable -= 16;
- }
- if (aCoverVariable > mTransferRate) {
- aCoverVariable = mTransferRate;
- }
- if (aCoverVariable < (0 - mTransferRate)) {
- aCoverVariable = (0 - mTransferRate);
- }
- GT_Utility.sendChatToPlayer(aPlayer, "Pump speed: " + aCoverVariable + "L/tick " + aCoverVariable * 20 + "L/sec");
- return aCoverVariable;
- }
-
- public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- if (GT_Utility.getClickedFacingCoords(aSide, aX, aY, aZ)[0] >= 0.5F) {
- aCoverVariable++;
- } else {
- aCoverVariable--;
- }
- if (aCoverVariable > mTransferRate) {
- aCoverVariable = mTransferRate;
- }
- if (aCoverVariable < (0 - mTransferRate)) {
- aCoverVariable = (0 - mTransferRate);
- }
- GT_Utility.sendChatToPlayer(aPlayer, "Pump speed: " + aCoverVariable + "L/tick " + aCoverVariable * 20 + "L/sec");
- aTileEntity.setCoverDataAtSide(aSide, aCoverVariable);
- return true;
- }
-
- public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
- return true;
- }
-
- public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
- return true;
- }
-
- public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
- return true;
- }
-
- public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
- return true;
- }
-
- public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) {
- return true;
- }
-
- public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) {
- return true;
- }
-
- public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) {
- return false;
- }
-
- public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) {
- return aFluid == null;
- }
-
- public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
- return true;
- }
-
- public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
- return 1;
- }
+public class GT_Cover_FluidRegulator extends GT_CoverBehavior {
+ public final int mTransferRate;
+
+ public GT_Cover_FluidRegulator(int aTransferRate) {
+ this.mTransferRate = aTransferRate;
+ }
+
+ public int doCoverThings(byte aSide, byte aInputRedstone, int aCoverID, int aCoverVariable, ICoverable aTileEntity,
+ long aTimer) {
+ if (aCoverVariable == 0) {
+ return aCoverVariable;
+ }
+ if ((aTileEntity instanceof IFluidHandler)) {
+ IFluidHandler tTank1;
+ IFluidHandler tTank2;
+ if (aCoverVariable > 0) {
+ tTank2 = aTileEntity.getITankContainerAtSide(aSide);
+ tTank1 = (IFluidHandler) aTileEntity;
+ } else {
+ tTank1 = aTileEntity.getITankContainerAtSide(aSide);
+ tTank2 = (IFluidHandler) aTileEntity;
+ }
+ if (tTank1 != null && tTank2 != null) {
+ FluidStack tLiquid = tTank1.drain(ForgeDirection.UNKNOWN, Math.abs(aCoverVariable), false);
+ if (tLiquid != null) {
+ tLiquid = tLiquid.copy();
+ tLiquid.amount = tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tLiquid, false);
+ if (tLiquid.amount > 0) {
+ if (aTileEntity.getUniversalEnergyCapacity() >= Math.min(1, tLiquid.amount / 10)) {
+ if (aTileEntity.isUniversalEnergyStored(Math.min(1, tLiquid.amount / 10))) {
+ aTileEntity.decreaseStoredEnergyUnits(Math.min(1, tLiquid.amount / 10), true);
+ tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tTank1.drain(ForgeDirection.UNKNOWN, tLiquid.amount, true), true);
+ }
+ } else {
+ tTank2.fill(ForgeDirection.getOrientation(aSide).getOpposite(), tTank1.drain(ForgeDirection.UNKNOWN, tLiquid.amount, true), true);
+ }
+ }
+ }
+ }
+ }
+ return aCoverVariable;
+ }
+
+ public int onCoverScrewdriverclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity,
+ EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ if (GT_Utility.getClickedFacingCoords(aSide, aX, aY, aZ)[0] >= 0.5F) {
+ aCoverVariable += 16;
+ } else {
+ aCoverVariable -= 16;
+ }
+ if (aCoverVariable > mTransferRate) {
+ aCoverVariable = mTransferRate;
+ }
+ if (aCoverVariable < (0 - mTransferRate)) {
+ aCoverVariable = (0 - mTransferRate);
+ }
+ GT_Utility.sendChatToPlayer(aPlayer,
+ "Pump speed: " + aCoverVariable + "L/tick " + aCoverVariable * 20 + "L/sec");
+ return aCoverVariable;
+ }
+
+ public boolean onCoverRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity,
+ EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ if (GT_Utility.getClickedFacingCoords(aSide, aX, aY, aZ)[0] >= 0.5F) {
+ aCoverVariable++;
+ } else {
+ aCoverVariable--;
+ }
+ if (aCoverVariable > mTransferRate) {
+ aCoverVariable = mTransferRate;
+ }
+ if (aCoverVariable < (0 - mTransferRate)) {
+ aCoverVariable = (0 - mTransferRate);
+ }
+ GT_Utility.sendChatToPlayer(aPlayer,
+ "Pump speed: " + aCoverVariable + "L/tick " + aCoverVariable * 20 + "L/sec");
+ aTileEntity.setCoverDataAtSide(aSide, aCoverVariable);
+ return true;
+ }
+
+ public boolean letsRedstoneGoIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
+ return true;
+ }
+
+ public boolean letsRedstoneGoOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
+ return true;
+ }
+
+ public boolean letsEnergyIn(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
+ return true;
+ }
+
+ public boolean letsEnergyOut(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
+ return true;
+ }
+
+ public boolean letsItemsIn(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) {
+ return true;
+ }
+
+ public boolean letsItemsOut(byte aSide, int aCoverID, int aCoverVariable, int aSlot, ICoverable aTileEntity) {
+ return true;
+ }
+
+ public boolean letsFluidIn(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) {
+ return false;
+ }
+
+ public boolean letsFluidOut(byte aSide, int aCoverID, int aCoverVariable, Fluid aFluid, ICoverable aTileEntity) {
+ return false;
+ }
+
+ public boolean alwaysLookConnected(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
+ return true;
+ }
+
+ public int getTickRate(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity) {
+ return 1;
+ }
}
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..1d65f973ed
--- /dev/null
+++ b/src/main/java/gregtech/common/items/armor/components/ArmorComponent.java
@@ -0,0 +1,68 @@
+package gregtech.common.items.armor.components;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier;
+import gregtech.api.GregTech_API;
+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 String mConfigName;
+ 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 aName, String aOreDict, boolean aElectric, float aWeight){
+ mConfigName = aName;
+ if(!GregTech_API.sModularArmor.get( mConfigName, "Enabled", true))return;
+ mOreDict = GregTech_API.sModularArmor.get( mConfigName, "OreDict", 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, (float) GregTech_API.sModularArmor.get( mConfigName, "Weight", aWeight));
+ }
+
+ public ArmorComponent(String aName, ItemStack aStack, boolean aElectric, float aWeight){
+ mConfigName = aName;
+ String tStackName = GregTech_API.sModularArmor.get( mConfigName, "Stack", GameRegistry.findUniqueIdentifierFor(aStack.getItem()).toString()+(aStack.getItemDamage()==0 ? "" : ":"+aStack.getItemDamage()));
+ mStack = GameRegistry.findItemStack(tStackName.split(":")[0], tStackName.split(":")[1], 1);
+ if(tStackName.split(":").length>2)mStack.setItemDamage(Integer.parseInt(tStackName.split(":")[2]));
+ if(!GregTech_API.sModularArmor.get( mConfigName, "Enabled", true))return;
+ mStack = aStack;
+ mBStat.put(StatType.ELECTRIC, aElectric);
+ mStacks.put(aStack.getUnlocalizedName(), this);
+ mStat.put(StatType.WEIGHT, (float) GregTech_API.sModularArmor.get( mConfigName, "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..15946863fb
--- /dev/null
+++ b/src/main/java/gregtech/common/items/armor/components/ArmorComponentBattery.java
@@ -0,0 +1,18 @@
+package gregtech.common.items.armor.components;
+
+import gregtech.api.GregTech_API;
+import gregtech.common.items.armor.ArmorData;
+import net.minecraft.item.ItemStack;
+
+public class ArmorComponentBattery extends ArmorComponent{
+ public ArmorComponentBattery(String aName, ItemStack aStack, boolean aElectric, float aWeight, float aBatteryCapacity) {
+ super(aName, aStack, aElectric, aWeight);
+ mStat.put(StatType.BATTERYCAPACITY, (float) GregTech_API.sModularArmor.get( mConfigName, "ProcessingUsed", aBatteryCapacity));
+ }
+
+ @Override
+ public void calculateArmor(ArmorData 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..dcdc59d19c
--- /dev/null
+++ b/src/main/java/gregtech/common/items/armor/components/ArmorComponentFunction.java
@@ -0,0 +1,21 @@
+package gregtech.common.items.armor.components;
+
+import gregtech.api.GregTech_API;
+import gregtech.common.items.armor.ArmorData;
+import net.minecraft.item.ItemStack;
+
+public class ArmorComponentFunction extends ArmorComponent{
+ StatType mType;
+ public ArmorComponentFunction(String aName, ItemStack aStack, boolean aElectric, float aWeight, StatType aType, float aProcessingUsed) {
+ super(aName, aStack, aElectric, aWeight);
+ mType = StatType.valueOf(GregTech_API.sModularArmor.get(mConfigName, "StatType", aType.toString()));
+ mStat.put(StatType.PROCESSINGPOWERUSED, (float) GregTech_API.sModularArmor.get( mConfigName, "ProcessingUsed", aProcessingUsed));
+ }
+
+ @Override
+ public void calculateArmor(ArmorData 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..3e9e22ee28
--- /dev/null
+++ b/src/main/java/gregtech/common/items/armor/components/ArmorElectricComponent.java
@@ -0,0 +1,31 @@
+package gregtech.common.items.armor.components;
+
+import gregtech.api.GregTech_API;
+import gregtech.common.items.armor.ArmorData;
+import net.minecraft.item.ItemStack;
+
+public class ArmorElectricComponent extends ArmorComponent{
+ StatType mType1;
+ StatType mType2;
+ StatType mType3;
+
+ public ArmorElectricComponent(String aName, ItemStack aStack, float aWeight, StatType aType1, float aValue1, StatType aType2, float aValue2, StatType aType3, float aValue3) {
+ super(aName, aStack, true, aWeight);
+ mType1 = StatType.valueOf(GregTech_API.sModularArmor.get(mConfigName, "StatType", aType1.toString()));
+ String tType2 = GregTech_API.sModularArmor.get(mConfigName, "StatType", aType2==null ? "null" : aType2.toString());
+ mType2 = tType2.equals("null") ? null : StatType.valueOf(tType2);
+ String tType3 = GregTech_API.sModularArmor.get(mConfigName, "StatType", aType3==null ? "null" : aType3.toString());
+ mType3 = tType3.equals("null") ? null : StatType.valueOf(tType3);
+ mStat.put(aType1, (float) GregTech_API.sModularArmor.get( mConfigName, "Value1", aValue1));
+ if(mType2!=null)mStat.put(mType2, (float) GregTech_API.sModularArmor.get( mConfigName, "Value2", aValue2));
+ if(mType3!=null)mStat.put(mType3, (float) GregTech_API.sModularArmor.get( mConfigName, "Value3", aValue3));
+ }
+
+ @Override
+ public void calculateArmor(ArmorData aArmorData) {
+ addVal(mType1, aArmorData);
+ if(mType2!=null)addVal(mType2, aArmorData);
+ if(mType3!=null)addVal(mType3, 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..9f87678e05
--- /dev/null
+++ b/src/main/java/gregtech/common/items/armor/components/ArmorPlating.java
@@ -0,0 +1,103 @@
+package gregtech.common.items.armor.components;
+
+import gregtech.api.GregTech_API;
+import gregtech.common.items.armor.ArmorData;
+import net.minecraft.item.ItemStack;
+
+public class ArmorPlating extends ArmorComponent{
+ StatType mType;
+ public ArmorPlating(String aName, ItemStack aStack, float aWeight, float aPhysicalDef, float aProjectileDef, float aFireDef, float aMagicDef, float aExplosionDef, float aFallDef, float aRadiationDef, float aElectricDef, float aWitherDef) {
+ super(aName, aStack, false, aWeight);
+ aPhysicalDef = (float) GregTech_API.sModularArmor.get( mConfigName, "PhysicalDef", aPhysicalDef);
+ aProjectileDef = (float) GregTech_API.sModularArmor.get( mConfigName, "ProjectileDef", aProjectileDef);
+ aFireDef = (float) GregTech_API.sModularArmor.get( mConfigName, "FireDef", aFireDef);
+ aMagicDef = (float) GregTech_API.sModularArmor.get( mConfigName, "MagicDef", aMagicDef);
+ aExplosionDef = (float) GregTech_API.sModularArmor.get( mConfigName, "ExplosionDef", aExplosionDef);
+ aFallDef = (float) GregTech_API.sModularArmor.get( mConfigName, "FallDef", aFallDef);
+ aRadiationDef = (float) GregTech_API.sModularArmor.get( mConfigName, "RadiationDef", aRadiationDef);
+ aElectricDef = (float) GregTech_API.sModularArmor.get( mConfigName, "ElectricalDef", aElectricDef);
+ aWitherDef = (float) GregTech_API.sModularArmor.get( mConfigName, "WitherDef", aWitherDef);
+ addStats(aPhysicalDef, aProjectileDef, aFireDef, aMagicDef, aExplosionDef, aFallDef, aRadiationDef, aElectricDef, aWitherDef);
+ }
+
+ public ArmorPlating(String aName, String aOreDict, float aWeight, float aPhysicalDef, float aProjectileDef, float aFireDef, float aMagicDef, float aExplosionDef, float aFallDef, float aRadiationDef, float aElectricDef, float aWitherDef) {
+ super(aName, aOreDict, false, aWeight);
+ aPhysicalDef = (float) GregTech_API.sModularArmor.get( mConfigName, "PhysicalDef", aPhysicalDef);
+ aProjectileDef = (float) GregTech_API.sModularArmor.get( mConfigName, "ProjectileDef", aProjectileDef);
+ aFireDef = (float) GregTech_API.sModularArmor.get( mConfigName, "FireDef", aFireDef);
+ aMagicDef = (float) GregTech_API.sModularArmor.get( mConfigName, "MagicDef", aMagicDef);
+ aExplosionDef = (float) GregTech_API.sModularArmor.get( mConfigName, "ExplosionDef", aExplosionDef);
+ aFallDef = (float) GregTech_API.sModularArmor.get( mConfigName, "FallDef", aFallDef);
+ aRadiationDef = (float) GregTech_API.sModularArmor.get( mConfigName, "RadiationDef", aRadiationDef);
+ aElectricDef = (float) GregTech_API.sModularArmor.get( mConfigName, "ElectricalDef", aElectricDef);
+ aWitherDef = (float) GregTech_API.sModularArmor.get( mConfigName, "WitherDef", aWitherDef);
+ addStats(aPhysicalDef, aProjectileDef, aFireDef, aMagicDef, aExplosionDef, aFallDef, aRadiationDef, aElectricDef, aWitherDef);
+ }
+
+ public ArmorPlating(String aName, 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(aName, aOreDict, false, aWeight);
+ aPhysicalDef = (float) GregTech_API.sModularArmor.get( mConfigName, "PhysicalDef", aPhysicalDef);
+ aProjectileDef = (float) GregTech_API.sModularArmor.get( mConfigName, "ProjectileDef", aProjectileDef);
+ aFireDef = (float) GregTech_API.sModularArmor.get( mConfigName, "FireDef", aFireDef);
+ aMagicDef = (float) GregTech_API.sModularArmor.get( mConfigName, "MagicDef", aMagicDef);
+ aExplosionDef = (float) GregTech_API.sModularArmor.get( mConfigName, "ExplosionDef", aExplosionDef);
+ aFallDef = (float) GregTech_API.sModularArmor.get( mConfigName, "FallDef", aFallDef);
+ aRadiationDef = (float) GregTech_API.sModularArmor.get( mConfigName, "RadiationDef", aRadiationDef);
+ aElectricDef = (float) GregTech_API.sModularArmor.get( mConfigName, "ElectricalDef", aElectricDef);
+ aWitherDef = (float) GregTech_API.sModularArmor.get( mConfigName, "WitherDef", aWitherDef);
+ addStats(aPhysicalDef, aProjectileDef, aFireDef, aMagicDef, aExplosionDef, aFallDef, aRadiationDef, aElectricDef, aWitherDef);
+ mType = StatType.valueOf(GregTech_API.sModularArmor.get(mConfigName, "StatType", aType.toString()));
+ mStat.put(mType, (float) GregTech_API.sModularArmor.get( mConfigName, "SpecialType", aSpecial));
+ }
+
+ public ArmorPlating(String aName, String aOreDict,float aWeight, float aPhysicalDef, float aProjectileDef, float aFireDef, float aMagicDef, float aExplosionDef) {
+ super(aName, aOreDict, false, aWeight);
+ aPhysicalDef = (float) GregTech_API.sModularArmor.get( mConfigName, "PhysicalDef", aPhysicalDef);
+ aProjectileDef = (float) GregTech_API.sModularArmor.get( mConfigName, "ProjectileDef", aProjectileDef);
+ aFireDef = (float) GregTech_API.sModularArmor.get( mConfigName, "FireDef", aFireDef);
+ aMagicDef = (float) GregTech_API.sModularArmor.get( mConfigName, "MagicDef", aMagicDef);
+ aExplosionDef = (float) GregTech_API.sModularArmor.get( mConfigName, "ExplosionDef", aExplosionDef);
+ float aFallDef = (float) GregTech_API.sModularArmor.get( mConfigName, "FallDef", 0.0f);
+ float aRadiationDef = (float) GregTech_API.sModularArmor.get( mConfigName, "RadiationDef", 0.0f);
+ float aElectricDef = (float) GregTech_API.sModularArmor.get( mConfigName, "ElectricalDef", 0.0f);
+ float aWitherDef = (float) GregTech_API.sModularArmor.get( mConfigName, "WitherDef", 0.0f);
+ addStats(aPhysicalDef, aProjectileDef, aFireDef, aMagicDef, aExplosionDef, aFallDef, aRadiationDef, aElectricDef, aWitherDef);
+ }
+
+ 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));
+ }
+
+}
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..d6d37fd935
--- /dev/null
+++ b/src/main/java/gregtech/common/items/armor/components/LoadArmorComponents.java
@@ -0,0 +1,251 @@
+package gregtech.common.items.armor.components;
+
+import gregtech.api.GregTech_API;
+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;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemStack;
+
+public class LoadArmorComponents {
+ public static void init(){
+
+ new ArmorPlating("plateRubber", "plateRubber", 60, 0.06f, 0.06f, 0.02f, 0.10f, 0.10f, 2f, 0f, .25f, 0f);
+ new ArmorPlating("plateWood", "plateWood", 80, 0.08f, 0.09f, 0.02f, 0.08f, 0.08f);
+ new ArmorPlating("plateBrass", "plateBrass", 140, 0.12f, 0.12f, 0.10f, 0.10f, 0.12f);
+ new ArmorPlating("plateCopper", "plateCopper", 140, 0.11f, 0.11f, 0.10f, 0.10f, 0.11f);
+ new ArmorPlating("plateLead", "plateLead", 280, 0.05f, 0.05f, 0.05f, 0.05f, 0.05f, 0, .3f, 0, 0);
+ new ArmorPlating("platePlastic", "platePlastic", 60, 0.10f, 0.10f, 0.02f, 0.02f, 0.10f, 0, 0, .25f, 0);
+ new ArmorPlating("plateAluminium", "plateAluminium", 120, 0.14f, 0.14f, 0.12f, 0.12f, 0.14f);
+ new ArmorPlating("plateAstralSilver", "plateAstralSilver", 180, 0.10f, 0.10f, 0.10f, 0.18f, 0.10f);
+ new ArmorPlating("plateBismuthBronze", "plateBismuthBronze", 160, 0.12f, 0.12f, 0.10f, 0.10f, 0.12f);
+ new ArmorPlating("plateBlackBronze", "plateBlackBronze", 160, 0.13f, 0.13f, 0.10f, 0.10f, 0.13f);
+ new ArmorPlating("plateBlackSteel", "plateBlackSteel", 200, 0.19f, 0.19f, 0.17f, 0.17f, 0.19f);
+ new ArmorPlating("plateBlueSteel", "plateBlueSteel", 200, 0.21f, 0.21f, 0.19f, 0.19f, 0.21f);
+ new ArmorPlating("plateBronze", "plateBronze", 160, 0.13f, 0.13f, 0.12f, 0.12f, 0.13f);
+ new ArmorPlating("plateCobaltBrass", "plateCobaltBrass", 180, 0.15f, 0.15f, 0.14f, 0.14f, 0.15f);
+ new ArmorPlating("plateDamascusSteel", "plateDamascusSteel", 200, 0.22f, 0.22f, 0.20f, 0.20f, 0.22f);
+ new ArmorPlating("plateElectrum", "plateElectrum", 250, 0.11f, 0.11f, 0.10f, 0.10f, 0.11f);
+ new ArmorPlating("plateEmerald", "plateEmerald", 160, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f);
+ new ArmorPlating("plateGold", "plateGold", 300, 0.09f, 0.09f, 0.05f, 0.25f, 0.09f);
+ new ArmorPlating("plateGreenSapphire", "plateGreenSapphire", 160, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f);
+ new ArmorPlating("plateInvar", "plateInvar", 190, 0.10f, 0.10f, 0.22f, 0.22f, 0.10f);
+ new ArmorPlating("plateIron", "plateIron", 200, 0.12f, 0.12f, 0.10f, 0.10f, 0.12f);
+ new ArmorPlating("plateIronWood", "plateIronWood", 150, 0.17f, 0.17f, 0.02f, 0.02f, 0.17f);
+ new ArmorPlating("plateMagnalium", "plateMagnalium", 120, 0.15f, 0.15f, 0.17f, 0.17f, 0.15f);
+ new ArmorPlating("plateNeodymiumMagnetic","plateNeodymiumMagnetic",220, 0.14f, 0.14f, 0.14f, 0.14f, 0.14f, 0, 0, 0, 0, StatType.MAGNETSINGLE, 2.0f);
+ new ArmorPlating("plateManganese", "plateManganese", 180, 0.15f, 0.15f, 0.14f, 0.14f, 0.15f);
+ new ArmorPlating("plateMeteoricIron", "plateMeteoricIron", 200, 0.18f, 0.18f, 0.16f, 0.16f, 0.18f);
+ new ArmorPlating("plateMeteoricSteel", "plateMeteoricSteel", 200, 0.21f, 0.21f, 0.19f, 0.19f, 0.21f);
+ new ArmorPlating("plateMolybdenum", "plateMolybdenum", 140, 0.14f, 0.14f, 0.14f, 0.14f, 0.14f);
+ new ArmorPlating("plateNickel", "plateNickel", 180, 0.12f, 0.12f, 0.15f, 0.15f, 0.12f);
+ new ArmorPlating("plateOlivine", "plateOlivine", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f);
+ new ArmorPlating("plateOpal", "plateOpal", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f);
+ new ArmorPlating("platePalladium", "platePalladium", 280, 0.14f, 0.14f, 0.12f, 0.12f, 0.14f);
+ new ArmorPlating("platePlatinum", "platePlatinum", 290, 0.15f, 0.15f, 0.13f, 0.13f, 0.15f);
+ new ArmorPlating("plateGarnetRed", "plateGarnetRed", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f);
+ new ArmorPlating("plateRedSteel", "plateRedSteel", 200, 0.20f, 0.20f, 0.18f, 0.18f, 0.20f);
+ new ArmorPlating("plateRoseGold", "plateRoseGold", 240, 0.10f, 0.10f, 0.08f, 0.18f, 0.10f);
+ new ArmorPlating("plateRuby", "plateRuby", 180, 0.10f, 0.10f, 0.20f, 0.20f, 0.10f);
+ new ArmorPlating("plateSapphire", "plateSapphire", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f);
+ new ArmorPlating("plateSilver", "plateSilver", 220, 0.11f, 0.11f, 0.07f, 0.24f, 0.11f);
+ new ArmorPlating("plateStainlessSteel", "plateStainlessSteel", 200, 0.16f, 0.16f, 0.21f, 0.21f, 0.16f);
+ new ArmorPlating("plateSteel", "plateSteel", 200, 0.18f, 0.18f, 0.16f, 0.16f, 0.18f);
+ new ArmorPlating("plateSterlingSilver", "plateSterlingSilver", 210, 0.15f, 0.15f, 0.13f, 0.13f, 0.15f);
+ new ArmorPlating("plateTanzanite", "plateTanzanite", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f);
+ new ArmorPlating("plateThorium", "plateThorium", 280, 0.13f, 0.13f, 0.16f, 0.16f, 0.13f);
+ new ArmorPlating("plateWroughtIron", "plateWroughtIron", 200, 0.14f, 0.14f, 0.12f, 0.12f, 0.14f);
+ new ArmorPlating("plateGarnetYellow", "plateGarnetYellow", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f);
+ new ArmorPlating("plateAlloyCarbon", "plateAlloyCarbon", 60, 0.06f, 0.23f, 0.05f, 0.05f, 0.06f);
+ new ArmorPlating("plateInfusedAir", "plateInfusedAir", 10, 0.10f, 0.10f, 0.10f, 0.10f, 0.10f);
+ new ArmorPlating("plateAmethyst", "plateAmethyst", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f);
+ new ArmorPlating("plateInfusedWater", "plateInfusedWater", 150, 0.10f, 0.10f, 0.20f, 0.20f, 0.10f);
+ new ArmorPlating("plateBlueTopaz", "plateBlueTopaz", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f);
+ new ArmorPlating("plateChrome", "plateChrome", 200, 0.12f, 0.12f, 0.21f, 0.21f, 0.12f);
+ new ArmorPlating("plateCobalt", "plateCobalt", 220, 0.16f, 0.16f, 0.14f, 0.14f, 0.16f);
+ new ArmorPlating("plateDarkIron", "plateDarkIron", 200, 0.21f, 0.21f, 0.19f, 0.19f, 0.21f);
+ new ArmorPlating("plateDiamond", "plateDiamond", 200, 0.20f, 0.20f, 0.22f, 0.22f, 0.20f);
+ new ArmorPlating("plateEnderium", "plateEnderium", 250, 0.22f, 0.22f, 0.21f, 0.21f, 0.22f);
+ new ArmorPlating("plateElectrumFlux", "plateElectrumFlux", 180, 0.19f, 0.19f, 0.16f, 0.16f, 0.19f);
+ new ArmorPlating("plateForce", "plateForce", 180, 0.10f, 0.10f, 0.20f, 0.20f, 0.10f);
+ new ArmorPlating("plateHSLA", "plateHSLA", 200, 0.21f, 0.21f, 0.17f, 0.17f, 0.21f);
+ new ArmorPlating("plateInfusedFire", "plateInfusedFire", 150, 0.12f, 0.10f, 0.30f, 0.30f, 0.12f, 0, 0, 0, 0, StatType.THORNSSINGLE, 3.0f);
+ new ArmorPlating("plateInfusedGold", "plateInfusedGold", 300, 0.15f, 0.15f, 0.05f, 0.05f, 0.15f);
+ new ArmorPlating("plateMithril", "plateMithril", 200, 0.25f, 0.25f, 0.10f, 0.30f, 0.25f);
+ new ArmorPlating("plateInfusedOrder", "plateInfusedOrder", 150, 0.18f, 0.22f, 0.22f, 0.25f, 0.22f);
+ new ArmorPlating("plateSteeleaf", "plateSteeleaf", 120, 0.16f, 0.16f, 0.06f, 0.06f, 0.16f);
+ new ArmorPlating("plateInfusedEarth", "plateInfusedEarth", 350, 0.30f, 0.30f, 0.30f, 0.30f, 0.30f);
+ new ArmorPlating("plateThaumium", "plateThaumium", 200, 0.18f, 0.19f, 0.20f, 0.30f, 0.18f);
+ new ArmorPlating("plateTitanium", "plateTitanium", 140, 0.20f, 0.20f, 0.18f, 0.18f, 0.20f);
+ new ArmorPlating("plateTungsten", "plateTungsten", 270, 0.27f, 0.26f, 0.23f, 0.26f, 0.26f);
+ new ArmorPlating("plateUltimet", "plateTopaz", 180, 0.10f, 0.10f, 0.14f, 0.14f, 0.10f);
+ new ArmorPlating("plateUltimet", "plateUltimet", 180, 0.21f, 0.21f, 0.19f, 0.19f, 0.21f);
+ new ArmorPlating("plateUranium", "plateUranium", 290, 0.27f, 0.23f, 0.20f, 0.15f, 0.21f);
+ new ArmorPlating("plateVinteum", "plateVinteum", 180, 0.10f, 0.12f, 0.14f, 0.28f, 0.12f);
+ new ArmorPlating("plateDuranium", "plateDuranium", 140, 0.24f, 0.24f, 0.24f, 0.24f, 0.24f);
+ new ArmorPlating("plateAlloyIridium", "plateAlloyIridium", 220, 0.24f, 0.24f, 0.22f, 0.22f, 0.24f);
+ new ArmorPlating("plateOsmiridium", "plateOsmiridium", 240, 0.18f, 0.18f, 0.16f, 0.16f, 0.18f);
+ new ArmorPlating("plateOsmium", "plateOsmium", 250, 0.12f, 0.12f, 0.10f, 0.10f, 0.12f);
+ new ArmorPlating("plateNaquadah", "plateNaquadah", 250, 0.27f, 0.27f, 0.25f, 0.25f, 0.27f);
+ new ArmorPlating("plateNetherStar", "plateNetherStar", 140, 0.22f, 0.22f, 0.24f, 0.24f, 0.22f, 0, 0, 0, .2f);
+ new ArmorPlating("plateInfusedEntropy", "plateInfusedEntropy", 150, 0.10f, 0.10f, 0.10f, 0.10f, 0.10f, 0, 0, 0, 0, StatType.THORNSSINGLE, 4.0f);
+ new ArmorPlating("plateTritanium", "plateTritanium", 140, 0.26f, 0.26f, 0.26f, 0.26f, 0.26f);
+ new ArmorPlating("plateTungstenSteel", "plateTungstenSteel", 270, 0.30f, 0.28f, 0.25f, 0.28f, 0.30f);
+ new ArmorPlating("plateAdamantium", "plateAdamantium", 200, 0.28f, 0.28f, 0.26f, 0.30f, 0.30f);
+ new ArmorPlating("plateNaquadahAlloy", "plateNaquadahAlloy", 300, 0.33f, 0.33f, 0.33f, 0.33f, 0.33f);
+ new ArmorPlating("plateNeutronium", "plateNeutronium", 600, 0.50f, 0.50f, 0.50f, 0.50f, 0.50f);
+
+ new ArmorComponentFunction("componentnightvision", GT_ModHandler.getIC2Item("nightvisionGoggles", 1), true, 100, StatType.NIGHTVISION, 100);
+ if(GT_ModHandler.getModItem("Thaumcraft", "ItemGoggles", 1)!=null)new ArmorComponentFunction("componentthaumicgoggles", GT_ModHandler.getModItem("Thaumcraft", "ItemGoggles", 1), true, 100, StatType.THAUMICGOGGLES, 100);
+ new ArmorComponentBattery("batteryLVLI", ItemList.Battery_RE_LV_Lithium.get(1, new Object[]{}), true, 100, 100000);
+ new ArmorComponentBattery("batteryMVLI", ItemList.Battery_RE_MV_Lithium.get(1, new Object[]{}), true, 100, 400000);
+ new ArmorComponentBattery("batteryHVLI", ItemList.Battery_RE_HV_Lithium.get(1, new Object[]{}), true, 100, 1600000);
+
+ new ArmorComponentBattery("batteryLVCA", ItemList.Battery_RE_LV_Cadmium.get(1, new Object[]{}), true, 100, 75000);
+ new ArmorComponentBattery("batteryMVCA", ItemList.Battery_RE_MV_Cadmium.get(1, new Object[]{}), true, 100, 300000);
+ new ArmorComponentBattery("batteryHVCA", ItemList.Battery_RE_HV_Cadmium.get(1, new Object[]{}), true, 100, 1200000);
+
+ new ArmorComponentBattery("batteryLVSO", ItemList.Battery_RE_LV_Sodium.get(1, new Object[]{}), true, 100, 50000);
+ new ArmorComponentBattery("batteryMVSO", ItemList.Battery_RE_MV_Sodium.get(1, new Object[]{}), true, 100, 200000);
+ new ArmorComponentBattery("batteryHVSO", ItemList.Battery_RE_HV_Sodium.get(1, new Object[]{}), true, 100, 800000);
+
+ new ArmorComponentBattery("batterycystal", ItemList.IC2_EnergyCrystal.get(1, new Object[]{}), true, 100, 1000000);
+ new ArmorComponentBattery("batterylapotron", ItemList.IC2_LapotronCrystal.get(1, new Object[]{}), true, 100, 10000000);
+ new ArmorComponentBattery("batterylapoorb", ItemList.Energy_LapotronicOrb.get(1, new Object[]{}), true, 100, 100000000);
+ new ArmorComponentBattery("batteryorbcluster", ItemList.Energy_LapotronicOrb2.get(1, new Object[]{}), true, 100, 1000000000);
+
+ new ArmorElectricComponent("motorlv", ItemList.Electric_Motor_LV.get(1, new Object[]{}), 20, StatType.MOTPRPOWER, 200f, StatType.MOTOREUUSAGE, 50f, StatType.PROCESSINGPOWERUSED, 10f);
+ new ArmorElectricComponent("motormv", ItemList.Electric_Motor_MV.get(1, new Object[]{}), 40, StatType.MOTPRPOWER, 300f, StatType.MOTOREUUSAGE, 100f, StatType.PROCESSINGPOWERUSED, 20f);
+ new ArmorElectricComponent("motorhv", ItemList.Electric_Motor_HV.get(1, new Object[]{}), 60, StatType.MOTPRPOWER, 400f, StatType.MOTOREUUSAGE, 200f, StatType.PROCESSINGPOWERUSED, 50f);
+ new ArmorElectricComponent("motorev", ItemList.Electric_Motor_EV.get(1, new Object[]{}), 80, StatType.MOTPRPOWER, 500f, StatType.MOTOREUUSAGE, 400f, StatType.PROCESSINGPOWERUSED, 100f);
+ new ArmorElectricComponent("motoriv", ItemList.Electric_Motor_IV.get(1, new Object[]{}),100, StatType.MOTPRPOWER, 600f, StatType.MOTOREUUSAGE, 800f, StatType.PROCESSINGPOWERUSED, 200f);
+
+ new ArmorElectricComponent("pistonlv", ItemList.Electric_Piston_LV.get(1, new Object[]{}), 20, StatType.PISTONJUMPBOOST, 3, StatType.PISTONEUUSAGE, 200f, StatType.PROCESSINGPOWERUSED, 10f);
+ new ArmorElectricComponent("pistonmv", ItemList.Electric_Piston_MV.get(1, new Object[]{}), 40, StatType.PISTONJUMPBOOST, 4, StatType.PISTONEUUSAGE, 300f, StatType.PROCESSINGPOWERUSED, 20f);
+ new ArmorElectricComponent("pistonhv", ItemList.Electric_Piston_HV.get(1, new Object[]{}), 60, StatType.PISTONJUMPBOOST, 5, StatType.PISTONEUUSAGE, 450f, StatType.PROCESSINGPOWERUSED, 50f);
+ new ArmorElectricComponent("pistonev", ItemList.Electric_Piston_EV.get(1, new Object[]{}), 80, StatType.PISTONJUMPBOOST, 6, StatType.PISTONEUUSAGE, 800f, StatType.PROCESSINGPOWERUSED, 100f);
+ new ArmorElectricComponent("pistoniv", ItemList.Electric_Piston_IV.get(1, new Object[]{}),100, StatType.PISTONJUMPBOOST, 7, StatType.PISTONEUUSAGE,1600f, StatType.PROCESSINGPOWERUSED, 200f);
+
+ new ArmorElectricComponent("electrolyzerlv", ItemList.Machine_LV_Electrolyzer.get(1, new Object[]{}), 20, StatType.ELECTROLYZERPROD, 10, StatType.ELECTROLYZEREUUSAGE, 1, StatType.PROCESSINGPOWERUSED, 50f);
+ new ArmorElectricComponent("electrolyzermv", ItemList.Machine_MV_Electrolyzer.get(1, new Object[]{}), 40, StatType.ELECTROLYZERPROD, 20, StatType.ELECTROLYZEREUUSAGE, 4, StatType.PROCESSINGPOWERUSED, 100f);
+ new ArmorElectricComponent("electrolyzerhv", ItemList.Machine_HV_Electrolyzer.get(1, new Object[]{}), 60, StatType.ELECTROLYZERPROD, 40, StatType.ELECTROLYZEREUUSAGE, 16, StatType.PROCESSINGPOWERUSED, 150f);
+ new ArmorElectricComponent("electrolyzerev", ItemList.Machine_EV_Electrolyzer.get(1, new Object[]{}), 80, StatType.ELECTROLYZERPROD, 80, StatType.ELECTROLYZEREUUSAGE, 64, StatType.PROCESSINGPOWERUSED, 200f);
+ new ArmorElectricComponent("electrolyzeriv", ItemList.Machine_IV_Electrolyzer.get(1, new Object[]{}),100, StatType.ELECTROLYZERPROD,160, StatType.ELECTROLYZEREUUSAGE, 128, StatType.PROCESSINGPOWERUSED, 250f);
+
+ new ArmorElectricComponent("fieldgenlv", ItemList.Field_Generator_LV.get(1, new Object[]{}), 20, StatType.FIELDGENCAP, 1, StatType.FIELDGENEUUSAGE, 1, StatType.PROCESSINGPOWERUSED, 100f);
+ new ArmorElectricComponent("fieldgenmv", ItemList.Field_Generator_MV.get(1, new Object[]{}), 40, StatType.FIELDGENCAP, 2, StatType.FIELDGENEUUSAGE, 4, StatType.PROCESSINGPOWERUSED, 200f);
+ new ArmorElectricComponent("fieldgenhv", ItemList.Field_Generator_HV.get(1, new Object[]{}), 60, StatType.FIELDGENCAP, 3, StatType.FIELDGENEUUSAGE, 16, StatType.PROCESSINGPOWERUSED, 300f);
+ new ArmorElectricComponent("fieldgenev", ItemList.Field_Generator_EV.get(1, new Object[]{}), 80, StatType.FIELDGENCAP, 4, StatType.FIELDGENEUUSAGE, 64, StatType.PROCESSINGPOWERUSED, 400f);
+ new ArmorElectricComponent("fieldgeniv", ItemList.Field_Generator_IV.get(1, new Object[]{}),100, StatType.FIELDGENCAP, 5, StatType.FIELDGENEUUSAGE, 512, StatType.PROCESSINGPOWERUSED, 500f);
+
+ new ArmorElectricComponent("cell", ItemList.Cell_Empty.get(1, new Object[]{}), 20, StatType.TANKCAP, 8000, null, 1, null, 0);
+ new ArmorElectricComponent("cellsteel", ItemList.Large_Fluid_Cell_Steel.get(1, new Object[]{}), 40, StatType.TANKCAP, 16000, null, 1, null, 0);
+ new ArmorElectricComponent("cellts", ItemList.Large_Fluid_Cell_TungstenSteel.get(1, new Object[]{}), 80, StatType.TANKCAP, 64000, null, 1, null, 0);
+
+ new ArmorElectricComponent("circuitbasic", GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 1), 10, StatType.PROCESSINGPOWER, 100, null, 1, null, 1);
+ new ArmorElectricComponent("circuitgood", GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 1), 20, StatType.PROCESSINGPOWER, 200, null, 1, null, 1);
+ new ArmorElectricComponent("circuitadv", GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1),30, StatType.PROCESSINGPOWER, 300, null, 1, null, 1);
+ new ArmorElectricComponent("circuitdata", GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data, 1), 40, StatType.PROCESSINGPOWER, 400, null, 1, null, 1);
+ new ArmorElectricComponent("cicuitelite", GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 1), 50, StatType.PROCESSINGPOWER, 500, null, 1, null, 1);
+ new ArmorElectricComponent("cicuitmaster", 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;
+// }
+
+
+ int tCustomPlatings = GregTech_API.sModularArmor.get("custom", "CustomPlatings", 0);
+ int tCustomElectronicComponent = GregTech_API.sModularArmor.get("custom", "CustomElectronicComponent", 0);
+ int tCustomBattery = GregTech_API.sModularArmor.get("custom", "CustomBattery", 0);
+ int tCustomFunction = GregTech_API.sModularArmor.get("custom", "CustomFunction", 0);
+ for(int i = 0; i<tCustomPlatings; i++)
+ new ArmorPlating("customPlate"+i, "platenull_", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, null, 0);
+
+ for(int i = 0; i<tCustomElectronicComponent; i++)
+ new ArmorElectricComponent("customElectricComponent"+i,new ItemStack(Blocks.stone),0,null,0, null, 0, null, 0);
+
+ for(int i = 0; i<tCustomBattery; i++)
+ new ArmorComponentBattery("customBattery"+i, new ItemStack(Blocks.stone),true, 0, 0);
+
+ for(int i = 0; i<tCustomFunction; i++)
+ new ArmorComponentFunction("customFunction"+i, new ItemStack(Blocks.stone), true, 0, null, 0);
+ }
+}
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/common/items/behaviors/Behaviour_Sense.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java
index c4324aa282..8b27fb2c29 100644
--- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java
+++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java
@@ -26,9 +26,9 @@ public class Behaviour_Sense
}
TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
if ((tTileEntity instanceof ICropTile)) {
- for (int i = -1; i < 2; i++) {
- for (int j = -1; j < 2; j++) {
- for (int k = -1; k < 2; k++) {
+ for (int i = -2; i < 3; i++) {
+ for (int j = -2; j < 3; j++) {
+ for (int k = -2; k < 3; k++) {
if ((aStack.stackSize > 0) && (((tTileEntity = aWorld.getTileEntity(aX + i, aY + j, aZ + k)) instanceof ICropTile)) && (((ICropTile) tTileEntity).harvest(true)) && (!aPlayer.capabilities.isCreativeMode)) {
((GT_MetaGenerated_Tool) aItem).doDamage(aStack, this.mCosts);
}
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java
index 5ab6ea0afe..b7a63046dd 100644
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java
+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java
@@ -155,7 +155,6 @@ public class GT_MetaTileEntity_Scanner
for(GT_Recipe.GT_Recipe_AssemblyLine tRecipe:GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes){
if(GT_Utility.areStacksEqual(tRecipe.mResearchItem, aStack, true)){
this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{getSpecialSlot()});
- getSpecialSlot().stackSize -= 1;
GT_Utility.ItemNBT.setBookTitle(this.mOutputItems[0], GT_LanguageManager.getTranslation(tRecipe.mOutput.getDisplayName())+" Construction Data");
NBTTagCompound tNBT = this.mOutputItems[0].getTagCompound();
if (tNBT == null) {
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java
index a6028b541b..0fcb84c3b5 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java
@@ -128,6 +128,7 @@ public class GT_MetaTileEntity_AdvMiner2 extends GT_MetaTileEntity_MultiBlockBas
moveOneDown();
}
}else{
+ stopMachine();
return false;
}
}
@@ -213,19 +214,23 @@ public class GT_MetaTileEntity_AdvMiner2 extends GT_MetaTileEntity_MultiBlockBas
private boolean moveOneDown() {
if ((this.mInventory[1] == null) || (this.mInventory[1].stackSize < 1)
|| (!GT_Utility.areStacksEqual(this.mInventory[1], GT_ModHandler.getIC2Item("miningPipe", 1L)))) {
+ stopMachine();
return false;
}
int xDir = ForgeDirection.getOrientation(getBaseMetaTileEntity().getBackFacing()).offsetX;
int zDir = ForgeDirection.getOrientation(getBaseMetaTileEntity().getBackFacing()).offsetZ;
int yHead = getYOfPumpHead();
if (yHead <= 0) {
+ stopMachine();
return false;
}
if (getBaseMetaTileEntity().getBlock(getBaseMetaTileEntity().getXCoord() + xDir, yHead - 1, getBaseMetaTileEntity().getZCoord() + zDir) == Blocks.bedrock) {
+ stopMachine();
return false;
}
if (!(getBaseMetaTileEntity().getWorld().setBlock(getBaseMetaTileEntity().getXCoord() + xDir, yHead - 1, getBaseMetaTileEntity().getZCoord() + zDir, GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("miningPipeTip", 1L))))) {
- return false;
+ stopMachine();
+ return false;
}
if (yHead != getBaseMetaTileEntity().getYCoord()) {
getBaseMetaTileEntity().getWorld().setBlock(getBaseMetaTileEntity().getXCoord() + xDir, yHead, getBaseMetaTileEntity().getZCoord() + zDir, GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("miningPipe", 1L)));
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java
index bb7c659512..db1134632e 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
public abstract class GT_MetaTileEntity_LargeBoiler
extends GT_MetaTileEntity_MultiBlockBase {
private boolean firstRun = true;
+ private int mSuperEfficencyIncrease = 0;
public GT_MetaTileEntity_LargeBoiler(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional);
@@ -87,6 +88,7 @@ public abstract class GT_MetaTileEntity_LargeBoiler
}
public boolean checkRecipe(ItemStack aStack) {
+ this.mSuperEfficencyIncrease=0;
for (GT_Recipe tRecipe : GT_Recipe.GT_Recipe_Map.sDieselFuels.mRecipeList) {
FluidStack tFluid = GT_Utility.getFluidForFilledItem(tRecipe.getRepresentativeInput(0), true);
if ((tFluid != null) && (tRecipe.mSpecialValue > 1)) {
@@ -120,6 +122,7 @@ public abstract class GT_MetaTileEntity_LargeBoiler
this.mOutputItems = new ItemStack[]{GT_Utility.getContainerItem(tInput, true)};
tInput.stackSize -= 1;
updateSlots();
+ if(this.mEfficiencyIncrease>5000){ this.mEfficiencyIncrease=0;this.mSuperEfficencyIncrease=20;}
return true;
}
}
@@ -133,6 +136,7 @@ public abstract class GT_MetaTileEntity_LargeBoiler
public boolean onRunningTick(ItemStack aStack) {
if (this.mEUt > 0) {
+ if(this.mSuperEfficencyIncrease>0)this.mEfficiency = Math.min(10000, this.mEfficiency + this.mSuperEfficencyIncrease);
int tGeneratedEU = (int) (this.mEUt * 2L * this.mEfficiency / 10000L);
if (tGeneratedEU > 0) {
long amount = (tGeneratedEU + 160) / 160;
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java
index bc8a500443..e4637aac69 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java
@@ -37,7 +37,6 @@ public class GT_MetaTileEntity_LargeTurbine_HPSteam extends GT_MetaTileEntity_La
"Size(WxHxD): 3x3x4 (Hollow), Controller (Front centered)",
"1x Input Hatch (Side centered)",
"1x Maintenance Hatch (Side centered)",
- "1x Muffler Hatch (Side centered)",
"1x Dynamo Hatch (Back centered)",
"Titanium Turbine Casings for the rest (24 at least!)",
"Needs a Turbine Item (Inside controller GUI)",
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
index 3c0e8eaed1..28e3b7a172 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
@@ -40,7 +40,6 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar
"Size(WxHxD): 3x3x4 (Hollow), Controller (Front centered)",
"1x Input Hatch (Side centered)",
"1x Maintenance Hatch (Side centered)",
- "1x Muffler Hatch (Side centered)",
"1x Dynamo Hatch (Back centered)",
"Tungstensteel Turbine Casings for the rest (24 at least!)",
"Needs a Turbine Item (Inside controller GUI)",
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java
index 429b6aa6a4..0524c08d77 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java
@@ -39,7 +39,6 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg
"Size(WxHxD): 3x3x4 (Hollow), Controller (Front centered)",
"1x Input Hatch (Side centered)",
"1x Maintenance Hatch (Side centered)",
- "1x Muffler Hatch (Side centered)",
"1x Dynamo Hatch (Back centered)",
"Turbine Casings for the rest (24 at least!)",
"Needs a Turbine Item (Inside controller GUI)",
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java
index 5932c6a12c..b0f506f7ff 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java
@@ -85,6 +85,7 @@ public class GT_MetaTileEntity_OilDrill extends GT_MetaTileEntity_MultiBlockBase
if (mEnergyHatches.size() > 0 && mEnergyHatches.get(0).getEUVar() > (512 + getMaxInputVoltage() * 4))
completedCycle = true;
} else if (tFluid.amount < 5000) {
+ stopMachine();
return false;
} else {
tFluid.amount = tFluid.amount / 5000;
diff --git a/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java
index 2c1a3bf2de..d22490ddd4 100644
--- a/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java
+++ b/src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java
@@ -568,6 +568,15 @@ public class GT_CraftingRecipeLoader implements Runnable {
GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("pullingUpgrade", 1L));
GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("pullingUpgrade", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PHP", "WEW", 'W', OrePrefixes.cableGt01.get(Materials.Copper), 'P', new ItemStack(Blocks.sticky_piston), 'R', new ItemStack(Blocks.hopper), 'E', OrePrefixes.circuit.get(Materials.Basic)});
GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("cutter", 1L));
+
+ if(Loader.isModLoaded("GraviSuite")){
+ GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getModItem("GraviSuite", "advJetpack", 1));
+ GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("GraviSuite", "advJetpack", 1), new Object[]{"PJP","BLB","WCW",'P',OrePrefixes.plateAlloy.get(Materials.Carbon),'J',GT_ModHandler.getIC2Item("electricJetpack", 1),'B',GT_ModHandler.getModItem("GraviSuite", "itemSimpleItem", 1, 6),'L',GT_ModHandler.getModItem("GraviSuite", "advLappack", 1),'W',OrePrefixes.wireGt04.get(Materials.Platinum),'C',OrePrefixes.circuit.get(Materials.Advanced)});
+
+ GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getModItem("GraviSuite", "itemSimpleItem", 3, 1));
+ GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("GraviSuite", "itemSimpleItem", 3, 1), new Object[]{"CCC","WWW","CCC",'C',GT_ModHandler.getModItem("GraviSuite", "itemSimpleItem", 1),'W',OrePrefixes.wireGt01.get(Materials.Superconductor)});
+ }
+
} else {
GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("glassFiberCableItem", 1L), GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"GGG", "EDE", "GGG", 'G', new ItemStack(Blocks.glass, 1, 32767), 'D', OrePrefixes.dust.get(Materials.Silver), 'E', ItemList.IC2_Energium_Dust.get(1L, new Object[0])});
}
@@ -727,5 +736,25 @@ public class GT_CraftingRecipeLoader implements Runnable {
if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "QBoots", false)) {
GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumBoots", 1L));
}
+
+ 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/postload/GT_MachineRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
index 58658640b6..08078f529a 100644
--- a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
+++ b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
@@ -232,6 +232,7 @@ if(Loader.isModLoaded("Railcraft")){
if (tMaterial.mStandardMoltenFluid != null) {
GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Casing.get(0L, new Object[0]), tMaterial.getMolten(72L), ItemList.IC2_Item_Casing_Steel.get(1L, new Object[0]), 16, 8);
}
+ GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Ball.get(0L, new Object[0]), Materials.Mercury.getFluid(1000L), GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 3), 128, 4);
GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Ball.get(0L, new Object[0]), Materials.Mercury.getFluid(1000L), GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Mercury, 1L), 128, 4);
GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Ball.get(0L, new Object[0]), Materials.Water.getFluid(250L), new ItemStack(Items.snowball, 1, 0), 128, 4);
GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Ball.get(0L, new Object[0]), GT_ModHandler.getDistilledWater(250L), new ItemStack(Items.snowball, 1, 0), 128, 4);
@@ -350,6 +351,7 @@ if(Loader.isModLoaded("Railcraft")){
GT_Values.RA.addFluidExtractionRecipe(new ItemStack(Items.coal, 1, 1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Ash, 1L), Materials.Creosote.getFluid(100L), 1000, 128, 4);
GT_Values.RA.addFluidExtractionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), ItemList.IC2_Plantball.get(1L, new Object[0]), Materials.Creosote.getFluid(5L), 100, 16, 4);
GT_Values.RA.addFluidExtractionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HydratedCoal, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L), Materials.Water.getFluid(100L), 10000, 32, 4);
+ GT_Values.RA.addFluidExtractionRecipe(GT_ModHandler.getModItem("Thaumcraft", "ItemResource", 1, 3), GT_Values.NI, Materials.Mercury.getFluid(1000L), 10000, 128, 4);
GT_Values.RA.addFluidExtractionRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Mercury, 1L), GT_Values.NI, Materials.Mercury.getFluid(1000L), 10000, 128, 4);
GT_Values.RA.addFluidExtractionRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Monazite, 1L), GT_Values.NI, Materials.Helium.getFluid(200L), 10000, 64, 64);
@@ -1852,6 +1854,7 @@ if(Loader.isModLoaded("Railcraft")){
}
public void addProcess(ItemStack tCrop, Materials aMaterial, int chance, boolean aMainOutput) {
+ if(tCrop==null||aMaterial==null||GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial,1)==null)return;
if (GT_Mod.gregtechproxy.mNerfedCrops) {
GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tCrop), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1), Materials.Water.getFluid(1000), aMaterial.mOreByProducts.isEmpty() ? null : aMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 96, 24);
GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(16, tCrop), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass()+9)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 1), 10000, (int) (aMaterial.getMass() * 128), 384);
@@ -1861,6 +1864,7 @@ if(Loader.isModLoaded("Railcraft")){
}
public void addProcess(ItemStack tCrop, Materials aMaterial, int chance){
+ if(tCrop==null||aMaterial==null||GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial,1)==null)return;
if (GT_Mod.gregtechproxy.mNerfedCrops) {
GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tCrop), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1), Materials.Water.getFluid(1000), aMaterial.mOreByProducts.isEmpty() ? null : aMaterial.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 4), 96, 24);
GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(16, tCrop), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass()+9)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 1), 10000, (int) (aMaterial.getMass() * 128), 384);
@@ -1870,6 +1874,7 @@ if(Loader.isModLoaded("Railcraft")){
}
public void addProcess(ItemStack tCrop, Materials aMaterial, Materials aMaterialOut, int chance, boolean aMainOutput){
+ if(tCrop==null||aMaterial==null||GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial,1)==null)return;
if (GT_Mod.gregtechproxy.mNerfedCrops) {
GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tCrop), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1), Materials.Water.getFluid(1000), aMaterialOut.mOreByProducts.isEmpty() ? null : aMaterialOut.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterialOut, 4), 96, 24);
GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(16, tCrop), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass()+9)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 1), 10000, (int) (aMaterial.getMass() * 128), 384);
@@ -1879,6 +1884,7 @@ if(Loader.isModLoaded("Railcraft")){
}
public void addProcess(ItemStack tCrop, Materials aMaterial, Materials aMaterialOut, int chance){
+ if(tCrop==null||aMaterial==null||GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial,1)==null)return;
if (GT_Mod.gregtechproxy.mNerfedCrops) {
GT_Values.RA.addChemicalRecipe(GT_Utility.copyAmount(9, tCrop), GT_OreDictUnificator.get(OrePrefixes.crushed, aMaterial, 1), Materials.Water.getFluid(1000), aMaterialOut.mOreByProducts.isEmpty() ? null : aMaterialOut.mOreByProducts.get(0).getMolten(144), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterialOut, 4), 96, 24);
GT_Values.RA.addAutoclaveRecipe(GT_Utility.copyAmount(16, tCrop), Materials.UUMatter.getFluid(Math.max(1, ((aMaterial.getMass()+9)/10))), GT_OreDictUnificator.get(OrePrefixes.crushedPurified, aMaterial, 1), 10000, (int) (aMaterial.getMass() * 128), 384);
@@ -2205,8 +2211,8 @@ if(Loader.isModLoaded("Railcraft")){
// Quantumsuite
GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumHelmet", 1L));
- GT_Values.RA.addAssemblylineRecipe(GT_ModHandler.getIC2Item("nanoHelmet", 1L), 144000, new ItemStack[]{
- GT_ModHandler.getIC2Item("nanoHelmet", 1L),
+ GT_Values.RA.addAssemblylineRecipe(GT_ModHandler.getIC2Item("nanoHelmet", 1L, GT_Values.W), 144000, new ItemStack[]{
+ GT_ModHandler.getIC2Item("nanoHelmet", 1L, GT_Values.W),
GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 2),
GT_OreDictUnificator.get(OrePrefixes.plateAlloy, Materials.Iridium, 4),
ItemList.Energy_LapotronicOrb.get(1, new Object[]{}),
@@ -2219,8 +2225,8 @@ if(Loader.isModLoaded("Railcraft")){
}, GT_ModHandler.getIC2Item("quantumHelmet", 1L), 1500, 4096);
GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumBodyarmor", 1L));
- GT_Values.RA.addAssemblylineRecipe(GT_ModHandler.getIC2Item("nanoBodyarmor", 1L), 144000, new ItemStack[]{
- GT_ModHandler.getIC2Item("nanoBodyarmor", 1L),
+ GT_Values.RA.addAssemblylineRecipe(Loader.isModLoaded("GraviSuite") ? GT_ModHandler.getModItem("GraviSuite", "advNanoChestPlate", 1, GT_Values.W) : GT_ModHandler.getIC2Item("nanoBodyarmor", 1L, GT_Values.W), 144000, new ItemStack[]{
+ Loader.isModLoaded("GraviSuite") ? GT_ModHandler.getModItem("GraviSuite", "advNanoChestPlate", 1, GT_Values.W) : GT_ModHandler.getIC2Item("nanoBodyarmor", 1L, GT_Values.W),
GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 2),
GT_OreDictUnificator.get(OrePrefixes.plateAlloy, Materials.Iridium, 6),
ItemList.Energy_LapotronicOrb.get(1, new Object[]{}),
@@ -2233,8 +2239,8 @@ if(Loader.isModLoaded("Railcraft")){
}, GT_ModHandler.getIC2Item("quantumBodyarmor", 1L), 1500, 4096);
GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumLeggings", 1L));
- GT_Values.RA.addAssemblylineRecipe(GT_ModHandler.getIC2Item("nanoLeggings", 1L), 144000, new ItemStack[]{
- GT_ModHandler.getIC2Item("nanoLeggings", 1L),
+ GT_Values.RA.addAssemblylineRecipe(GT_ModHandler.getIC2Item("nanoLeggings", 1L, GT_Values.W), 144000, new ItemStack[]{
+ GT_ModHandler.getIC2Item("nanoLeggings", 1L, GT_Values.W),
GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 2),
GT_OreDictUnificator.get(OrePrefixes.plateAlloy, Materials.Iridium, 6),
ItemList.Energy_LapotronicOrb.get(1, new Object[]{}),
@@ -2247,8 +2253,8 @@ if(Loader.isModLoaded("Railcraft")){
}, GT_ModHandler.getIC2Item("quantumLeggings", 1L), 1500, 4096);
GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumBoots", 1L));
- GT_Values.RA.addAssemblylineRecipe(GT_ModHandler.getIC2Item("nanoBoots", 1L), 144000, new ItemStack[]{
- GT_ModHandler.getIC2Item("nanoBoots", 1L),
+ GT_Values.RA.addAssemblylineRecipe(GT_ModHandler.getIC2Item("nanoBoots", 1L, GT_Values.W), 144000, new ItemStack[]{
+ GT_ModHandler.getIC2Item("nanoBoots", 1L, GT_Values.W),
GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 2),
GT_OreDictUnificator.get(OrePrefixes.plateAlloy, Materials.Iridium, 4),
ItemList.Energy_LapotronicOrb.get(1, new Object[]{}),
@@ -2259,6 +2265,24 @@ if(Loader.isModLoaded("Railcraft")){
Materials.SolderingAlloy.getMolten(2304),
Materials.Titanium.getMolten(1440)
}, GT_ModHandler.getIC2Item("quantumBoots", 1L), 1500, 4096);
+
+ if(Loader.isModLoaded("GraviSuite")){
+ GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getModItem("GraviSuite", "graviChestPlate", 1, GT_Values.W));
+ GT_Values.RA.addAssemblylineRecipe(GT_ModHandler.getIC2Item("quantumBodyarmor", 1L, GT_Values.W), 144000, new ItemStack[]{
+ GT_ModHandler.getIC2Item("quantumBodyarmor", 1L, GT_Values.W),
+ GT_ModHandler.getModItem("GraviSuite", "ultimateLappack", 1, GT_Values.W),
+ GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Ultimate, 2),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Duranium, 6),
+ ItemList.Energy_LapotronicOrb2.get(1, new Object[]{}),
+ ItemList.Field_Generator_IV.get(2, new Object[]{}),
+ ItemList.Electric_Motor_ZPM.get(2, new Object[]{}),
+ GT_OreDictUnificator.get(OrePrefixes.wireGt02, Materials.Superconductor, 32),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Duranium, 4)
+ }, new FluidStack[]{
+ Materials.SolderingAlloy.getMolten(2304),
+ Materials.Tritanium.getMolten(1440)
+ }, GT_ModHandler.getModItem("GraviSuite", "graviChestPlate", 1, 27), 1500, 16388);
+ }
}
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 {