From 1760113cd46e08178d0eda3a8233f4205a5f7973 Mon Sep 17 00:00:00 2001 From: yueh Date: Tue, 31 Jan 2017 12:17:32 +0100 Subject: [PATCH] Fixes #2768: Incorrect return value when charging items via Tesla. (#2771) --- .../tools/powered/powersink/PoweredItemCapabilities.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/appeng/items/tools/powered/powersink/PoweredItemCapabilities.java b/src/main/java/appeng/items/tools/powered/powersink/PoweredItemCapabilities.java index 450b7444c..7a75b7921 100644 --- a/src/main/java/appeng/items/tools/powered/powersink/PoweredItemCapabilities.java +++ b/src/main/java/appeng/items/tools/powered/powersink/PoweredItemCapabilities.java @@ -64,9 +64,7 @@ class PoweredItemCapabilities implements ICapabilityProvider, IEnergyStorage @Override public boolean hasCapability( Capability capability, @Nullable EnumFacing facing ) { - return capability == CapabilityEnergy.ENERGY - || capability == Capabilities.TESLA_CONSUMER - || capability == Capabilities.TESLA_HOLDER; + return capability == CapabilityEnergy.ENERGY || capability == Capabilities.TESLA_CONSUMER || capability == Capabilities.TESLA_HOLDER; } @SuppressWarnings( "unchecked" ) @@ -87,10 +85,10 @@ class PoweredItemCapabilities implements ICapabilityProvider, IEnergyStorage @Override public int receiveEnergy( int maxReceive, boolean simulate ) { - if( simulate ) { final int required = (int) PowerUnits.AE.convertTo( PowerUnits.RF, item.getAEMaxPower( is ) - item.getAECurrentPower( is ) ); + if( maxReceive < required ) { return 0; @@ -100,7 +98,7 @@ class PoweredItemCapabilities implements ICapabilityProvider, IEnergyStorage else { final double powerRemainder = item.injectAEPower( is, PowerUnits.RF.convertTo( PowerUnits.AE, maxReceive ) ); - return (int) PowerUnits.AE.convertTo( PowerUnits.RF, powerRemainder ); + return maxReceive - (int) PowerUnits.AE.convertTo( PowerUnits.RF, powerRemainder ); } }