diff options
| author | Blood-Asp <bloodasphendrik@gmail.com> | 2015-10-03 15:23:52 +0200 |
|---|---|---|
| committer | Blood-Asp <bloodasphendrik@gmail.com> | 2015-10-03 15:23:52 +0200 |
| commit | 6d9c73a70a6374f3619e0ba9648ec64f6bdd784e (patch) | |
| tree | 51193dda0bc0704e8e4ad9567d7638d62fda645e /main/java/gregtech | |
| parent | c3fd04d6f4803d9d0444e357e3b1b6681b227b0c (diff) | |
| download | GT5-Unofficial-6d9c73a70a6374f3619e0ba9648ec64f6bdd784e.tar.gz GT5-Unofficial-6d9c73a70a6374f3619e0ba9648ec64f6bdd784e.tar.bz2 GT5-Unofficial-6d9c73a70a6374f3619e0ba9648ec64f6bdd784e.zip | |
Update version 5.08.30
Diffstat (limited to 'main/java/gregtech')
26 files changed, 592 insertions, 411 deletions
diff --git a/main/java/gregtech/GT_Mod.java b/main/java/gregtech/GT_Mod.java index ecf34dedc3..9dca7996fc 100644 --- a/main/java/gregtech/GT_Mod.java +++ b/main/java/gregtech/GT_Mod.java @@ -306,8 +306,9 @@ public class GT_Mod gregtechproxy.mNerfedWoodPlank = tMainConfig.get("general", "WoodNeedsSawForCrafting", true).getBoolean(true);
gregtechproxy.mNerfedVanillaTools = tMainConfig.get("general", "smallerVanillaToolDurability", true).getBoolean(true);
gregtechproxy.mSortToTheEnd = tMainConfig.get("general", "EnsureToBeLoadedLast", true).getBoolean(true);
- gregtechproxy.mDisableIC2Cables = tMainConfig.get("general", "DisableIC2Cables", false).getBoolean(false);
- gregtechproxy.mAchievements = tMainConfig.get("general", "EnableAchievements", true).getBoolean(true);
+ gregtechproxy.mDisableIC2Cables = tMainConfig.get("general", "DisableIC2Cables", false).getBoolean(false);
+ gregtechproxy.mAchievements = tMainConfig.get("general", "EnableAchievements", true).getBoolean(true);
+ gregtechproxy.mAE2Integration = tMainConfig.get("general", "EnableAE2Integration", Loader.isModLoaded("appliedenergistics2")).getBoolean(Loader.isModLoaded("appliedenergistics2"));
GregTech_API.mOutputRF =GregTech_API.sOPStuff.get(ConfigCategories.general, "OutputRF", false);
diff --git a/main/java/gregtech/api/enums/Materials.java b/main/java/gregtech/api/enums/Materials.java index c38728b8c7..9b6caca1f7 100644 --- a/main/java/gregtech/api/enums/Materials.java +++ b/main/java/gregtech/api/enums/Materials.java @@ -166,7 +166,7 @@ public enum Materials implements IColorModulationContainer, ISubTagContainer { PhasedIron ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Phased Iron" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), PhasedGold ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1|2 , 255, 255, 255, 0, "Phased Gold" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), Soularium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Soularium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), - Endium ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Endium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), + Endium ( 770, TextureSet.SET_DULL , 1.0F, 0, 2, 1|2 |8 , 165, 220, 250, 0, "Endium" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes.dyeYellow ), Prismarine ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 |4 , 255, 255, 255, 0, "Prismarine" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), GraveyardDirt ( -1, TextureSet.SET_NONE , 1.0F, 0, 2, 1 , 255, 255, 255, 0, "Graveyard Dirt" , 0, 0, -1, 0, F, F, 3, 1, 1, Dyes._NULL ), DarkSteel ( 364, TextureSet.SET_DULL , 8.0F, 512, 3, 1|2 |8 |64 , 80, 70, 80, 0, "Dark Steel" , 0, 0, 1811, 0, F, F, 5, 1, 1, Dyes.dyePurple ), diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 3bf171f434..77fc590ce1 100644 --- a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -30,7 +30,7 @@ import net.minecraftforge.fluids.FluidStack; public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { - public boolean mMachine = false, mWrench = false, mScrewdriver = false, mSoftHammer = false, mHardHammer = false, mSolderingTool = false, mCrowbar = false; + public boolean mMachine = false, mWrench = false, mScrewdriver = false, mSoftHammer = false, mHardHammer = false, mSolderingTool = false, mCrowbar = false, mRunningOnLoad = false; public int mPollution = 0, mProgresstime = 0, mMaxProgresstime = 0, mEUt = 0, mEfficiencyIncrease = 0, mUpdate = 0, mStartUpCheck = 100, mRuntime = 0, mEfficiency = 0; public ItemStack[] mOutputItems = null; public FluidStack[] mOutputFluids = null; @@ -83,6 +83,11 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { mOutputItems[i].writeToNBT(tNBT); aNBT.setTag("mOutputItem"+i, tNBT); } + if (mOutputFluids != null) for (int i = 0; i < mOutputFluids.length; i++) if (mOutputFluids[i] != null) { + NBTTagCompound tNBT = new NBTTagCompound(); + mOutputFluids[i].writeToNBT(tNBT); + aNBT.setTag("mOutputFluids"+i, tNBT); + } aNBT.setBoolean("mWrench", mWrench); aNBT.setBoolean("mScrewdriver", mScrewdriver); @@ -97,13 +102,16 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { mEUt = aNBT.getInteger("mEUt"); mProgresstime = aNBT.getInteger("mProgresstime"); mMaxProgresstime = aNBT.getInteger("mMaxProgresstime"); + if(mMaxProgresstime>0)mRunningOnLoad=true; mEfficiencyIncrease = aNBT.getInteger("mEfficiencyIncrease"); mEfficiency = aNBT.getInteger("mEfficiency"); mPollution = aNBT.getInteger("mPollution"); mRuntime = aNBT.getInteger("mRuntime"); mOutputItems = new ItemStack[getAmountOfOutputs()]; for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = GT_Utility.loadItem(aNBT, "mOutputItem" + i); - mWrench = aNBT.getBoolean("mWrench"); + mOutputFluids = new FluidStack[getAmountOfOutputs()]; + for (int i = 0; i < mOutputFluids.length; i++) mOutputFluids[i] = GT_Utility.loadFluid(aNBT, "mOutputFluids" + i); + mWrench = aNBT.getBoolean("mWrench"); mScrewdriver = aNBT.getBoolean("mScrewdriver"); mSoftHammer = aNBT.getBoolean("mSoftHammer"); mHardHammer = aNBT.getBoolean("mHardHammer"); diff --git a/main/java/gregtech/api/util/GT_Utility.java b/main/java/gregtech/api/util/GT_Utility.java index fea00321ab..0ae3da3909 100644 --- a/main/java/gregtech/api/util/GT_Utility.java +++ b/main/java/gregtech/api/util/GT_Utility.java @@ -1411,6 +1411,13 @@ public class GT_Utility { /** * Loads an ItemStack properly. */ + public static FluidStack loadFluid(NBTTagCompound aNBT, String aTagName) { + return loadFluid(aNBT.getCompoundTag(aTagName)); + } + + /** + * Loads an ItemStack properly. + */ public static ItemStack loadItem(NBTTagCompound aNBT) { if (aNBT == null) return null; ItemStack rStack = ItemStack.loadItemStackFromNBT(aNBT); @@ -1424,6 +1431,14 @@ public class GT_Utility { return GT_OreDictUnificator.get(T, rStack); } + /** + * Loads an ItemStack properly. + */ + public static FluidStack loadFluid(NBTTagCompound aNBT) { + if (aNBT == null) return null; + return FluidStack.loadFluidStackFromNBT(aNBT); + } + public static <E> E selectItemInList(int aIndex, E aReplacement, List<E> aList) { if (aList == null || aList.isEmpty()) return aReplacement; if (aList.size() <= aIndex) return aList.get(aList.size() - 1); diff --git a/main/java/gregtech/common/GT_Proxy.java b/main/java/gregtech/common/GT_Proxy.java index 8698d53189..5e6e2498c5 100644 --- a/main/java/gregtech/common/GT_Proxy.java +++ b/main/java/gregtech/common/GT_Proxy.java @@ -151,6 +151,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler { public boolean mIgnoreTcon = true; public boolean mDisableIC2Cables = false; public boolean mAchievements = true; + public boolean mAE2Integration = true; public int mSkeletonsShootGTArrows = 16; public int mMaxEqualEntitiesAtOneSpot = 3; public int mFlintChance = 30; diff --git a/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java b/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java index 308df2f129..8ad8359708 100644 --- a/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java +++ b/main/java/gregtech/common/covers/GT_Cover_SolarPanel.java @@ -25,7 +25,7 @@ public class GT_Cover_SolarPanel else
{
boolean bRain = (aTileEntity.getWorld().isRaining()) && (aTileEntity.getBiome().rainfall > 0.0F);
- aCoverVariable = ((!bRain) || (aTileEntity.getWorld().skylightSubtracted < 4)) && (aTileEntity.getSkyAtSide(aSide)) ? 1 : (bRain) || (!aTileEntity.getWorld().isDaytime()) ? 2 : 0;
+ aCoverVariable = bRain && aTileEntity.getWorld().skylightSubtracted >= 4 || !aTileEntity.getSkyAtSide(aSide) ? 0 : ((int) (!bRain && aTileEntity.getWorld().isDaytime() ? 1 : 2));
}
}
if ((aCoverVariable == 1) || ((aCoverVariable == 2) && (aTimer % 8L == 0L))) {
diff --git a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java b/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java index fd2a31fd1d..90acb38dd4 100644 --- a/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java +++ b/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java @@ -1,5 +1,6 @@ package gregtech.common.tileentities.automation;
+import gregtech.api.enums.OreDictNames;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.Textures;
import gregtech.api.enums.Textures.BlockIcons;
@@ -8,6 +9,8 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Buffer;
import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.objects.ItemData;
+import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
import gregtech.common.gui.GT_Container_TypeFilter;
import gregtech.common.gui.GT_GUIContainer_TypeFilter;
@@ -71,17 +74,22 @@ public class GT_MetaTileEntity_TypeFilter {
if (aRightClick)
{
+ do{
i--;
if (i < 0) {
i = OrePrefixes.values().length - 1;
}
+ }while(OrePrefixes.values()[i].mPrefixedItems.isEmpty());
+
}
else
{
+ do{
i++;
if (i >= OrePrefixes.values().length) {
i = 0;
}
+ }while(OrePrefixes.values()[i].mPrefixedItems.isEmpty());
}
if(!OrePrefixes.values()[i].mPrefixedItems.isEmpty() && OrePrefixes.values()[i].mPrefixInto == OrePrefixes.values()[i])
mPrefix = OrePrefixes.values()[i];
@@ -94,21 +102,21 @@ public class GT_MetaTileEntity_TypeFilter public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick)
{
- super.onPreTick(aBaseMetaTileEntity, aTick);
- if ((getBaseMetaTileEntity().isServerSide()) && (aTick % 8L == 0L)) {
- if (this.mPrefix.mPrefixedItems.isEmpty())
- {
- this.mInventory[9] = null;
- }
- else
- {
- Object[] tmp63_60 = new Object[1]; int tmp90_89 = ((this.mRotationIndex + 1) % this.mPrefix.mPrefixedItems.size());this.mRotationIndex = tmp90_89;tmp63_60[0] = this.mPrefix.mPrefixedItems.get(tmp90_89);this.mInventory[9] = GT_Utility.copyAmount(1L, tmp63_60);
- if (this.mInventory[9].getItemDamage() == 32767) {
- this.mInventory[9].setItemDamage(0);
- }
- this.mInventory[9].setStackDisplayName(this.mPrefix.toString());
- }
- }
+ super.onPreTick(aBaseMetaTileEntity, aTick);
+ if ((getBaseMetaTileEntity().isServerSide()) && (aTick % 8L == 0L)) {
+ if (this.mPrefix.mPrefixedItems.isEmpty())
+ {
+ this.mInventory[9] = null;
+ }
+ else
+ {
+ this.mInventory[9] = GT_Utility.copyAmount(1L, new Object[] { this.mPrefix.mPrefixedItems.get(this.mRotationIndex = (this.mRotationIndex + 1) % this.mPrefix.mPrefixedItems.size()) });
+ if (this.mInventory[9].getItemDamage() == 32767) {
+ this.mInventory[9].setItemDamage(0);
+ }
+ this.mInventory[9].setStackDisplayName(this.mPrefix.toString());
+ }
+ }
}
public void saveNBTData(NBTTagCompound aNBT)
@@ -129,7 +137,22 @@ public class GT_MetaTileEntity_TypeFilter public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack)
{
- return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && ((this.bNBTAllowed) || (!aStack.hasTagCompound())) && (this.mPrefix.contains(aStack) != this.bInvertFilter);
+ boolean tAllowPrefix = this.mPrefix.contains(aStack);
+ if(this.mPrefix==OrePrefixes.ore){
+ OrePrefixes tFix = GT_OreDictUnificator.getItemData(aStack).mPrefix;
+ if(tFix==OrePrefixes.oreBlackgranite||
+ tFix==OrePrefixes.oreDense||
+ tFix==OrePrefixes.oreEnd||
+ tFix==OrePrefixes.oreEndstone||
+ tFix==OrePrefixes.oreNether||
+ tFix==OrePrefixes.oreNetherrack||
+ tFix==OrePrefixes.oreNormal||
+ tFix==OrePrefixes.orePoor||
+ tFix==OrePrefixes.oreRedgranite||
+ tFix==OrePrefixes.oreRich||
+ tFix==OrePrefixes.oreSmall)tAllowPrefix=true;
+ }
+ return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && ((this.bNBTAllowed) || (!aStack.hasTagCompound())) && (tAllowPrefix != this.bInvertFilter);
}
}
diff --git a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java index 5791e7605b..18add4535b 100644 --- a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java +++ b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java @@ -101,7 +101,12 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B if ((mActiveSiphon == null) || (mActiveSiphon.getBaseMetaTileEntity() == null) || (mActiveSiphon.getBaseMetaTileEntity().isInvalidTileEntity()) || (!mActiveSiphon.hasEgg())) { mActiveSiphon = this; } else { - getBaseMetaTileEntity().doExplosion(Integer.MAX_VALUE); + Block tEgg = mActiveSiphon.getBaseMetaTileEntity().getBlockOffset(0, 1, 0); + if(!getBaseMetaTileEntity().getWorld().getChunkFromBlockCoords(mActiveSiphon.getBaseMetaTileEntity().getXCoord(), mActiveSiphon.getBaseMetaTileEntity().getZCoord()).isChunkLoaded&&(tEgg==Blocks.dragon_egg||tEgg.getUnlocalizedName().equals("tile.dragonEgg"))) + {getBaseMetaTileEntity().doExplosion(Integer.MAX_VALUE);}else{ + mActiveSiphon=this; + } + } } } diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java index c56f03e38e..23b9d74fb7 100644 --- a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java +++ b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Boxinator.java @@ -14,6 +14,7 @@ import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.api.util.GT_Utility;
import net.minecraft.item.ItemStack;
+import net.minecraft.item.crafting.CraftingManager;
public class GT_MetaTileEntity_Boxinator
extends GT_MetaTileEntity_BasicMachine
@@ -97,7 +98,10 @@ public class GT_MetaTileEntity_Boxinator if (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack))
{
if ((ItemList.Schematic_1by1.isStackEqual(getInputAt(1))) || (ItemList.Schematic_2by2.isStackEqual(getInputAt(1))) || (ItemList.Schematic_3by3.isStackEqual(getInputAt(1)))) {
- return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.findRecipe(getBaseMetaTileEntity(), true, gregtech.api.enums.GT_Values.V[this.mTier], null, new ItemStack[] { GT_Utility.copyAmount(64L, new Object[] { aStack }), getInputAt(1) }) != null;
+ if(GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.findRecipe(getBaseMetaTileEntity(), true, gregtech.api.enums.GT_Values.V[this.mTier], null, new ItemStack[] { GT_Utility.copyAmount(64L, new Object[] { aStack }), getInputAt(1) }) != null){return true;}
+ if(ItemList.Schematic_1by1.isStackEqual(getInputAt(1))&>_ModHandler.getRecipeOutput(new ItemStack[] { aStack })!=null)return true;
+ if(ItemList.Schematic_2by2.isStackEqual(getInputAt(1))&>_ModHandler.getRecipeOutput(new ItemStack[] { aStack, aStack, null, aStack, aStack })!=null){return true;}
+ if(ItemList.Schematic_3by3.isStackEqual(getInputAt(1))&&(GT_ModHandler.getRecipeOutput(new ItemStack[] { aStack,aStack,aStack,aStack,aStack,aStack,aStack,aStack,aStack })!=null)){return true;}
}else{return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.containsInput(aStack);}
}
return false;
diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java index f402e730db..9a835e625f 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_FusionComputer.java @@ -6,6 +6,7 @@ import java.util.Arrays; import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.Dyes; +import gregtech.api.enums.GT_Values; import gregtech.api.enums.Textures; import gregtech.api.gui.GT_Container_MultiMachine; import gregtech.api.gui.GT_GUIContainer_MultiMachine; @@ -24,415 +25,422 @@ import gregtech.api.util.GT_Utility; import gregtech.api.metatileentity.implementations.*; import gregtech.common.gui.GT_GUIContainer_FusionReactor; import net.minecraft.block.Block; +import net.minecraft.client.multiplayer.WorldClient; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.world.World; +import net.minecraft.world.WorldType; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; -public abstract class GT_MetaTileEntity_FusionComputer - extends GT_MetaTileEntity_MultiBlockBase -{ - - public GT_Recipe mLastRecipe; - public int mEUStore; - public GT_MetaTileEntity_FusionComputer(int aID, String aName, String aNameRegional, int tier) - { - super(aID, aName, aNameRegional); - } - - public GT_MetaTileEntity_FusionComputer(String aName) - { - super(aName); - } - public abstract int tier(); - - public abstract long maxEUStore(); - - @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_MultiMachine(aPlayerInventory, aBaseMetaTileEntity); - } +public abstract class GT_MetaTileEntity_FusionComputer extends GT_MetaTileEntity_MultiBlockBase { + + public GT_Recipe mLastRecipe; + public int mEUStore; + + public GT_MetaTileEntity_FusionComputer(int aID, String aName, String aNameRegional, int tier) { + super(aID, aName, aNameRegional); + } + + public GT_MetaTileEntity_FusionComputer(String aName) { + super(aName); + } + + public abstract int tier(); + + public abstract long maxEUStore(); + + @Override + public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_Container_MultiMachine(aPlayerInventory, aBaseMetaTileEntity); + } + + @Override + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_FusionReactor(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "FusionComputer.png"); + } + + public abstract MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity); + + public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack) { + + return aSide != getBaseMetaTileEntity().getFrontFacing(); + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + } - @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_FusionReactor(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "FusionComputer.png"); + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + } + + @Override + public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + int xCenter = getBaseMetaTileEntity().getXCoord() + ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetX * 5; + int yCenter = getBaseMetaTileEntity().getYCoord(); + int zCenter = getBaseMetaTileEntity().getZCoord() + ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetZ * 5; + if (((isAdvancedMachineCasing(xCenter + 5, yCenter, zCenter)) || (xCenter + 5 == getBaseMetaTileEntity().getXCoord())) + && ((isAdvancedMachineCasing(xCenter - 5, yCenter, zCenter)) || (xCenter - 5 == getBaseMetaTileEntity().getXCoord())) + && ((isAdvancedMachineCasing(xCenter, yCenter, zCenter + 5)) || (zCenter + 5 == getBaseMetaTileEntity().getZCoord())) + && ((isAdvancedMachineCasing(xCenter, yCenter, zCenter - 5)) || (zCenter - 5 == getBaseMetaTileEntity().getZCoord())) && (checkCoils(xCenter, yCenter, zCenter)) + && (checkHulls(xCenter, yCenter, zCenter)) && (checkUpperOrLowerHulls(xCenter, yCenter + 1, zCenter)) && (checkUpperOrLowerHulls(xCenter, yCenter - 1, zCenter)) + && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter + 3, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter - 3, aBaseMetaTileEntity)) + && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter + 5, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter + 4, yCenter, zCenter - 5, aBaseMetaTileEntity)) + && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter + 3, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter - 3, aBaseMetaTileEntity)) + && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter + 5, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 4, yCenter, zCenter - 5, aBaseMetaTileEntity)) + && (addIfEnergyInjector(xCenter + 3, yCenter, zCenter + 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 3, yCenter, zCenter + 4, aBaseMetaTileEntity)) + && (addIfEnergyInjector(xCenter + 5, yCenter, zCenter + 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 5, yCenter, zCenter + 4, aBaseMetaTileEntity)) + && (addIfEnergyInjector(xCenter + 3, yCenter, zCenter - 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 3, yCenter, zCenter - 4, aBaseMetaTileEntity)) + && (addIfEnergyInjector(xCenter + 5, yCenter, zCenter - 4, aBaseMetaTileEntity)) && (addIfEnergyInjector(xCenter - 5, yCenter, zCenter - 4, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter + 1, yCenter, zCenter - 5, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 1, yCenter, zCenter + 5, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter - 1, yCenter, zCenter - 5, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 1, yCenter, zCenter + 5, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter + 1, yCenter, zCenter - 7, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 1, yCenter, zCenter + 7, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter - 1, yCenter, zCenter - 7, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 1, yCenter, zCenter + 7, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter + 5, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 5, yCenter, zCenter + 1, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter - 5, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 5, yCenter, zCenter + 1, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter + 7, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter + 7, yCenter, zCenter + 1, aBaseMetaTileEntity)) + && (addIfExtractor(xCenter - 7, yCenter, zCenter - 1, aBaseMetaTileEntity)) && (addIfExtractor(xCenter - 7, yCenter, zCenter + 1, aBaseMetaTileEntity)) + && (addIfInjector(xCenter + 1, yCenter + 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 1, yCenter + 1, zCenter + 6, aBaseMetaTileEntity)) + && (addIfInjector(xCenter - 1, yCenter + 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter - 1, yCenter + 1, zCenter + 6, aBaseMetaTileEntity)) + && (addIfInjector(xCenter - 6, yCenter + 1, zCenter + 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter + 1, zCenter + 1, aBaseMetaTileEntity)) + && (addIfInjector(xCenter - 6, yCenter + 1, zCenter - 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter + 1, zCenter - 1, aBaseMetaTileEntity)) + && (addIfInjector(xCenter + 1, yCenter - 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 1, yCenter - 1, zCenter + 6, aBaseMetaTileEntity)) + && (addIfInjector(xCenter - 1, yCenter - 1, zCenter - 6, aBaseMetaTileEntity)) && (addIfInjector(xCenter - 1, yCenter - 1, zCenter + 6, aBaseMetaTileEntity)) + && (addIfInjector(xCenter - 6, yCenter - 1, zCenter + 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter - 1, zCenter + 1, aBaseMetaTileEntity)) + && (addIfInjector(xCenter - 6, yCenter - 1, zCenter - 1, aBaseMetaTileEntity)) && (addIfInjector(xCenter + 6, yCenter - 1, zCenter - 1, aBaseMetaTileEntity)) + && (this.mEnergyHatches.size() >= 1) && (this.mOutputHatches.size() >= 1) && (this.mInputHatches.size() >= 2)) { + if (this.mEnergyHatches != null) { + for (int i = 0; i < this.mEnergyHatches.size(); i++) { + if (this.mEnergyHatches.get(i).mTier < tier()) + return false; } - - public abstract MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity); - - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack) - { - return aSide != getBaseMetaTileEntity().getFrontFacing(); - } - - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); + } + if (this.mOutputHatches != null) { + for (int i = 0; i < this.mOutputHatches.size(); i++) { + if (this.mOutputHatches.get(i).mTier < tier()) + return false; } - - public void loadNBTData(NBTTagCompound aNBT) { - super.loadNBTData(aNBT); + } + if (this.mInputHatches != null) { + for (int i = 0; i < this.mInputHatches.size(); i++) { + if (this.mInputHatches.get(i).mTier < tier()) + return false; } - - @Override - public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity,ItemStack aStack) { - int xCenter = getBaseMetaTileEntity().getXCoord() + ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetX * 5;int yCenter = getBaseMetaTileEntity().getYCoord();int zCenter = getBaseMetaTileEntity().getZCoord() + ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetZ * 5; - if (((isAdvancedMachineCasing(xCenter + 5, yCenter, zCenter)) || (xCenter + 5 == getBaseMetaTileEntity().getXCoord())) && - ((isAdvancedMachineCasing(xCenter - 5, yCenter, zCenter)) || (xCenter - 5 == getBaseMetaTileEntity().getXCoord())) && - ((isAdvancedMachineCasing(xCenter, yCenter, zCenter + 5)) || (zCenter + 5 == getBaseMetaTileEntity().getZCoord())) && - ((isAdvancedMachineCasing(xCenter, yCenter, zCenter - 5)) || (zCenter - 5 == getBaseMetaTileEntity().getZCoord())) && - (checkCoils(xCenter, yCenter, zCenter)) && - (checkHulls(xCenter, yCenter, zCenter)) && - (checkUpperOrLowerHulls(xCenter, yCenter + 1, zCenter)) && - (checkUpperOrLowerHulls(xCenter, yCenter - 1, zCenter)) && - (addIfEnergyInjector(xCenter + 4, yCenter, zCenter + 3,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter + 4, yCenter, zCenter - 3,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter + 4, yCenter, zCenter + 5,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter + 4, yCenter, zCenter - 5,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter - 4, yCenter, zCenter + 3,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter - 4, yCenter, zCenter - 3,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter - 4, yCenter, zCenter + 5,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter - 4, yCenter, zCenter - 5,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter + 3, yCenter, zCenter + 4,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter - 3, yCenter, zCenter + 4,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter + 5, yCenter, zCenter + 4,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter - 5, yCenter, zCenter + 4,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter + 3, yCenter, zCenter - 4,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter - 3, yCenter, zCenter - 4,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter + 5, yCenter, zCenter - 4,aBaseMetaTileEntity)) && - (addIfEnergyInjector(xCenter - 5, yCenter, zCenter - 4,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter + 1, yCenter, zCenter - 5,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter + 1, yCenter, zCenter + 5,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter - 1, yCenter, zCenter - 5,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter - 1, yCenter, zCenter + 5,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter + 1, yCenter, zCenter - 7,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter + 1, yCenter, zCenter + 7,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter - 1, yCenter, zCenter - 7,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter - 1, yCenter, zCenter + 7,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter + 5, yCenter, zCenter - 1,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter + 5, yCenter, zCenter + 1,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter - 5, yCenter, zCenter - 1,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter - 5, yCenter, zCenter + 1,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter + 7, yCenter, zCenter - 1,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter + 7, yCenter, zCenter + 1,aBaseMetaTileEntity)) && - (addIfExtractor(xCenter - 7, yCenter, zCenter - 1,aBaseMetaTileEn |
