aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/items/armor
diff options
context:
space:
mode:
authorTechnus <daniel112092@gmail.com>2017-04-27 17:06:22 +0200
committerTechnus <daniel112092@gmail.com>2017-04-27 17:06:22 +0200
commit929073a7aea2ff925aa04403be746398b1fc57e7 (patch)
tree8f162d84344aeadbef04b3e313fdd8e5438130c0 /src/main/java/gregtech/common/items/armor
parent2ee3b7e712413604549af3097fda93cbb22a262e (diff)
parentf5e078aa1eb2da76585d620afa91903f0dbdd031 (diff)
downloadGT5-Unofficial-929073a7aea2ff925aa04403be746398b1fc57e7.tar.gz
GT5-Unofficial-929073a7aea2ff925aa04403be746398b1fc57e7.tar.bz2
GT5-Unofficial-929073a7aea2ff925aa04403be746398b1fc57e7.zip
Merge branch 'experimental' from GTNH into mergeGTNH (based on BLOODASP)
# Conflicts: # build.properties # src/main/java/gregtech/GT_Mod.java # src/main/java/gregtech/api/enums/ItemList.java # src/main/java/gregtech/api/enums/Materials.java # src/main/java/gregtech/api/enums/Textures.java # src/main/java/gregtech/api/enums/Tier.java # src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java # src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java # src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java # src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java # src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java # src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java # src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java # src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java # src/main/java/gregtech/api/util/GT_ModHandler.java # src/main/java/gregtech/api/util/GT_Recipe.java # src/main/java/gregtech/api/util/GT_RecipeRegistrator.java # src/main/java/gregtech/api/util/GT_Utility.java # src/main/java/gregtech/common/GT_Client.java # src/main/java/gregtech/common/GT_Pollution.java # src/main/java/gregtech/common/GT_Proxy.java # src/main/java/gregtech/common/GT_RecipeAdder.java # src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java # src/main/java/gregtech/common/GT_Worldgenerator.java # src/main/java/gregtech/common/blocks/GT_Block_Casings3.java # src/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java # src/main/java/gregtech/common/blocks/GT_Block_Machines.java # src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java # src/main/java/gregtech/common/blocks/GT_Item_Machines.java # src/main/java/gregtech/common/blocks/GT_Item_Ores.java # src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java # src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java # src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java # src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java # src/main/java/gregtech/common/gui/GT_Container_Regulator.java # src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java # src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java # src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java # src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java # src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java # src/main/java/gregtech/common/items/armor/ArmorData.java # src/main/java/gregtech/common/items/armor/GuiElectricArmor1.java # src/main/java/gregtech/common/items/armor/ModularArmor_Item.java # src/main/java/gregtech/common/items/armor/Values.java # src/main/java/gregtech/common/items/armor/gui/GuiModularArmor.java # src/main/java/gregtech/common/items/armor/gui/InventoryArmor.java # src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java # src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java # src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java # src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java # src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java # src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java # src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java # src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java # src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java # src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java # src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java # src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_AdvSeismicProspector.java # src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java # src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java # src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java # src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java # src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java # src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java # src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java # src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java # src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java # src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java # src/main/java/gregtech/common/tools/GT_Tool_Scoop.java # src/main/java/gregtech/loaders/load/GT_FuelLoader.java # src/main/java/gregtech/loaders/misc/GT_Achievements.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHammer.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingWire16.java # src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java # src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java # src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java # src/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java # src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java # src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java # src/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java # src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java # src/main/resources/assets/gregtech/textures/items/gt.Double_Naquadahcell.png # src/main/resources/assets/gregtech/textures/items/gt.Double_NaquadahcellDep.png # src/main/resources/assets/gregtech/textures/items/gt.Naquadahcell.png # src/main/resources/assets/gregtech/textures/items/gt.NaquadahcellDep.png # src/main/resources/assets/gregtech/textures/items/gt.Quad_Naquadahcell.png # src/main/resources/assets/gregtech/textures/items/gt.Quad_NaquadahcellDep.png
Diffstat (limited to 'src/main/java/gregtech/common/items/armor')
-rw-r--r--src/main/java/gregtech/common/items/armor/ArmorData.java676
-rw-r--r--src/main/java/gregtech/common/items/armor/GuiElectricArmor1.java299
-rw-r--r--src/main/java/gregtech/common/items/armor/Vector3.java11
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/ContainerModularArmor.java2
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/FluidSync.java9
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/FluidSync2.java10
-rw-r--r--src/main/java/gregtech/common/items/armor/gui/SlotFluid.java7
7 files changed, 602 insertions, 412 deletions
diff --git a/src/main/java/gregtech/common/items/armor/ArmorData.java b/src/main/java/gregtech/common/items/armor/ArmorData.java
index 00ec76aeea..9a2b161a0f 100644
--- a/src/main/java/gregtech/common/items/armor/ArmorData.java
+++ b/src/main/java/gregtech/common/items/armor/ArmorData.java
@@ -1,426 +1,344 @@
-package gregtech.common.items.armor;
+package gregtech.common.items.armor.gui;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
+import gregtech.common.GT_Network;
+import gregtech.common.items.armor.ArmorData;
+import gregtech.common.items.armor.components.StatType;
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 org.lwjgl.opengl.GL11;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Items;
+import net.minecraft.inventory.Container;
+import net.minecraft.inventory.Slot;
+import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.nbt.NBTTagList;
-import net.minecraft.util.DamageSource;
+import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fluids.Fluid;
-import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.fluids.IFluidContainerItem;
-public class ArmorData {
-
- public int type; // 0 = helmet; 1 = chestplate; 2 = leggings; 3 = boots;
- public int armorTier; // 0 = Basic Modular Armor; 1 = Modular Exoskeleton; 2= Modular Nanosuit; 3 = Heavy Power Armor
- public List info; // needs Localization
- public boolean isTopItem;
- public int tooltipUpdate;
- public boolean openGui;
-
- public ArmorData helmet;
- public ArmorData chestplate;
- public ArmorData leggings;
- public ArmorData boots;
-
- public Map<StatType,Float> mStat = new HashMap<StatType,Float>();
- public Map<StatType,Boolean> mBStat = new HashMap<StatType,Boolean>();
- static ArrayList<StatType> updateArmorStatTypeList;
-// 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;
+@SideOnly(Side.CLIENT)
+public class GuiElectricArmor1 extends GuiContainer {
+ ContainerModularArmor cont;
+ EntityPlayer player;
+ private int tab;
+
+ public GuiElectricArmor1(ContainerModularArmor containerModularArmor, EntityPlayer aPlayer) {
+ super(containerModularArmor);
+ player = aPlayer;
+ cont = containerModularArmor;
+ tab = 0;
+ }
+ @Override
+ public void onGuiClosed()
+ {
+ cont.saveInventory(player);
+ super.onGuiClosed();
+ };
+ public String seperateNumber(long number){
+ DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US);
+ DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
+ symbols.setGroupingSeparator(' ');
+ return formatter.format(number);
+ }
- public FluidStack fluid;
-// 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;
+ @Override
+ protected void drawGuiContainerForegroundLayer(int x, int y) {
+ int xStart = (width - xSize) / 2;
+ int yStart = (height - ySize) / 2;
+ int x2 = x - xStart;
+ int y2 = y - yStart;
+ drawTooltip(x2, y2 + 5);
+ }
- public ArmorData(EntityPlayer player, ItemStack stack, int type, int tier) {
- if(updateArmorStatTypeList == null)
- {
- updateArmorStatTypeList = new ArrayList<StatType>();
- updateArmorStatTypeList.add(StatType.MAGNET);
- updateArmorStatTypeList.add(StatType.THORNS);
- updateArmorStatTypeList.add(StatType.PROCESSINGPOWER);
- updateArmorStatTypeList.add(StatType.PROCESSINGPOWERUSED);
- }
- this.type = type;
- this.armorTier = tier;
- ContainerModularArmor tmp = new ContainerBasicArmor((EntityPlayer) player, new InventoryArmor(ModularArmor_Item.class, stack));
- calculateArmor(tmp.mInvArmor.parts);
- switch (tier) {
+ @Override
+ protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
+ GL11.glColor4f(1F, 1F, 1F, 1F);
+ this.mc.getTextureManager().bindTexture(new ResourceLocation("gregtech", "textures/gui/armorgui3x4.png"));
+ int xStart = (width - xSize) / 2;
+ int yStart = (height - ySize) / 2;
+ //Draw background
+ drawTexturedModalRect(xStart, yStart, 0, 0, xSize, ySize);
+ //Draw active arrows
+ drawTexturedModalRect(xStart + 10, yStart + 70, 219, 11, 14, 5);
+ //Draw active armor symbol
+ switch (cont.mInvArmor.data.type) {
case 0:
- maxCharge = 0;
+ drawTexturedModalRect(xStart + 73, yStart + 68, 177, 10, 10, 9);
break;
case 1:
- maxCharge = 250000;
+ drawTexturedModalRect(xStart + 83, yStart + 68, 187, 10, 10, 9);
break;
case 2:
- maxCharge = 1000000;
- }
- readNBT(stack.getTagCompound());
- }
-
- private void readNBT(NBTTagCompound nbt) {
- if (nbt == null) {
- return;
+ drawTexturedModalRect(xStart + 93, yStart + 68, 197, 10, 10, 9);
+ break;
+ case 3:
+ drawTexturedModalRect(xStart + 103, yStart + 68, 207, 10, 10, 9);
+ break;
+ default:
+ break;
}
- if (nbt.hasKey("Charge")) {
- this.charge = nbt.getInteger("Charge");
+ //Draw active tab
+ switch(tab){
+ case 0:
+ break;
+ case 1:
+ drawTexturedModalRect(xStart + 7, yStart + 14, 2, 167, 104, 54);
+ break;
+ case 2:
+ drawTexturedModalRect(xStart + 7, yStart + 14, 107, 167, 104, 54);
+ break;
+ default:
+ break;
}
- }
-
- public void writeToNBT(NBTTagCompound nbt) {
- if (nbt == null) {
- return;
+ float tankCap = cont.mInvArmor.data.mStat.containsKey(StatType.TANKCAP) ? cont.mInvArmor.data.mStat.get(StatType.TANKCAP) :0.0f;
+ if(tankCap>0){
+ drawTexturedModalRect(xStart + 94, yStart + 32, 231, 69, 16, 34);
}
- nbt.setInteger("Charge", this.charge);
- }
-
- public ArmorData calculateArmor(ItemStack[] parts) {
- mStat.clear();
- mBStat.clear();
- for(ItemStack tPart : parts){
- if(tPart!=null && ArmorComponent.mStacks.containsKey(tPart.getUnlocalizedName()))
- ArmorComponent.mStacks.get(tPart.getUnlocalizedName()).calculateArmor(this);
+ float weight = cont.mInvArmor.data.mStat.containsKey(StatType.WEIGHT) ? cont.mInvArmor.data.mStat.get(StatType.WEIGHT) : 0.0f;
+ int bar = (int) Math.floor(18 * (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.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.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);
}
- 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;
+
+
}
- public void updateTooltip() {
- List<String> tagList = new ArrayList<String>();
- String tmp2 = "";
- if (maxWeight > 4000) {
- 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 (mBStat.get(StatType.THAUMICGOGGLES)) {
- tagList.add(GT_LanguageManager.getTranslation("Thaumic Goggles installed"));
- }
- if (mBStat.get(StatType.NIGHTVISION)) {
- tagList.add(GT_LanguageManager.getTranslation("Nightvision installed"));
- }
- }
- tagList.add("EU: " + formatter.format(charge + mStat.get(StatType.PARTSCHARGE)));
- if (type == 2) {
- tagList.add(GT_LanguageManager.getTranslation("Jumpboost") + ": " + mStat.get(StatType.PISTONJUMPBOOST) / 3 + "m");
- }
- if (type == 2 && mStat.get(StatType.PISTONJUMPBOOST) > 0) {
- tagList.add(GT_LanguageManager.getTranslation("Uphill step assist active"));
- }
- 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("Too Heavy!!!"));
- }
+ protected void mouseClicked(int mouseX, int mouseY, int mouseBtn) {
+ int xStart = mouseX-((width - xSize) / 2);
+ int yStart = mouseY-((height - ySize) / 2);
+ if(yStart>68&&yStart<77){
+ if(xStart>18&&xStart<26){
+ tab++;
+ }else if(xStart>8&&xStart<17){
+ tab--;
}
- 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(tab>2){tab=0;}
+ if(tab<0){tab=2;}
+ if(xStart>72&&xStart<112){
+ if(xStart>72&&xStart<81&&cont.mInvArmor.data.helmet!=null){cont.mInvArmor.data.helmet.openGui=true;}
+ if(xStart>82&&xStart<91&&cont.mInvArmor.data.chestplate!=null){cont.mInvArmor.data.chestplate.openGui=true;}
+ if(xStart>92&&xStart<101&&cont.mInvArmor.data.leggings!=null){cont.mInvArmor.data.leggings.openGui=true;}
+ if(xStart>102&&xStart<112&&cont.mInvArmor.data.boots!=null){cont.mInvArmor.data.boots.openGui=true;}
+
+// if(xStart>72&&xStart<81&&cont.mInvArmor.data.helmet!=null){cont.mInvArmor.data.helmet.openGui=true;player.closeScreen();}
+// if(xStart>82&&xStart<91&&cont.mInvArmor.data.chestplate!=null){cont.mInvArmor.data.chestplate.openGui=true;player.closeScreen();}
+// if(xStart>92&&xStart<101&&cont.mInvArmor.data.leggings!=null){cont.mInvArmor.data.leggings.openGui=true;player.closeScreen();}
+// if(xStart>102&&xStart<112&&cont.mInvArmor.data.boots!=null){cont.mInvArmor.data.boots.openGui=true;player.closeScreen();}
}
- if (mStat.get(StatType.TANKCAP) > 0) {
- if (fluid != null) {
- tagList.add(GT_LanguageManager.getTranslation("Tank Capacity") + ": " + fluid.getLocalizedName() + " " + fluid.amount + "L (" + mStat.get(StatType.TANKCAP) + ")");
- } else {
- tagList.add(GT_LanguageManager.getTranslation("tankcap") + ": " + mStat.get(StatType.TANKCAP));
- }
- }
- }
- 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 (mStat.get(StatType.THORNS) > 0) {
- tagList.add(GT_LanguageManager.getTranslation("Thorns") + ": " + mStat.get(StatType.THORNS));
- }
- if (mStat.get(StatType.MAGNET) > 0) {
- tagList.add(GT_LanguageManager.getTranslation("Magnet") + ": " + mStat.get(StatType.MAGNET) + "m");
+// Slot slot = getSlotAtPosition(mouseX, mouseY);
+// if (slot != null && slot instanceof SlotFluid && player != null && cont.mInvArmor.data.helmet!=null) {
+// ItemStack tmp = player.inventory.getItemStack();
+// //GT_Network gtn = new GT_Network();
+// if (tmp == null) {
+// //GT_Values.NW.sendToServer(new FluidSync(player.getCommandSenderName(), 0, "null"));
+// }
+// //ArmorData armorData = new ArmorData(player,);
+// if (tmp != null && tmp.getItem() instanceof IFluidContainerItem) {
+// FluidStack tmp2 = ((IFluidContainerItem) tmp.getItem()).getFluid(tmp);
+// if (!slot.getHasStack() && tmp2 != null) {
+// slot.putStack(GT_Utility.getFluidDisplayStack(tmp2, true));
+//
+// if(cont.mInvArmor.data.helmet.fluid == null)
+// {
+// cont.mInvArmor.data.helmet.fluid = new FluidStack(tmp2.getFluid(), tmp2.amount);
+// }
+// else
+// {
+// cont.mInvArmor.data.helmet.fluid.amount += tmp2.amount;
+// }
+//
+// //GT_Values.NW.sendToServer(new FluidSync(player.getCommandSenderName(), tmp2.amount, GT_Utility.getFluidName(tmp2, false)));
+// ItemStack tmp4 = GT_Utility.getContainerForFilledItem(tmp, true);
+// tmp4.stackSize = 1;
+// if (tmp.stackSize > 1) {
+// player.inventory.addItemStackToInventory(tmp4);
+// tmp.stackSize--;
+// player.inventory.setItemStack(tmp);
+// //GT_Values.NW.sendToServer(new FluidSync2(player.getCommandSenderName()));
+// } else {
+// player.inventory.setItemStack(null);
+// player.inventory.addItemStackToInventory(tmp4);
+// //GT_Values.NW.sendToServer(new FluidSync2(player.getCommandSenderName()));
+// }
+//
+// } else if (slot.getHasStack() && tmp2 != null) {
+// Item fluidSlot = slot.getStack().getItem();
+// if (fluidSlot.getDamage(slot.getStack()) == tmp2.getFluidID()) {
+// NBTTagCompound nbt = slot.getStack().getTagCompound();
+// if (nbt != null) {
+// tmp2.amount += nbt.getLong("mFluidDisplayAmount");
+// ItemStack tmp3 = player.inventory.getItemStack();
+// if (tmp3.stackSize <= 1) {
+// tmp3 = null;
+// } else {
+// tmp3.stackSize--;
+// }
+// player.inventory.setItemStack(tmp3);
+// //GT_Values.NW.sendToServer(new FluidSync2(player.getCommandSenderName()));
+// slot.putStack(GT_Utility.getFluidDisplayStack(tmp2, true));
+// if(cont.mInvArmor.data.helmet.fluid == null)
+// {
+// cont.mInvArmor.data.helmet.fluid = new FluidStack(tmp2.getFluid(), tmp2.amount);
+// }
+// else
+// {
+// cont.mInvArmor.data.helmet.fluid.amount += tmp2.amount;
+// }
+// //GT_Values.NW.sendToServer(new FluidSync(player.getCommandSenderName(), tmp2.amount, GT_Utility.getFluidName(tmp2, false)));
+// }
+// }
+// }
+// }
+// }
+ super.mouseClicked(mouseX, mouseY, mouseBtn);
+ }
+
+ protected void drawTooltip(int x, int y) {
+ 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.mStat.get(StatType.WEIGHT));
+ list.add("Total Weight: "+cont.mInvArmor.data.maxWeight);
+ if (cont.mInvArmor.data.mStat.get(StatType.WEIGHT) > 1000)
+ list.add("Too Heavy!");
}
- if (mBStat.get(StatType.FULLRADIATIONARMOR)) {
- tagList.add(GT_LanguageManager.getTranslation("Is Full Radiation Defence"));
- } else {
- if (mStat.get(StatType.RADIATIONDEFENCE) > 0.01d) {
- tagList.add(GT_LanguageManager.getTranslation("Radiation Defence") + ": " + (Math.round(mStat.get(StatType.RADIATIONDEFENCE) * 1000) / 10.0) + "%");
- }
+ if(x>=56&&y>=11&&x<=112&&y<=17){
+ list.add("Stored Energy: "+seperateNumber(cont.mInvArmor.data.charge)+" EU");
}
- info = tagList;
- }
-
- public void armorPartsEquipped(EntityPlayer aPlayer) {
- helmet = null;
- chestplate = null;
- leggings = null;
- boots = null;
- for (int i = 1; i < 5; i++) {
- ItemStack stack = aPlayer.getEquipmentInSlot(i);
- 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));
- if ((this.type + i) == 4) {
- 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;
- change(mStat, StatType.PARTSCHARGE, -loaded);
-
- }
- switch (tmp.armorType) {
- case 0:
- helmet = tmp.data;
- break;
- case 1:
- chestplate = tmp.data;
- break;
- case 2:
- leggings = tmp.data;
- break;
- case 3:
- boots = tmp.data;
- break;
- default:
- break;
- }
- writeToNBT(stack.getTagCompound());
+ if(y>74&&y<83){
+ if(x>8&&x<17){
+ list.add("Previous Page");
+ }else if(x>18&&x<27){
+ list.add("Next Page");
+ }else if(x>72&&x<80){
+ list.add("Helmet");
+ }else if(x>81&&x<90){
+ list.add("Chestplate");
+ }else if(x>91&&x<100){
+ list.add("Leggings");
+ }else if(x>101&&x<110){
+ list.add("Boots");
}
}
- if (helmet != null && chestplate != null && leggings != null && boots != null) {
- set(mBStat, StatType.FULLARMOR, true);
- boolean helmHasFullRadiationDefence=false;
- boolean chestplateHasFullRadiationDefence=false;
- boolean leggingsHasFullRadiationDefence=false;
- boolean bootsHasFullRadiationDefence=false;
-
- boolean helmHasFullElectricalDefenceDefence=false;
- boolean chestplateHasFullElectricalDefenceDefence=false;
- boolean leggingsHasFullElectricalDefenceDefence=false;
- boolean bootsHasFullElectricalDefenceDefence=false;
- //Check each armor pieces for valid mStat value and verify that the Hash contains the StatType key
- if(helmet.mStat!= null)
- {
- if(helmet.mStat.containsKey(StatType.RADIATIONDEFENCE))
- {
- helmHasFullRadiationDefence = helmet.mStat.get(StatType.RADIATIONDEFENCE)> 0.9f;
- }
- if(helmet.mStat.containsKey(StatType.ELECTRICALDEFENCE))
- {
- helmHasFullElectricalDefenceDefence = helmet.mStat.get(StatType.RADIATIONDEFENCE)> 0.9f;
- }
+ if(tab==0){
+ if(x>=93&&y>=36&&x<=110&&y<=71){list.add("Tank Capacity: "+cont.mInvArmor.data.mStat.get(StatType.TANKCAP)+"L");
}
- if(chestplate.mStat!= null)
- {
- if(chestplate.mStat.containsKey(StatType.RADIATIONDEFENCE))
- {
- chestplateHasFullRadiationDefence = chestplate.mStat.get(StatType.RADIATIONDEFENCE)> 0.9f;
- }
- if(chestplate.mStat.containsKey(StatType.ELECTRICALDEFENCE))
- {
- chestplateHasFullElectricalDefenceDefence = chestplate.mStat.get(StatType.RADIATIONDEFENCE)> 0.9f;
- }
+ 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));
}
- if(leggings.mStat!= null)
- {
- if(leggings.mStat.containsKey(StatType.RADIATIONDEFENCE))
- {
- leggingsHasFullRadiationDefence = leggings.mStat.get(StatType.RADIATIONDEFENCE)> 0.9f;
- }
- if(leggings.mStat.containsKey(StatType.ELECTRICALDEFENCE))
- {
- leggingsHasFullElectricalDefenceDefence = leggings.mStat.get(StatType.RADIATIONDEFENCE)> 0.9f;
- }
+ }else if(tab==1){
+
+ }else{
+ if (x >= 28 && x <= 58) {
+ if (y >= 25 && y <= 32) {
+ 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("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("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("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("Explosion Defence") + ": " + (Math.round(cont.mInvArmor.data.mStat.get(StatType.EXPLOSIONDEFENCE) * 1000) / 10.0) + "%");
}
- if(boots.mStat!= null)
- {
- if(boots.mStat.containsKey(StatType.RADIATIONDEFENCE))
- {
- bootsHasFullRadiationDefence = boots.mStat.get(StatType.RADIATIONDEFENCE)> 0.9f;
- }
- if(boots.mStat.containsKey(StatType.ELECTRICALDEFENCE))
- {
- bootsHasFullElectricalDefenceDefence = boots.mStat.get(StatType.RADIATIONDEFENCE)> 0.9f;
- }
+ } else if (x >= 59 && x <= 90) {
+ if (y >= 25 && y <= 32) {
+ 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("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("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(GT_LanguageManager.getTranslation("Fall Damage absorbtion"));
+ list.add(GT_LanguageManager.getTranslation("Only for Boots"));
+ }else{
+ 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.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.mStat.get(StatType.MAGNETSINGLE) + " m");
+ list.add(GT_LanguageManager.getTranslation("Total Magnet") + ": " + cont.mInvArmor.data.mStat.get(StatType.MAGNET) + " m");}
}
- //Set Status of Full Armor types
- set(mBStat, StatType.FULLRADIATIONARMOR, helmHasFullRadiationDefence&&chestplateHasFullRadiationDefence&&leggingsHasFullRadiationDefence &&bootsHasFullRadiationDefence);
- set(mBStat, StatType.FULLELECTRICARMOR, helmHasFullElectricalDefenceDefence&&chestplateHasFullElectricalDefenceDefence&&leggingsHasFullElectricalDefenceDefence &&bootsHasFullElectricalDefenceDefence);
- } else {
- //Reset Full armor type status to false for all types if StatType.FULLARMOR is false
- set(mBStat, StatType.FULLARMOR, false);
- set(mBStat, StatType.FULLRADIATIONARMOR, false);
- set(mBStat, StatType.FULLELECTRICARMOR, false);
- }
-
-
- set(mBStat, StatType.MAGNET, 0);
- set(mBStat, StatType.THORNS, 0);
- set(mBStat, StatType.PROCESSINGPOWER, 0);
- set(mBStat, StatType.PROCESSINGPOWERUSED, 0);
-
- if (helmet != null) {
- updateArmorStats(helmet,updateArmorStatTypeList );
- }
- if (chestplate != null) {
- updateArmorStats(chestplate,updateArmorStatTypeList );
-
- }
- if (leggings != null) {
- updateArmorStats(leggings,updateArmorStatTypeList );
-
- }
- if (boots != null) {
- updateArmorStats(boots,updateArmorStatTypeList );
-
- }
- isTopItem = false;
- if (type == 0) {
- isTopItem = true;
- } else if (helmet == null && type == 1) {
- isTopItem = true;
- } else if (helmet == null && chestplate == null && type == 2) {
- isTopItem = true;
- } else if (helmet == null && chestplate == null && leggings == null && type == 3) {
- isTopItem = true;
}
- if (helmet != null) {
- maxWeight = helmet.mStat.get(StatType.WEIGHT);
}
- if (chestplate != null) {
- maxWeight += chestplate.mStat.get(StatType.WEIGHT);
- }
- if (leggings != null) {
- maxWeight += leggings.mStat.get(StatType.WEIGHT);
- }
- if (boots != null) {
- maxWeight += boots.mStat.get(StatType.WEIGHT);
- }
- }
-
- private void updateArmorStats(ArmorData armorData, ArrayList<StatType> statTypes) {
- for (StatType statType : statTypes) {
- if(armorData == null || armorData.mStat == null || !armorData.mStat.containsKey(statType))
- continue;
-// if(armorData != null && armorData.mStat != null && armorData.mStat.containsKey(statType))
-// {
- set(mStat, statType, armorData.mStat.get(statType));
-// }
- /*change(mStat, StatType.MAGNET, armorData.mStat.get(StatType.MAGNET));
- change(mStat, StatType.THORNS, armorData.mStat.get(StatType.THORNS));
- change(mStat, StatType.PROCESSINGPOWER, armorData.mStat.get(StatType.PROCESSINGPOWER));
- change(mStat, StatType.PROCESSINGPOWERUSED, armorData.mStat.get(StatType.PROCESSINGPOWERUSED));*/
- }
-
-
+ if (!list.isEmpty())
+ drawHoveringText(list, x, y, fontRendererObj);
}
- 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 drawBars(int x, int y, float value) {
+
+ int bar = (int) Math.floor(18 * value);
+ int xStart = (width - xSize) / 2;
+ int yStart = (height - ySize) / 2;
+ xStart += 8;
+ yStart += 1;
+ drawTexturedModalRect(xStart + x, yStart + y, 217, 26, bar, 5);
+ drawTexturedModalRect(xStart+ bar + x, yStart + y, 197+bar, 26, 18-bar, 5);
}
-
- public void change(Map aMap, StatType aType, float aChange){
- float tChange = 0;
- if(aMap==null)System.out.println("changeMapnull");
- if(aMap.containsKey(aType)){
- Object value = aMap.get(aType);
- tChange = value != null ? (float) aMap.get(aType) : 0.0f;
- aMap.remove(aType);
+
+ protected Slot getSlotAtPosition(int p_146975_1_, int p_146975_2_) {
+ for (int k = 0; k < cont.inventorySlots.size(); ++k) {
+ Slot slot = (Slot) cont.inventorySlots.get(k);
+ if (this.isMouseOverSlot(slot, p_146975_1_, p_146975_2_)) {
+ return slot;
+ }
}
- aMap.put(aType, (tChange + aChange));
- }
-
- public void dechargeComponents(int aCharge){
-
+ return null;
}
- public double getBaseAbsorptionRatio() {
- switch (this.type) {
- case 0:
- return 0.15;
- case 1:
- return 0.40;
- case 2:
- return 0.30;
- case 3:
- return 0.15;
- default:
- return 0.00;
- }
+ private boolean isMouseOverSlot(Slot p_146981_1_, int p_146981_2_, int p_146981_3_) {
+ return this.func_146978_c(p_146981_1_.xDisplayPosition, p_146981_1_.yDisplayPosition, 16, 16, p_146981_2_, p_146981_3_);
}
-}
+} \ No newline at end of file
diff --git a/src/main/java/gregtech/common/items/armor/GuiElectricArmor1.java b/src/main/java/gregtech/common/items/armor/GuiElectricArmor1.java
new file mode 100644
index 0000000000..6857535d65
--- /dev/null
+++ b/src/main/java/gregtech/common/items/armor/GuiElectricArmor1.java
@@ -0,0 +1,299 @@
+package gregtech.common.items.armor;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.util.GT_LanguageManager;
+import net.minecraft.client.gui.inventory.GuiContainer;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.inventory.Slot;
+import net.minecraft.util.ResourceLocation;
+import org.lwjgl.opengl.GL11;
+
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+@SideOnly(Side.CLIENT)
+public class GuiElectricArmor1 extends GuiContainer {
+ ContainerModularArmor cont;
+ EntityPlayer player;
+ private int tab;
+
+ public GuiElectricArmor1(ContainerModularArmor containerModularArmor, EntityPlayer aPlayer) {
+ super(containerModularArmor);
+ player = aPlayer;
+ cont = containerModularArmor;
+ tab = 0;
+ }
+
+ public String seperateNumber(long number){
+ DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US);
+ DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
+ symbols.setGroupingSeparator(' ');
+ return formatter.format(number);
+ }
+
+ @Override
+ protected void drawGuiContainerForegroundLayer(int x, int y) {
+ int xStart = (width - xSize) / 2;
+ int yStart = (height - ySize) / 2;
+ int x2 = x - xStart;
+ int y2 = y - yStart;
+ drawTooltip(x2, y2 + 5);
+ }
+
+ @Override
+ protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
+ GL11.glColor4f(1F, 1F, 1F, 1F);
+ this.mc.getTextureManager().bindTexture(new ResourceLocation("gregtech", "textures/gui/armorgui3x4.png"));
+ int xStart = (width - xSize) / 2;
+ int yStart = (height - ySize) / 2;
+ //Draw background
+ drawTexturedModalRect(xStart, yStart, 0, 0, xSize, ySize);
+ //Draw active arrows
+ drawTexturedModalRect(xStart + 10, yStart + 70, 219, 11, 14, 5);
+ //Draw active armor symbol
+ switch (cont.mInvArmor.data.type) {
+ case 0:
+ drawTexturedModalRect(xStart + 73, yStart + 68, 177, 10, 10, 9);
+ break;
+ case 1:
+ drawTexturedModalRect(xStart + 83, yStart + 68, 187, 10, 10, 9);
+ break;
+ case 2:
+ drawTexturedModalRect(xStart + 93, yStart + 68, 197, 10, 10, 9);
+ break;
+ case 3:
+ drawTexturedModalRect(xStart + 103, yStart + 68, 207, 10, 10, 9);
+ break;
+ default:
+ break;
+ }
+ //Draw active tab
+ switch(tab){
+ case 0:
+ break;
+ case 1:
+ drawTexturedModalRect(xStart + 7, yStart + 14, 2, 167, 104, 54);
+ break;
+ case 2:
+ drawTexturedModalRect(xStart + 7, yStart + 14, 107, 167, 104, 54);
+ break;
+ default:
+ break;
+ }
+
+ if(cont.mInvArmor.data.tankCap>0){
+ drawTexturedModalRect(xStart + 94, yStart + 32, 231, 69, 16, 34);
+ }
+
+ int bar = (int) Math.floor(18 * (cont.mInvArmor.data.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);
+ 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);
+ }
+
+
+ }
+
+ protected void mouseClicked(int mouseX, int mouseY, int mouseBtn) {
+ int xStart = mouseX-((width - xSize) / 2);
+ int yStart = mouseY-((height - ySize) / 2);
+ if(yStart>68&&yStart<77){
+ if(xStart>18&&xStart<26){
+ tab++;
+ }else if(xStart>8&&xStart<17){
+ tab--;
+ }
+ if(tab>2){tab=0;}
+ if(tab<0){tab=2;}
+ if(xStart>72&&xStart<112){
+ if(xStart>72&&xStart<81&&cont.mInvArmor.data.helmet!=null){cont.mInvArmor.data.helmet.openGui=true;player.closeScreen();}
+ if(xStart>82&&xStart<91&&cont.mInvArmor.data.chestplate!=null){cont.mInvArmor.data.chestplate.openGui=true;player.closeScreen();}
+ if(xStart>92&&xStart<101&&cont.mInvArmor.data.leggings!=null){cont.mInvArmor.data.leggings.openGui=true;player.closeScreen();}
+ if(xStart>102&&xStart<112&&cont.mInvArmor.data.boots!=null){cont.mInvArmor.data.boots.openGui=true;player.closeScreen();}
+ }
+ }
+// Slot slot = getSlotAtPosition(mouseX, mouseY);
+// if (slot != null && slot instanceof SlotFluid && player != null) {
+// ItemStack tmp = player.inventory.getItemStack();
+// if (tmp == null) {
+// GTExtras.NET.sendToServer(new FluidSync(player.getCommandSenderName(), 0, "null"));
+// }
+// if (tmp != null && tmp.getItem() instanceof IFluidContainerItem) {
+// FluidStack tmp2 = ((IFluidContainerItem) tmp.getItem()).getFluid(tmp);
+// if (!slot.getHasStack() && tmp2 != null) {
+// slot.putStack(UT.Fluids.display(tmp2, true));
+// GTExtras.NET.sendToServer(new FluidSync(player.getCommandSenderName(), tmp2.amount, UT.Fluids.name(tmp2, false)));
+// ItemStack tmp4 = UT.Fluids.getContainerForFilledItem(tmp, true);
+// tmp4.stackSize = 1;
+// if (tmp.stackSize > 1) {
+// player.inventory.addItemStackToInventory(tmp4);
+// tmp.stackSize--;
+// player.inventory.setItemStack(tmp);
+// GTExtras.NET.sendToServer(new FluidSync2(player.getCommandSenderName()));
+// } else {
+// player.inventory.setItemStack(null);
+// player.inventory.addItemStackToInventory(tmp4);
+// GTExtras.NET.sendToServer(new FluidSync2(player.getCommandSenderName()));
+// }
+//
+// } else if (slot.getHasStack() && tmp2 != null) {
+// Item fluidSlot = slot.getStack().getItem();
+// if (fluidSlot.getDamage(slot.getStack()) == tmp2.getFluidID()) {
+// NBTTagCompound nbt = slot.getStack().getTagCompound();
+// if (nbt != null) {
+// tmp2.amount += nbt.getLong("mFluidDisplayAmount");
+// ItemStack tmp3 = player.inventory.getItemStack();
+// if (tmp3.stackSize <= 1) {
+// tmp3 = null;
+// } else {
+// tmp3.stackSize--;
+// }
+// player.inventory.setItemStack(tmp3);
+// GTExtras.NET.sendToServer(new FluidSync2(player.getCommandSenderName()));
+// slot.putStack(UT.Fluids.display(tmp2, true));
+// GTExtras.NET.sendToServer(new FluidSync(player.getCommandSenderName(), tmp2.amount, UT.Fluids.name(tmp2, false)));
+// }
+// }
+// }
+// }
+// }
+ super.mouseClicked(mouseX, mouseY, mouseBtn);
+ }
+
+ protected void drawTooltip(int x, int y) {
+ 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("Total Weight: "+cont.mInvArmor.data.maxWeight);
+ if (cont.mInvArmor.data.weight > 1000)
+ list.add("Too Heavy!");
+ }
+ if(x>=56&&y>=11&&x<=112&&y<=17){
+ list.add("Stored Energy: "+seperateNumber(cont.mInvArmor.data.charge)+" EU");
+ }
+ if(y>74&&y<83){
+ if(x>8&&x<17){
+ list.add("Previous Page");
+ }else if(x>18&&x<27){
+ list.add("Next Page");
+ }else if(x>72&&x<80){
+ list.add("Helmet");
+ }else if(x>81&&x<90){
+ list.add("Chestplate");
+ }else if(x>91&&x<100){
+ list.add("Leggings");
+ }else if(x>101&&x<110){
+ list.add("Boots");
+ }
+ }
+ if(tab==0){
+ if(x>=93&&y>=36&&x<=110&&y<=71){list.add("Tank Capacity: "+cont.mInvArmor.data.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);
+ }
+ }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) + "%");
+ } else if (y >= 33 && y <= 41) {
+ list.add(GT_LanguageManager.getTranslation("prodef") + ": " + (Math.round(cont.mInvArmor.data.projectileDef * 1000) / 10.0) + "%");
+ } else if (y >= 42 && y <= 50) {
+ list.add(GT_LanguageManager.getTranslation("firedef") + ": " + (Math.round(cont.mInvArmor.data.fireDef * 1000) / 10.0) + "%");
+ } else if (y >= 51 && y <= 59) {
+ list.add(GT_LanguageManager.getTranslation("magdef") + ": " + (Math.round(cont.mInvArmor.data.magicDef * 1000) / 10.0) + "%");
+ } else if (y >= 60 && y <= 68) {
+ list.add(GT_LanguageManager.getTranslation("expdef") + ": " + (Math.round(cont.mInvArmor.data.explosionDef * 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");}
+ } 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");}
+ } else if (y >= 42 && y <= 50) {
+ list.add(GT_LanguageManager.getTranslation("whidef") + ": " + (Math.round(cont.mInvArmor.data.witherDef * 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");
+ }else{
+ list.add(GT_LanguageManager.getTranslation("abs1") + " " + (int) Math.round(cont.mInvArmor.data.fallDef) + GT_LanguageManager.getTranslation("abs2"));}
+ } 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");
+ }else{
+ list.add(GT_LanguageManager.getTranslation("magnet") + ": " + cont.mInvArmor.data.magnetSingle + " m");
+ list.add("Total "+GT_LanguageManager.getTranslation("magnet") + ": " + cont.mInvArmor.data.magnet + " m");}
+ }
+ }
+ }
+ if (!list.isEmpty())
+ drawHoveringText(list, x, y, fontRendererObj);
+ }
+
+ public void drawBars(int x, int y, float value) {
+
+ int bar = (int) Math.floor(18 * value);
+ int xStart = (width - xSize) / 2;
+ int yStart = (height - ySize) / 2;
+ xStart += 8;
+ yStart += 1;
+ drawTexturedModalRect(xStart + x, yStart + y, 217, 26, bar, 5);
+ drawTexturedModalRect(xStart+ bar + x, yStart + y, 197+bar, 26, 18-bar, 5);
+ }
+
+ protected Slot getSlotAtPosition(int p_146975_1_, int p_146975_2_) {
+ for (int k = 0; k < cont.inventorySlots.size(); ++k) {
+ Slot slot = (Slot) cont.inventorySlots.get(k);
+ if (this.isMouseOverSlot(slot, p_146975_1_, p_146975_2_)) {
+ return slot;
+ }
+ }
+ return null;
+ }
+
+ private boolean isMouseOverSlot(Slot p_146981_1_, int p_146981_2_, int p_146981_3_) {
+ return this.func_146978_c(p_146981_1_.xDisplayPosition, p_146981_1_.yDisplayPosition, 16, 16, p_146981_2_, p_146981_3_);
+ }
+}
diff --git a/src/main/java/gregtech/common/items/armor/Vector3.java b/src/main/java/gregtech/common/items/armor/Vector3.java
index 590f544546..2f79ff4c69 100644
--- a/src/main/java/gregtech/common/items/armor/Vector3.java
+++ b/src/main/java/gregtech/common/items/armor/Vector3.java
@@ -1,8 +1,7 @@
package gregtech.common.items.armor;
-import java.math.BigDecimal;
-import java.math.MathContext;
-import java.math.RoundingMode;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.Entity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
@@ -10,8 +9,10 @@ import net.minecraft.util.Vec3;
import org.lwjgl.opengl.GL11;
import org.lwjgl.util.vector.Vector3f;
import org.lwjgl.util.vector.Vector4f;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
+
+import java.math.BigDecimal;
+import java.math.MathContext;
+import java.math.RoundingMode;
public class Vector3 {
public static Vector3 zero = new Vector3();
diff --git a/src/main/java/gregtech/common/items/armor/gui/ContainerModularArmor.java b/src/main/java/gregtech/common/items/armor/gui/ContainerModularArmor.java
index 0258a3eb3c..1f63afac5e 100644
--- a/src/main/java/gregtech/common/items/armor/gui/ContainerModularArmor.java
+++ b/src/main/java/gregtech/common/items/armor/gui/ContainerModularArmor.java
@@ -4,9 +4,7 @@ import gregtech.common.items.armor.ArmorData;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
-import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
-import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
diff --git a/src/main/java/gregtech/common/items/armor/gui/FluidSync.java b/src/main/java/gregtech/common/items/armor/gui/FluidSync.java
index 8f1aef56d1..0e17a82ee8 100644
--- a/src/main/java/gregtech/common/items/armor/gui/FluidSync.java
+++ b/src/main/java/gregtech/common/items/armor/gui/FluidSync.java
@@ -1,14 +1,5 @@
package gregtech.common.items.armor.gui;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.world.IBlockAccess;
-import net.minecraft.world.WorldServer;
-import net.minecraftforge.common.DimensionManager;
-import net.minecraftforge.fluids.FluidRegistry;
-import net.minecraftforge.fluids.FluidStack;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
diff --git a/src/main/java/gregtech/common/items/armor/gui/FluidSync2.java b/src/main/java/gregtech/common/items/armor/gui/FluidSync2.java
index 75c3c6d363..6882e67268 100644
--- a/src/main/java/gregtech/common/items/armor/gui/FluidSync2.java
+++ b/src/main/java/gregtech/common/items/armor/gui/FluidSync2.java
@@ -1,15 +1,5 @@
package gregtech.common.items.armor.gui;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.IBlockAccess;
-import net.minecraft.world.WorldServer;
-import net.minecraftforge.common.DimensionManager;
-import net.minecraftforge.fluids.FluidRegistry;
-import net.minecraftforge.fluids.FluidStack;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
diff --git a/src/main/java/gregtech/common/items/armor/gui/SlotFluid.java b/src/main/java/gregtech/common/items/armor/gui/SlotFluid.java
index a3d2bdaf09..63e8873df9 100644
--- a/src/main/java/gregtech/common/items/armor/gui/SlotFluid.java
+++ b/src/main/java/gregtech/common/items/armor/gui/SlotFluid.java
@@ -1,16 +1,9 @@
package gregtech.common.items.armor.gui;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import scala.reflect.internal.Trees.This;
-import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
-import net.minecraft.util.IIcon;
-import net.minecraft.util.ResourceLocation;
-import net.minecraftforge.fluids.FluidRegistry;
public class SlotFluid extends Slot{