#2527: Implements charging of tools via RF (Forge Energy) and Tesla. Tested with Tesla Essentials and EnderIO.

This commit is contained in:
Sebastian Hartte
2016-10-30 02:38:20 +02:00
parent 89299cdb3c
commit 53c32cc296
7 changed files with 177 additions and 273 deletions
@@ -27,6 +27,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.capabilities.ICapabilityProvider;
import appeng.api.config.AccessRestriction;
import appeng.api.config.PowerUnits;
@@ -145,27 +146,6 @@ public abstract class AERootPoweredItem extends AEBaseItem implements IAEItemPow
return currentStorage;
}
/**
* inject external
*/
double injectExternalPower( final PowerUnits input, final ItemStack is, final double amount, final boolean simulate )
{
if( simulate )
{
final int requiredEU = (int) PowerUnits.AE.convertTo( PowerUnits.EU, this.getAEMaxPower( is ) - this.getAECurrentPower( is ) );
if( amount < requiredEU )
{
return 0;
}
return amount - requiredEU;
}
else
{
final double powerRemainder = this.injectAEPower( is, PowerUnits.EU.convertTo( PowerUnits.AE, amount ) );
return PowerUnits.AE.convertTo( PowerUnits.EU, powerRemainder );
}
}
@Override
public double injectAEPower( final ItemStack is, final double amt )
{
@@ -196,6 +176,12 @@ public abstract class AERootPoweredItem extends AEBaseItem implements IAEItemPow
return AccessRestriction.WRITE;
}
@Override
public ICapabilityProvider initCapabilities( ItemStack stack, NBTTagCompound nbt )
{
return new PoweredItemCapabilities( stack, this );
}
private enum batteryOperation
{
STORAGE, INJECT, EXTRACT