From a725779ff65b3f84cb26f4a57ab45ce6d4a8a95e Mon Sep 17 00:00:00 2001 From: yueh Date: Thu, 26 Oct 2017 12:46:49 +0200 Subject: [PATCH] Fixes #3175: Return the correct used amount. (#3176) --- .../powersink/PoweredItemCapabilities.java | 17 +++-------------- 1 file changed, 3 insertions(+), 14 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 d99548a76..c28f0738c 100644 --- a/src/main/java/appeng/items/tools/powered/powersink/PoweredItemCapabilities.java +++ b/src/main/java/appeng/items/tools/powered/powersink/PoweredItemCapabilities.java @@ -85,21 +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, this.item.getAEMaxPower( this.is ) - this.item.getAECurrentPower( this.is ) ); + final double convertedOffer = PowerUnits.RF.convertTo( PowerUnits.AE, maxReceive ); + final double overflow = this.item.injectAEPower( this.is, convertedOffer, simulate ? Actionable.SIMULATE : Actionable.MODULATE ); - if( maxReceive < required ) - { - return 0; - } - return maxReceive - required; - } - else - { - final double powerRemainder = this.item.injectAEPower( this.is, PowerUnits.RF.convertTo( PowerUnits.AE, maxReceive ), Actionable.MODULATE ); - return maxReceive - (int) PowerUnits.AE.convertTo( PowerUnits.RF, powerRemainder ); - } + return maxReceive - (int) PowerUnits.AE.convertTo( PowerUnits.RF, overflow ); } @Override