aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r--src/main/java/gregtech/common/GT_Client.java2
-rw-r--r--src/main/java/gregtech/common/GT_Pollution.java11
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java14
-rw-r--r--src/main/java/gregtech/common/GT_RecipeAdder.java2
-rw-r--r--src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java2
-rw-r--r--src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java4
-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
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java2
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_SeismicProspector.java2
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java2
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java310
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java5
19 files changed, 606 insertions, 769 deletions
diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java
index 1a3ed25e6c..fa14abf03d 100644
--- a/src/main/java/gregtech/common/GT_Client.java
+++ b/src/main/java/gregtech/common/GT_Client.java
@@ -292,7 +292,7 @@ public class GT_Client extends GT_Proxy
afterSomeTime=0;
StatFileWriter sfw= Minecraft.getMinecraft().thePlayer.getStatFileWriter();
try {
- for(GT_Recipe recipe:GT_Recipe.GT_Recipe_Map.sAssemblylineFakeRecipes.mRecipeList){
+ for(GT_Recipe recipe:GT_Recipe.GT_Recipe_Map.sAssemblylineVisualRecipes.mRecipeList){
recipe.mHidden=!sfw.hasAchievementUnlocked(GT_Mod.achievements.getAchievement(recipe.getOutput(0).getUnlocalizedName()));
}
}catch (Exception e){}
diff --git a/src/main/java/gregtech/common/GT_Pollution.java b/src/main/java/gregtech/common/GT_Pollution.java
index 39dc0c3b8f..5c7678e857 100644
--- a/src/main/java/gregtech/common/GT_Pollution.java
+++ b/src/main/java/gregtech/common/GT_Pollution.java
@@ -16,6 +16,7 @@ import net.minecraftforge.common.DimensionManager;
import java.util.ArrayList;
import java.util.List;
+import java.util.TreeMap;
//import net.minecraft.entity.EntityLiving;
@@ -52,7 +53,7 @@ public class GT_Pollution {//TODO REWORK
* LV (0%), MV (30%), HV (52%), EV (66%), IV (76%), LuV (84%), ZPM (89%), UV (92%), MAX (95%)
*/
- static TreeMap<Integer,List<ChunkPosition>> tList = null;
+ static List<ChunkPosition> tList = null;
static int loops = 1;
static XSTR tRan = new XSTR();
@@ -60,8 +61,8 @@ public class GT_Pollution {//TODO REWORK
if(!GT_Mod.gregtechproxy.mPollution) return;
int aWorldID=aWorld.provider.dimensionId;
if(aTick == 0 || (tList==null && GT_Proxy.chunkData!=null)){
- tList = new TreeMap<>();
- tList.put(aWorld,new ArrayList<ChunkPosition>(GT_Proxy.chunkData.keySet()));
+ //---tList = new TreeMap<>();
+ //---tList.put(aWorld,new ArrayList<ChunkPosition>(GT_Proxy.chunkData.keySet()));
loops = (tList.size()/1200) + 1;
//System.out.println("new Pollution loop"+aTick);
}
@@ -83,8 +84,8 @@ public class GT_Pollution {//TODO REWORK
tNeighbor.add(new ChunkPosition(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ+1));
tNeighbor.add(new ChunkPosition(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ-1));
for(ChunkPosition tNPos : tNeighbor){
- if(!GT_Proxy.chunkData.containsKey(tNPos))
- GT_Utility.undergroundOil(aWorld,tNPos.chunkPosX,tNPos.chunkPosZ,false,0);
+ //---if(!GT_Proxy.chunkData.containsKey(tNPos))
+ //--- GT_Utility.undergroundOil(aWorld,tNPos.chunkPosX,tNPos.chunkPosZ,false,0);
//if(GT_Proxy.chunkData.containsKey(tNPos)){
int tNPol = GT_Proxy.chunkData.get(tNPos)[1];
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java
index 2a71740231..07c1ea9fce 100644
--- a/src/main/java/gregtech/common/GT_Proxy.java
+++ b/src/main/java/gregtech/common/GT_Proxy.java
@@ -656,12 +656,12 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
'R', OrePrefixes.ring.get(Materials.Steel)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadDrill, aMaterial, 1L), tBits, new Object[]{"XSX", "XSX",
"ShS", 'X', OrePrefixes.plate.get(aMaterial), 'S', OrePrefixes.plate.get(Materials.Steel)});
- switch (aMaterial) {
- case Wood:
+ switch (aMaterial.mName) {
+ case "Wood":
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), tBits, new Object[]{"P ", " s",
'P', OrePrefixes.plank.get(aMaterial)});
break;
- case Stone:
+ case "Stone":
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), tBits, new Object[]{"P ", " f",
'P', OrePrefixes.stoneSmooth});
break;
@@ -672,12 +672,12 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
//TODO CHECK
}
- switch (aMaterial) {
- case Wood:
+ switch (aMaterial.mName) {
+ case "Wood":
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), tBits, new Object[]{"SPS", "PsP", "SPS",
'P', OrePrefixes.plank.get(aMaterial), 'S', OrePrefixes.stick.get(aMaterial)});
break;
- case Stone:
+ case "Stone":
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), tBits, new Object[]{"SPS", "PfP", "SPS",
'P', OrePrefixes.stoneSmooth, 'S', new ItemStack(Blocks.stone_button, 1, 32767)});
break;
@@ -739,7 +739,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
new Object[]{"h", "X", 'X', OrePrefixes.gemFlawless.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 2L), tBits,
new Object[]{"h", "X", 'X', OrePrefixes.gemExquisite.get(aMaterial)});
- if ((aMaterial.contains(SubTag.MORTAR_GRINDABLE)) && (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, aMaterial.name(), true))) {
+ if ((aMaterial.contains(SubTag.MORTAR_GRINDABLE)) && (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, aMaterial.mName, true))) {
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L), tBits,
new Object[]{"X", "m", 'X', OrePrefixes.gemChipped.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 2L), tBits,
diff --git a/src/main/java/gregtech/common/GT_RecipeAdder.java b/src/main/java/gregtech/common/GT_RecipeAdder.java
index 090f64c1c4..80b6be70c5 100644
--- a/src/main/java/gregtech/common/GT_RecipeAdder.java
+++ b/src/main/java/gregtech/common/GT_RecipeAdder.java
@@ -896,7 +896,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
if(tItem==null)System.out.println("addAssemblinglineRecipe"+aResearchItem.getDisplayName());
}
GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{aResearchItem}, new ItemStack[]{aOutput}, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Writes Research result", new Object[0])}, null, null, aResearchTime, 30, 0);
- GT_Recipe.GT_Recipe_Map.sAssemblylineFakeRecipes.addFakeRecipe(false, aInputs, new ItemStack[]{aOutput}, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Reads Research result", new Object[0])}, aFluidInputs, null, aDuration, aEUt, 0,true);
+ GT_Recipe.GT_Recipe_Map.sAssemblylineVisualRecipes.addFakeRecipe(false, aInputs, new ItemStack[]{aOutput}, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Reads Research result", new Object[0])}, aFluidInputs, null, aDuration, aEUt, 0,true);
GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes.add(new GT_Recipe_AssemblyLine( aResearchItem, aResearchTime, aInputs, aFluidInputs, aOutput, aDuration, aEUt));
return true;
}
diff --git a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java
index 6d2df102f8..8d762a0d02 100644
--- a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java
+++ b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java
@@ -42,7 +42,7 @@ public class GT_Worldgen_GT_Ore_Layer
//public final boolean mAsteroid;
public final String aTextWorldgen = "worldgen.";
- public GT_Worldgen_GT_Ore_Layer(String aName, boolean aDefault, int aMinY, int aMaxY, int aWeight, int aDensity, int aSize, boolean aOverworld, boolean aNether, boolean aEnd, Materials aPrimary, Materials aSecondary, Materials aBetween, Materials aSporadic) {
+ public GT_Worldgen_GT_Ore_Layer(String aName, boolean aDefault, int aMinY, int aMaxY, int aWeight, int aDensity, int aSize, boolean aOverworld, boolean aNether, boolean aEnd, boolean GC_UNUSED1, boolean GC_UNUSED2, boolean GC_UNUSED3, Materials aPrimary, Materials aSecondary, Materials aBetween, Materials aSporadic) {
super(aName, sList, aDefault);
this.mOverworld = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Overworld", aOverworld);
this.mNether = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Nether", aNether);
diff --git a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java
index 5b0d4d61f5..6a8cd49b6f 100644
--- a/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java
+++ b/src/main/java/gregtech/common/GT_Worldgen_GT_Ore_SmallPieces.java
@@ -25,8 +25,8 @@ public class GT_Worldgen_GT_Ore_SmallPieces
public final String mBiome;
public final String aTextWorldgen = "worldgen.";
-
- public GT_Worldgen_GT_Ore_SmallPieces(String aName, boolean aDefault, int aMinY, int aMaxY, int aAmount, boolean aOverworld, boolean aNether, boolean aEnd, Materials aPrimary) {
+ //TODO CHECk IF INSTANTIATION IS CORRECT
+ public GT_Worldgen_GT_Ore_SmallPieces(String aName, boolean aDefault, int aMinY, int aMaxY, int aAmount, boolean aOverworld, boolean aNether, boolean aEnd, boolean GC_UNUSED1, boolean GC_UNUSED2, boolean GC_UNUSED3, Materials aPrimary) {
super(aName, GregTech_API.sWorldgenList, aDefault);
this.mOverworld = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Overworld", aOverworld);
this.mNether = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Nether", aNether);
diff --git a/src/main/java/gregtech/common/items/armor/ArmorData.java b/src/main/java/gregtech/common/items/armor/ArmorData.java
index 9a2b161a0f..00ec76aeea 100644
--- a/src/main/java/gregtech/common/items/armor/ArmorData.java
+++ b/src/main/java/gregtech/common/items/armor/ArmorData.java
@@ -1,344 +1,426 @@
-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;
+package gregtech.common.items.armor;
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 org.lwjgl.opengl.GL11;
-
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import net.minecraft.client.gui.inventory.GuiContainer;
+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.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.util.ResourceLocation;
+import net.minecraft.nbt.NBTTagList;
+import net.minecraft.util.DamageSource;
import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
-import net.minecraftforge.fluids.IFluidContainerItem;
-@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 class ArmorData {
- @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 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;
- @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;
+ 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;
+
+ 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;
+
+ 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);
}
- //Draw active tab
- switch(tab){
+ this.type = type;
+ this.armorTier = tier;
+ ContainerModularArmor tmp = new ContainerBasicArmor((EntityPlayer) player, new InventoryArmor(ModularArmor_Item.class, stack));
+ calculateArmor(tmp.mInvArmor.parts);
+ switch (tier) {
case 0:
+ maxCharge = 0;
break;
case 1:
- drawTexturedModalRect(xStart + 7, yStart + 14, 2, 167, 104, 54);
+ maxCharge = 250000;
break;
case 2:
- drawTexturedModalRect(xStart + 7, yStart + 14, 107, 167, 104, 54);
- break;
- default:
- break;
+ maxCharge = 1000000;
}
- 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);
+ readNBT(stack.getTagCompound());
+ }
+
+ private void readNBT(NBTTagCompound nbt) {
+ if (nbt == null) {
+ return;
}
- 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);
+ if (nbt.hasKey("Charge")) {
+ this.charge = nbt.getInteger("Charge");
}
-
-
}
- 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;}
- 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();}
- }
+ public void writeToNBT(NBTTagCompound nbt) {
+ if (nbt == null) {
+ return;
}
-// 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);
+ nbt.setInteger("Charge", this.charge);
}
-
- 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!");
+
+ 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);
}
- if(x>=56&&y>=11&&x<=112&&y<=17){
- list.add("Stored Energy: "+seperateNumber(cont.mInvArmor.data.charge)+" EU");
+ 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(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 (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!!!"));
+ }
+ }
+ 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 (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");
}
- 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 (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>=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));
+ }
+ 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());
}
- }else if(tab==1){
+ }
+ 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;
- }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) + "%");
+ 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(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;
+ }
}
- } 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");}
+ 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;
+ }
}
+ 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;
+ }
+ }
+ //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 (!list.isEmpty())
- drawHoveringText(list, x, y, fontRendererObj);
- }
-
- public void drawBars(int x, int y, float value) {
+ if (chestplate != null) {
+ updateArmorStats(chestplate,updateArmorStatTypeList );
- 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);
+ }
+ 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);
+ }
}
- 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;
- }
+ 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));*/
+ }
+
+
+ }
+
+ 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)){
+ Object value = aMap.get(aType);
+ tChange = value != null ? (float) aMap.get(aType) : 0.0f;
+ aMap.remove(aType);
}
- return null;
+ aMap.put(aType, (tChange + aChange));
+ }
+
+ public void dechargeComponents(int aCharge){
+
}
- 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_);
+ 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;
+ }
}
-} \ 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
deleted file mode 100644
index 6857535d65..0000000000
--- a/src/main/java/gregtech/common/items/armor/GuiElectricArmor1.java
+++ /dev/null
@@ -1,299 +0,0 @@
-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 2f79ff4c69..590f544546 100644
--- a/src/main/java/gregtech/common/items/armor/Vector3.java
+++ b/src/main/java/gregtech/common/items/armor/Vector3.java
@@ -1,7 +1,8 @@
package gregtech.common.items.armor;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
+import java.math.BigDecimal;
+import java.math.MathContext;
+import java.math.RoundingMode;
import net.minecraft.entity.Entity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
@@ -9,10 +10,8 @@ import net.minecraft.util.Vec3;
import org.lwjgl.opengl.GL11;
import org.lwjgl.util.vector.Vector3f;
import org.lwjgl.util.vector.Vector4f;
-
-import java.math.BigDecimal;
-import java.math.MathContext;
-import java.math.RoundingMode;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
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 1f63afac5e..0258a3eb3c 100644
--- a/src/main/java/gregtech/common/items/armor/gui/ContainerModularArmor.java
+++ b/src/main/java/gregtech/common/items/armor/gui/ContainerModularArmor.java
@@ -4,7 +4,9 @@ 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 0e17a82ee8..8f1aef56d1 100644
--- a/src/main/java/gregtech/common/items/armor/gui/FluidSync.java
+++ b/src/main/java/gregtech/common/items/armor/gui/FluidSync.java
@@ -1,5 +1,14 @@
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 6882e67268..75c3c6d363 100644
--- a/src/main/java/gregtech/common/items/armor/gui/FluidSync2.java
+++ b/src/main/java/gregtech/common/items/armor/gui/FluidSync2.java
@@ -1,5 +1,15 @@
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 63e8873df9..a3d2bdaf09 100644
--- a/src/main/java/gregtech/common/items/armor/gui/SlotFluid.java
+++ b/src/main/java/gregtech/common/items/armor/gui/SlotFluid.java
@@ -1,9 +1,16 @@
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{
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java
index b26a86a943..a6cf271d30 100644
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java
+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java
@@ -1,6 +1,7 @@
package gregtech.common.tileentities.machines.basic;
import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -8,6 +9,7 @@ import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_Utility;
+import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java
index 19a4e97d4b..406a46a93b 100644
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java
+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java
@@ -1,9 +1,6 @@
package gregtech.common.tileentities.machines.basic;
-import gregtech.api.enums.ConfigCategories;
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.Textures;
+import gregtech.api.enums.*;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_SeismicProspector.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_SeismicProspector.java
index cfef1ba345..cf5540aed6 100644
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_SeismicProspector.java
+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_SeismicProspector.java
@@ -98,7 +98,7 @@ public class GT_MetaTileEntity_SeismicProspector extends GT_MetaTileEntity_Basic
}
}
if(tStringList.size()<1){tStringList.add("No Ores found.");}
- FluidStack tFluid = GT_Utility.undergroundOil(getBaseMetaTileEntity().getWorld(), getBaseMetaTileEntity().getXCoord()>>4, getBaseMetaTileEntity().getZCoord()>>4,false,0);
+ FluidStack tFluid = null;//<---GT_Utility.undergroundOil(getBaseMetaTileEntity().getWorld(), getBaseMetaTileEntity().getXCoord()>>4, getBaseMetaTileEntity().getZCoord()>>4,false,0);//TODO FIX
String[] tStringArray = new String[tStringList.size()];
{
for (int i = 0; i < tStringArray.length; i++) {
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java
index cd769e31ec..8751da47f3 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java
@@ -237,7 +237,7 @@ public class GT_MetaTileEntity_BronzeBlastFurnace
XSTR floatGen=new XSTR();
aWorld.spawnParticle("largesmoke", xPos + floatGen.nextFloat(), yPos, zPos + floatGen.nextFloat(), 0.0D, 0.3D, 0.0D);
//Pollution particles intensify
- if(GT_Pollution.getPollutionAtCoords(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getZCoord())>GT_Mod.gregtechproxy.mPollutionSmogLimit){
+ if(GT_Pollution.getPollutionAtCoords(aWorld,this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getZCoord())>GT_Mod.gregtechproxy.mPollutionSmogLimit){
aWorld.spawnParticle("largesmoke", xPos + floatGen.nextFloat(), yPos, zPos + floatGen.nextFloat(), 0.0D, 0.45D, 0.0D);
aWorld.spawnParticle("largesmoke", xPos + floatGen.nextFloat(), yPos, zPos + floatGen.nextFloat(), 0.0D, 0.6D, 0.0D);
}
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java
index d1a3adb3af..39da260e8e 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java
@@ -16,171 +16,197 @@ import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
public class GT_MetaTileEntity_Cleanroom extends GT_MetaTileEntity_MultiBlockBase {
-private int mHeatingCapacity = 0;
-
-public GT_MetaTileEntity_Cleanroom(int aID, String aName, String aNameRegional) {
-super(aID, aName, aNameRegional);
-}
-
-public GT_MetaTileEntity_Cleanroom(String aName) {
-super(aName);
-}
-
-public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
-return new GT_MetaTileEntity_Cleanroom(this.mName);
-}
-
-public String[] getDescription() {
-return new String[]{
- "Controller Block for the Cleanroom",
- "Min(WxHxD): 3x3x3 (Hollow), Max(WxHxD): 15x15x15 (Hollow)",
- "Controller (Top center), Walls Plascrete",
- "Top besides contoller and corners filter casings",
- "1 Reinforced Door",
- "1x Energy Hatch, 1x Maintainance Hatch",
- "up to 10 Machine Hull to transfer Items&Energy inside",
- ""};
-}
-
-public boolean checkRecipe(ItemStack aStack) {
- this.mEfficiencyIncrease = 100;
- this.mMaxProgresstime = 100;
- this.mEUt = -4;
-return true;
-}
-
-public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
- int x=1;
- int z=1;
- int y=1;
- int mDoorCount=0;
- int mHullCount=0;
- int mPlascreteCount=0;
- boolean doorState=false;
- mUpdate = 100;
- for(int i = 1;i<8;i++){
- Block tBlock = aBaseMetaTileEntity.getBlockOffset(i, 0, 0);
- int tMeta = aBaseMetaTileEntity.getMetaIDOffset(i, 0, 0);
- if(tBlock != GregTech_API.sBlockCasings3 || tMeta != 11){
- if(tBlock ==GregTech_API.sBlockReinforced || tMeta == 2){
- x=i;
- z=i;
+ private int mHeatingCapacity = 0;
+
+ public GT_MetaTileEntity_Cleanroom(int aID, String aName, String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ }
+
+ public GT_MetaTileEntity_Cleanroom(String aName) {
+ super(aName);
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_Cleanroom(this.mName);
+ }
+
+ @Override
+ public String[] getDescription() {
+ return new String[]{
+ "Controller Block for the Cleanroom",
+ "Min(WxHxD): 3x3x3 (Hollow), Max(WxHxD): 15x15x15 (Hollow)",
+ "Controller (Top center), Walls Plascrete",
+ "Top besides contoller and corners filter casings",
+ "1 Reinforced Door",
+ "1x Energy Hatch, 1x Maintainance Hatch",
+ "up to 10 Machine Hull to transfer Items&Energy inside",
+ ""};
+ }
+
+ @Override
+ public boolean checkRecipe(ItemStack aStack) {
+ this.mEfficiencyIncrease = 100;
+ this.mMaxProgresstime = 100;
+ this.mEUt = -4;
+ return true;
+ }
+
+ @Override
+ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
+ int x = 1;
+ int z = 1;
+ int y = 1;
+ int mDoorCount = 0;
+ int mHullCount = 0;
+ int mPlascreteCount = 0;
+ boolean doorState = false;
+ mUpdate = 100;
+ for (int i = 1; i < 8; i++) {
+ Block tBlock = aBaseMetaTileEntity.getBlockOffset(i, 0, 0);
+ int tMeta = aBaseMetaTileEntity.getMetaIDOffset(i, 0, 0);
+ if (tBlock != GregTech_API.sBlockCasings3 || tMeta != 11) {
+ if (tBlock == GregTech_API.sBlockReinforced || tMeta == 2) {
+ x = i;
+ z = i;
+ break;
+ } else {
+ return false;
+ }
+ }
+ }
+ for (int i = -1; i > -16; i--) {
+ Block tBlock = aBaseMetaTileEntity.getBlockOffset(x, i, z);
+ int tMeta = aBaseMetaTileEntity.getMetaIDOffset(x, i, z);
+ if (tBlock != GregTech_API.sBlockReinforced || tMeta != 2) {
+ y = i + 1;
break;
- }else{return false;}
+ }
}
- }
- for(int i = -1; i>-16;i--){
- Block tBlock = aBaseMetaTileEntity.getBlockOffset(x, i, z);
- int tMeta = aBaseMetaTileEntity.getMetaIDOffset(x, i, z);
- if(tBlock != GregTech_API.sBlockReinforced || tMeta != 2){
- y = i+1;
- break;
+ if (y > -2) {
+ return false;
}
- }
- if(y>-2){return false;}
- for(int dX=-x;dX<=x;dX++){
- for(int dZ=-z;dZ<=z;dZ++){
- for(int dY=0;dY>=y;dY--){
- if(dX==-x||dX==x||dY==-y||dY==y||dZ==-z||dZ==z){
- Block tBlock = aBaseMetaTileEntity.getBlockOffset(dX, dY, dZ);
- int tMeta = aBaseMetaTileEntity.getMetaIDOffset(dX, dY, dZ);
- if(y==0){
- if(dX==-x||dX==x||dZ==-z||dZ==z){
- if(tBlock!=GregTech_API.sBlockReinforced||tMeta!=2){return false;}
- }else if(dX==0&&dZ==0){
- }else {
- if(tBlock!=GregTech_API.sBlockCasings3||tMeta!=11){return false;}
- }
- }else if(tBlock==GregTech_API.sBlockReinforced&&tMeta==2){
- mPlascreteCount++;
- }else{
- IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(dX, dY, dZ);
- if((!addMaintenanceToMachineList(tTileEntity, 82)) && (!addEnergyInputToMachineList(tTileEntity, 82))){
- if(tBlock instanceof ic2.core.block.BlockIC2Door){
- if((tMeta&8)==0){
- doorState=(Math.abs(dX)>Math.abs(dZ)==((tMeta&1)!=0))!=((tMeta&4)!=0);
+ for (int dX = -x; dX <= x; dX++) {
+ for (int dZ = -z; dZ <= z; dZ++) {
+ for (int dY = 0; dY >= y; dY--) {
+ if (dX == -x || dX == x || dY == -y || dY == y || dZ == -z || dZ == z) {
+ Block tBlock = aBaseMetaTileEntity.getBlockOffset(dX, dY, dZ);
+ int tMeta = aBaseMetaTileEntity.getMetaIDOffset(dX, dY, dZ);
+ if (y == 0) {
+ if (dX == -x || dX == x || dZ == -z || dZ == z) {
+ if (tBlock != GregTech_API.sBlockReinforced || tMeta != 2) {
+ return false;
+ }
+ } else if (dX == 0 && dZ == 0) {
+ } else {
+ if (tBlock != GregTech_API.sBlockCasings3 || tMeta != 11) {
+ return false;
+ }
+ }
+ } else if (tBlock == GregTech_API.sBlockReinforced && tMeta == 2) {
+ mPlascreteCount++;
+ } else {
+ IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(dX, dY, dZ);
+ if ((!addMaintenanceToMachineList(tTileEntity, 82)) && (!addEnergyInputToMachineList(tTileEntity, 82))) {
+ if (tBlock instanceof ic2.core.block.BlockIC2Door) {
+ if ((tMeta & 8) == 0) {
+ doorState = (Math.abs(dX) > Math.abs(dZ) == ((tMeta & 1) != 0)) != ((tMeta & 4) != 0);
+ }
+ mDoorCount++;
+ } else {
+ if (tTileEntity == null) {
+ {
+ return false;
+ }
+ }
+ IMetaTileEntity aMetaTileEntity = tTileEntity.getMetaTileEntity();
+ if (aMetaTileEntity == null) {
+ return false;
+ }
+ if (aMetaTileEntity instanceof GT_MetaTileEntity_BasicHull) {
+ mHullCount++;
+ } else {
+ return false;
+ }
+ }
}
- mDoorCount++;
- }else{
- if (tTileEntity == null) {
- {return false;}
- }
- IMetaTileEntity aMetaTileEntity = tTileEntity.getMetaTileEntity();
- if (aMetaTileEntity == null) {return false;}
- if (aMetaTileEntity instanceof GT_MetaTileEntity_BasicHull){mHullCount++;
- }else {return false;}
}
+ } else {
+
}
}
- }else{
-
- }
}
}
- }
- if(mMaintenanceHatches.size()!=1||mEnergyHatches.size()!=1||mDoorCount!=2||mHullCount>10){return false;}
- for(int dX=-x+1;dX<=x-1;dX++){
- for(int dZ=-z+1;dZ<=z-1;dZ++){
- for(int dY=-1;dY>=y+1;dY--){
- IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(dX, dY, dZ);
- if(tTileEntity!=null){
- IMetaTileEntity aMetaTileEntity = tTileEntity.getMetaTileEntity();
- if (aMetaTileEntity != null && aMetaTileEntity instanceof GT_MetaTileEntity_BasicMachine_GT_Recipe){
- ((GT_MetaTileEntity_BasicMachine_GT_Recipe)aMetaTileEntity).mCleanroom = this;
+ if (mMaintenanceHatches.size() != 1 || mEnergyHatches.size() != 1 || mDoorCount != 2 || mHullCount > 10) {
+ return false;
+ }
+ for (int dX = -x + 1; dX <= x - 1; dX++) {
+ for (int dZ = -z + 1; dZ <= z - 1; dZ++) {
+ for (int dY = -1; dY >= y + 1; dY--) {
+ IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(dX, dY, dZ);
+ if (tTileEntity != null) {
+ IMetaTileEntity aMetaTileEntity = tTileEntity.getMetaTileEntity();
+ if (aMetaTileEntity != null && aMetaTileEntity instanceof GT_MetaTileEntity_BasicMachine_GT_Recipe) {
+ ((GT_MetaTileEntity_BasicMachine_GT_Recipe) aMetaTileEntity).mCleanroom = this;
+ }
}
}
}
}
- }
-
- if(doorState){
- mEfficiency=Math.max(0,mEfficiency-200);
- }
-return true;
-}
+ if (doorState) {
+ mEfficiency = Math.max(0, mEfficiency - 200);
+ }
-public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
-if (aSide == 0 || aSide == 1) {
- return new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.BLOCK_PLASCRETE), new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_TOP_CLEANROOM_ACTIVE : Textures.BlockIcons.OVERLAY_TOP_CLEANROOM)};
+ return true;
+ }
-}
-return new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.BLOCK_PLASCRETE)};
-}
+ @Override
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
+ if (aSide == 0 || aSide == 1) {
+ return new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.BLOCK_PLASCRETE), new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_TOP_CLEANROOM_ACTIVE : Textures.BlockIcons.OVERLAY_TOP_CLEANROOM)};
-public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
-return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "MultiblockDisplay.png");
-}
+ }
+ return new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.BLOCK_PLASCRETE)};
+ }
-public GT_Recipe.GT_Recipe_Map getRecipeMap() {
-return null;
-}
+ @Override
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "MultiblockDisplay.png");
+ }
-public boolean isCorrectMachinePart(ItemStack aStack) {
-return true;
-}
+ @Override
+ public GT_Recipe.GT_Recipe_Map getRecipeMap() {
+ return null;
+ }
-public boolean isFacingValid(byte aFacing) {
-return aFacing > 1;
-}
+ @Override
+ public boolean isCorrectMachinePart(ItemStack aStack) {
+ return true;
+ }
-public int getMaxEfficiency(ItemStack aStack) {
-return 10000;
-}
+ @Override
+ public boolean isFacingValid(byte aFacing) {
+ return aFacing > 1;
+ }
-public int getPollutionPerTick(ItemStack aStack) {
-return 0;
-}
+ @Override
+ public int getMaxEfficiency(ItemStack aStack) {
+ return 10000;
+ }
-public int getDamageToComponent(ItemStack aStack) {
-return 0;
-}
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 0;
+ }
-public int getAmountOfOutputs() {
-return 0;
-}
+ @Override
+ public int getDamageToComponent(ItemStack aStack) {
+ return 0;
+ }
-public boolean explodesOnComponentBreak(ItemStack aStack) {
-return false;
-}
+ @Override
+ public boolean explodesOnComponentBreak(ItemStack aStack) {
+ return false;
+ }
} \ No newline at end of file
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 9cb614478d..26885c89a2 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
@@ -24,6 +24,7 @@ import java.util.ArrayList;
public class GT_MetaTileEntity_OilDrill extends GT_MetaTileEntity_MultiBlockBase {//TODO REWORK
private boolean completedCycle = false;
+ private int extractionSpeed=0;
public GT_MetaTileEntity_OilDrill(int aID, String aName, String aNameRegional) {
super(aID, aName, aNameRegional);
@@ -78,7 +79,7 @@ public class GT_MetaTileEntity_OilDrill extends GT_MetaTileEntity_MultiBlockBase
}
}
//Output fluid
- FluidStack tFluid = GT_Utility.undergroundOil(getBaseMetaTileEntity().getWorld(), getBaseMetaTileEntity().getXCoord()>>4, getBaseMetaTileEntity().getZCoord()>>4,false,0);
+ FluidStack tFluid = null;//GT_Utility.undergroundOil(getBaseMetaTileEntity().getWorld(), getBaseMetaTileEntity().getXCoord()>>4, getBaseMetaTileEntity().getZCoord()>>4,false,0);//TODO FIX
if (tFluid == null){
extractionSpeed=0;
stopMachine();
@@ -100,7 +101,7 @@ public class GT_MetaTileEntity_OilDrill extends GT_MetaTileEntity_MultiBlockBase
if(tFluid.amount>minExtraction)
tFluid.amount= Math.max(minExtraction,Math.min(tFluid.amount/50000,500));
extractionSpeed=tFluid.amount;
- GT_Utility.undergroundOil(getBaseMetaTileEntity().getWorld(), getBaseMetaTileEntity().getXCoord()>>4, getBaseMetaTileEntity().getZCoord()>>4,true,extractionSpeed);
+ //GT_Utility.undergroundOil(getBaseMetaTileEntity().getWorld(), getBaseMetaTileEntity().getXCoord()>>4, getBaseMetaTileEntity().getZCoord()>>4,true,extractionSpeed);//TODO FIX
}
this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000);
this.mEfficiencyIncrease = 10000;