#2438: Implemented forge energy capabilities. Removed other disabled energy units for the time being.
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package appeng.tile.powersink;
|
||||
|
||||
|
||||
|
||||
import net.minecraftforge.energy.IEnergyStorage;
|
||||
|
||||
import appeng.api.config.PowerUnits;
|
||||
|
||||
|
||||
/**
|
||||
* Adapts an {@link IExternalPowerSink} to Forges {@link IEnergyStorage}.
|
||||
*/
|
||||
class ForgeEnergyAdapter implements IEnergyStorage
|
||||
{
|
||||
|
||||
private final IExternalPowerSink sink;
|
||||
|
||||
ForgeEnergyAdapter( IExternalPowerSink sink )
|
||||
{
|
||||
this.sink = sink;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int receiveEnergy( int maxReceive, boolean simulate )
|
||||
{
|
||||
final int networkDemand = (int) Math.floor( sink.getExternalPowerDemand( PowerUnits.RF, maxReceive ) );
|
||||
final int used = Math.min( maxReceive, networkDemand );
|
||||
|
||||
if( !simulate )
|
||||
{
|
||||
sink.injectExternalPower( PowerUnits.RF, used );
|
||||
}
|
||||
|
||||
return used;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int getEnergyStored()
|
||||
{
|
||||
return (int) Math.floor( PowerUnits.AE.convertTo( PowerUnits.RF, sink.getAECurrentPower() ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int getMaxEnergyStored( )
|
||||
{
|
||||
return (int) Math.floor( PowerUnits.AE.convertTo( PowerUnits.RF, sink.getAEMaxPower() ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public int extractEnergy( int maxExtract, boolean simulate )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExtract()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canReceive()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user