diff options
author | Blood-Asp <Blood@Asp> | 2015-05-28 00:29:03 +0200 |
---|---|---|
committer | Blood-Asp <Blood@Asp> | 2015-05-28 00:29:03 +0200 |
commit | 7e0b4194ac6c5651fab4b24e4f30c447697e11ab (patch) | |
tree | e7702a7c48f57981c731b268bc06a07b4e57787f /main/java/gregtech/api/interfaces | |
parent | adb4a5eef6c1abf5f2ce68d133d7f54c16939442 (diff) | |
download | GT5-Unofficial-7e0b4194ac6c5651fab4b24e4f30c447697e11ab.tar.gz GT5-Unofficial-7e0b4194ac6c5651fab4b24e4f30c447697e11ab.tar.bz2 GT5-Unofficial-7e0b4194ac6c5651fab4b24e4f30c447697e11ab.zip |
Update 5.08.18
RF Support and finished Processing array
Diffstat (limited to 'main/java/gregtech/api/interfaces')
-rw-r--r-- | main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java b/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java index 3c08fec594..097493807d 100644 --- a/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java +++ b/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java @@ -1,8 +1,13 @@ package gregtech.api.interfaces.tileentity; +import static gregtech.api.enums.GT_Values.V; +import cofh.api.energy.IEnergyReceiver; +import gregtech.api.GregTech_API; import gregtech.api.util.GT_Utility; import ic2.api.energy.tile.IEnergySink; +import net.minecraft.init.Blocks; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; /** @@ -60,7 +65,23 @@ public interface IEnergyConnected extends IColoredTileEntity, IHasWorldObjectAnd if (((IEnergySink)tTileEntity).acceptsEnergyFrom((TileEntity)aEmitter, ForgeDirection.getOrientation(j))) { while (aAmperage > rUsedAmperes && ((IEnergySink)tTileEntity).getDemandedEnergy() > 0 && ((IEnergySink)tTileEntity).injectEnergy(ForgeDirection.getOrientation(j), aVoltage, aVoltage) < aVoltage) rUsedAmperes++; } - } + } else if(GregTech_API.mOutputRF && tTileEntity instanceof IEnergyReceiver){ + ForgeDirection tDirection = ForgeDirection.getOrientation(i).getOpposite(); + int rfOut = (int) (aVoltage * GregTech_API.mEUtoRF / 100); + if(((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, true)==rfOut){ + ((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, false); rUsedAmperes++; + } + if(GregTech_API.mRFExplosions && GregTech_API.sMachineExplosions && ((IEnergyReceiver)tTileEntity).getMaxEnergyStored(tDirection) < rfOut * 600){ + if(rfOut > 32 * GregTech_API.mEUtoRF / 100) { + int aExplosionPower = rfOut; + float tStrength = aExplosionPower<V[0]?1.0F:aExplosionPower<V[1]?2.0F:aExplosionPower<V[2]?3.0F:aExplosionPower<V[3]?4.0F:aExplosionPower<V[4]?5.0F:aExplosionPower<V[4]*2?6.0F:aExplosionPower<V[5]?7.0F:aExplosionPower<V[6]?8.0F:aExplosionPower<V[7]?9.0F:10.0F; + int tX=tTileEntity.xCoord, tY=tTileEntity.yCoord, tZ=tTileEntity.zCoord; + World tWorld = tTileEntity.getWorldObj(); + GT_Utility.sendSoundToPlayers(tWorld, GregTech_API.sSoundList.get(209), 1.0F, -1, tX, tY, tZ); + tWorld.setBlock(tX, tY, tZ, Blocks.air); + if (GregTech_API.sMachineExplosions) tWorld.createExplosion(null, tX+0.5, tY+0.5, tZ+0.5, tStrength, true);} + } + } } return rUsedAmperes; } |