diff options
Diffstat (limited to 'main/java/gregtech/common/tileentities')
7 files changed, 47 insertions, 23 deletions
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 bb19069cf5..5791e7605b 100644 --- a/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java +++ b/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_MagicalEnergyAbsorber.java @@ -1,8 +1,12 @@ package gregtech.common.tileentities.generators; +import static gregtech.api.enums.GT_Values.V; + import java.util.ArrayList; import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.api.aspects.IEssentiaContainerItem; import thaumcraft.api.visnet.VisNetHandler; import cpw.mods.fml.common.Loader; import net.minecraft.block.Block; @@ -17,8 +21,10 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; +import gregtech.api.enums.TC_Aspects; import gregtech.api.enums.Textures; import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.ITexture; @@ -30,8 +36,7 @@ import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; -public class GT_MetaTileEntity_MagicalEnergyAbsorber - extends GT_MetaTileEntity_BasicGenerator +public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_BasicGenerator { public int mEfficiency; @@ -154,12 +159,25 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber } } - //Absorb entchantments - + //Absorb entchantments try { if ((this.mInventory[0] != null) && (this.mInventory[1] == null)) { + if(isThaumcraftLoaded && this.mInventory[0].getItem() instanceof IEssentiaContainerItem){ + AspectList tAspect = ((IEssentiaContainerItem)this.mInventory[0].getItem()).getAspects(this.mInventory[0]); + TC_Aspects tValue = TC_Aspects.valueOf(tAspect.getAspects()[0].getTag().toUpperCase()); + int tEU = (tValue.mValue*tAspect.getAmount((Aspect) tValue.mAspect)*100); + getBaseMetaTileEntity().increaseStoredEnergyUnits(tEU, true); + ItemStack tStack = this.mInventory[0].copy(); + tStack.setTagCompound(null); + tStack.setItemDamage(0); + tStack.stackSize=1; + this.mInventory[1]=tStack; + this.mInventory[0].stackSize--; + if(this.mInventory[0].stackSize<1){this.mInventory[0]=null;} + + }else{ if ((this.mInventory[0].isItemEnchanted()) && (this.mInventory[0].getItem().getItemEnchantability() > 0)) { NBTTagList tEnchantments = this.mInventory[0].getEnchantmentTagList(); @@ -203,7 +221,7 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber this.mInventory[1] = this.mInventory[0]; this.mInventory[0] = null; } - } + }} catch (Throwable e){} } } @@ -221,6 +239,8 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber if(above==null||Blocks.air==above){return false;} return Blocks.dragon_egg == above || above.getUnlocalizedName().equals("tile.dragonEgg"); } + + @Override public long maxEUStore(){return Math.max(getEUVar(), V[mTier] * 16000 + getMinimumStoredEU());} public int getEfficiency() { 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 a5a0e9c87f..c56f03e38e 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 @@ -92,17 +92,16 @@ public class GT_MetaTileEntity_Boxinator return 0;
}
-public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack)
-{
- if(super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack))
- return getInputSlot() != aIndex && ItemList.Crate_Empty.isStackEqual(aStack) || ItemList.Schematic_1by1.isStackEqual(getInputAt(1)) || ItemList.Schematic_2by2.isStackEqual(getInputAt(1)) || ItemList.Schematic_3by3.isStackEqual(getInputAt(1)) || gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.findRecipe(getBaseMetaTileEntity(), true, GT_Values.V[mTier], null, new ItemStack[] {
- GT_Utility.copyAmount(64L, new Object[] {
- aStack
- }), getInputAt(1)
- }) != null;
- else
- return false;
-}
+ public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack)
+ {
+ 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;
+ }else{return GT_Recipe.GT_Recipe_Map.sBoxinatorRecipes.containsInput(aStack);}
+ }
+ return false;
+ }
}
diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java index 09389f7251..1a5d8e1a6d 100644 --- a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java +++ b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java @@ -41,13 +41,13 @@ public class GT_MetaTileEntity_Disassembler {
getInputAt(0).stackSize -= 1;
this.mEUt = (16 * (1 << this.mTier - 1) * (1 << this.mTier - 1));
- this.mMaxProgresstime = 160;
+ this.mMaxProgresstime = 80;
for (int i = 0; i < this.mOutputItems.length; i++) {
if (getBaseMetaTileEntity().getRandomNumber(100) < 50 + 10 * this.mTier)
{
this.mOutputItems[i] = GT_Utility.loadItem(tNBT, "Ingredient." + i);
if (this.mOutputItems[i] != null) {
- this.mMaxProgresstime *= 2;
+ this.mMaxProgresstime *= 1.7;
}
}
}
diff --git a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java index bdf62625e1..40020ef435 100644 --- a/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java +++ b/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java @@ -195,9 +195,11 @@ public class GT_MetaTileEntity_Pump extends GT_MetaTileEntity_Hatch { return y + 1; } } else if (getBaseMetaTileEntity().getBlock(getBaseMetaTileEntity().getXCoord(), y, getBaseMetaTileEntity().getZCoord()) != GT_Utility - .getBlockFromStack(GT_ModHandler.getIC2Item("miningPipeTip", 1L))) { + .getBlockFromStack(GT_ModHandler.getIC2Item("miningPipeTip", 1L))&&this.mInventory[0] != null&&this.mInventory[0].stackSize>0&>_Utility.areStacksEqual(this.mInventory[0], GT_ModHandler.getIC2Item("miningPipe", 1L))) { getBaseMetaTileEntity().getWorld().setBlock(getBaseMetaTileEntity().getXCoord(), y, getBaseMetaTileEntity().getZCoord(), GT_Utility.getBlockFromStack(GT_ModHandler.getIC2Item("miningPipeTip", 1L))); + getBaseMetaTileEntity().decrStackSize(0, 1); + } return y; } 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 ae30b44a9a..f402e730db 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 @@ -355,6 +355,9 @@ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { } } } + if(this.mEUStore<=0&&mMaxProgresstime>0){ + stopMachine(); + } if (getRepairStatus() > 0) { if (mMaxProgresstime > 0 && doRandomMaintenanceDamage()) { this.getBaseMetaTileEntity().decreaseStoredEnergyUnits(mEUt, true); diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java index ceed528bf4..e743bcb10c 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java @@ -71,7 +71,7 @@ public class GT_MetaTileEntity_LargeTurbine_Plasma extends GT_MetaTileEntity_Lar @Override int fluidIntoPower(ArrayList<FluidStack> aFluids, int aOptFlow, int aBaseEff) { - aOptFlow *= 40; + aOptFlow *= 20; int tEU = 0; int actualOptimalFlow = 0; diff --git a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java index 535069b333..af799b8ab9 100644 --- a/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java +++ b/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java @@ -72,9 +72,9 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg int remainingFlow = (int) (aOptFlow * 1.25f); // Allowed to use up to 125% of optimal flow. Variable required outside of loop for multi-hatch scenarios. for (int i = 0; i < aFluids.size() && remainingFlow > 0; i++) { // loop through each hatch; extract inputs and track totals. - if (aFluids.get(i).getFluid().getUnlocalizedName(aFluids.get(i)).equals("fluid.steam") - || aFluids.get(i).getFluid().getUnlocalizedName(aFluids.get(i)).equals("ic2.fluidSteam")) { - flow = aFluids.get(i).amount; // Get all (steam) in hatch + String fluidName = aFluids.get(i).getFluid().getUnlocalizedName(aFluids.get(i)); + if (fluidName.equals("fluid.steam") || fluidName.equals("ic2.fluidSteam") || fluidName.equals("fluid.mfr.steam.still.name")) { + flow = aFluids.get(i).amount; // Get all (steam) in hatch flow = Math.min(flow, Math.min(remainingFlow, (int) (aOptFlow * 1.25f))); // try to use up to 125% of optimal flow w/o exceeding remainingFlow depleteInput(new FluidStack(aFluids.get(i), flow)); // deplete that amount remainingFlow -= flow; // track amount we're allowed to continue depleting from hatches |