From 7e0b4194ac6c5651fab4b24e4f30c447697e11ab Mon Sep 17 00:00:00 2001 From: Blood-Asp Date: Thu, 28 May 2015 00:29:03 +0200 Subject: Update 5.08.18 RF Support and finished Processing array --- .../interfaces/tileentity/IEnergyConnected.java | 23 +++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'main/java/gregtech/api/interfaces/tileentity') 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