diff options
author | Blood-Asp <Blood@Asp> | 2015-06-22 22:59:03 +0200 |
---|---|---|
committer | Blood-Asp <Blood@Asp> | 2015-06-22 22:59:03 +0200 |
commit | 55c596b008807a7cb4b58422efd07636425be1e2 (patch) | |
tree | a97d67ea27c7661be4fdbcfcef2578f29ae3a5da /main/java/gregtech/api/metatileentity/implementations | |
parent | f6fc2a6df60811b84bb929560921b02095cc035e (diff) | |
download | GT5-Unofficial-55c596b008807a7cb4b58422efd07636425be1e2.tar.gz GT5-Unofficial-55c596b008807a7cb4b58422efd07636425be1e2.tar.bz2 GT5-Unofficial-55c596b008807a7cb4b58422efd07636425be1e2.zip |
version 5.08.20
moar bugfixes
Diffstat (limited to 'main/java/gregtech/api/metatileentity/implementations')
-rw-r--r-- | main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java | 9 | ||||
-rw-r--r-- | main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java | 29 |
2 files changed, 37 insertions, 1 deletions
diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java index c859f5345f..85104f4584 100644 --- a/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java +++ b/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java @@ -39,6 +39,7 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile public final Materials mMaterial; public final long mCableLossPerMeter, mAmperage, mVoltage; public final boolean mInsulated, mCanShock; + public long mRestRF; public GT_MetaPipeEntity_Cable(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, long aCableLossPerMeter, long aAmperage, long aVoltage, boolean aInsulated, boolean aCanShock) { super(aID, aName, aNameRegional, 0); @@ -143,6 +144,14 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile int rfOut = (int) (aVoltage * GregTech_API.mEUtoRF / 100); if(((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, true)==rfOut){ ((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, false); rUsedAmperes++; + }else if(((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, true)>0){ + if(mRestRF==0){ + int RFtrans = ((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, (int) rfOut, false);rUsedAmperes++; + mRestRF = rfOut - RFtrans; + }else{ + int RFtrans = ((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, (int) mRestRF, false); + mRestRF = mRestRF - RFtrans; + } } if(GregTech_API.mRFExplosions && ((IEnergyReceiver)tTileEntity).getMaxEnergyStored(tDirection) < rfOut * 600){ if(rfOut > 32 * GregTech_API.mEUtoRF / 100) this.doExplosion(rfOut); diff --git a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java b/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java index 7a6b32d7e6..f3049a4ea7 100644 --- a/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java +++ b/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java @@ -2,6 +2,10 @@ package gregtech.api.metatileentity.implementations; import static gregtech.api.enums.GT_Values.V; import cofh.api.energy.IEnergyProvider; +import cofh.api.energy.IEnergyStorage; +import crazypants.enderio.machine.capbank.TileCapBank; +import crazypants.enderio.machine.capbank.network.ICapBankNetwork; +import crazypants.enderio.power.IPowerContainer; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; @@ -82,7 +86,6 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi for (byte i = 0; i < 6 && aBaseMetaTileEntity.getStoredEU() < aBaseMetaTileEntity.getEUCapacity(); i++) if (aBaseMetaTileEntity.inputEnergyFrom(i)) { TileEntity tTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(i); if (tTileEntity instanceof IEnergySource && ((IEnergySource)tTileEntity).emitsEnergyTo((TileEntity)aBaseMetaTileEntity, ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)))) { -// long tEU = (long)((IEnergySource)tTileEntity).getOfferedEnergy(); long tEU = Math.min(maxEUInput(), (long)((IEnergySource)tTileEntity).getOfferedEnergy()); ((IEnergySource)tTileEntity).drawEnergy(tEU); aBaseMetaTileEntity.injectEnergyUnits((byte)6, tEU, 1); @@ -90,6 +93,30 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi long tEU = Math.min(maxEUInput(), (long)((IEnergyProvider)tTileEntity).extractEnergy(ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)),(int) maxEUInput()* 100 / GregTech_API.mRFtoEU ,false)); tEU = tEU * GregTech_API.mRFtoEU / 100; aBaseMetaTileEntity.injectEnergyUnits((byte)6, tEU, 1); + }else if (GregTech_API.mInputRF && tTileEntity instanceof IEnergyStorage&& ((IEnergyStorage)tTileEntity).extractEnergy(1,true)==1) { + long tEU = Math.min(maxEUInput(), (long)((IEnergyStorage)tTileEntity).extractEnergy((int) maxEUInput()* 100 / GregTech_API.mRFtoEU ,false)); + tEU = tEU * GregTech_API.mRFtoEU / 100; + aBaseMetaTileEntity.injectEnergyUnits((byte)6, tEU, 1); + }else if (GregTech_API.mInputRF && GregTech_API.meIOLoaded && tTileEntity instanceof IPowerContainer && ((IPowerContainer)tTileEntity).getEnergyStored()>0) { + int storedRF = ((IPowerContainer)tTileEntity).getEnergyStored(); + int extractRF = (int) maxEUInput()* 100 / GregTech_API.mRFtoEU; + long tEU =0; + if(tTileEntity instanceof TileCapBank){ + ICapBankNetwork network = ((TileCapBank)tTileEntity).getNetwork(); + if(network!=null&&network.getEnergyStoredL()>0){ + tEU = Math.min((Math.min(Math.min(network.getEnergyStoredL(), storedRF-extractRF),network.getMaxOutput())) * GregTech_API.mRFtoEU / 100,maxEUInput()); + network.addEnergy((int) -(tEU * 100 / GregTech_API.mRFtoEU)); + } + }else{ + if(storedRF>extractRF){ + ((IPowerContainer)tTileEntity).setEnergyStored(storedRF-extractRF); + tEU = maxEUInput(); + }else{ + ((IPowerContainer)tTileEntity).setEnergyStored(0); + tEU = storedRF * GregTech_API.mRFtoEU / 100 ; + } + } + aBaseMetaTileEntity.injectEnergyUnits((byte)6, tEU, 1); } } } |