diff --git a/src/main/java/de/dafuqs/spectrum/api/energy/storage/SingleInkStorage.java b/src/main/java/de/dafuqs/spectrum/api/energy/storage/SingleInkStorage.java index 3f0605c057..9edfd84506 100644 --- a/src/main/java/de/dafuqs/spectrum/api/energy/storage/SingleInkStorage.java +++ b/src/main/java/de/dafuqs/spectrum/api/energy/storage/SingleInkStorage.java @@ -41,20 +41,18 @@ public boolean accepts(InkColor color) { @Override public long addEnergy(InkColor color, long amount) { - if (color == storedColor) { - long resultingAmount = this.storedEnergy + amount; - this.storedEnergy = resultingAmount; - if (resultingAmount > this.maxEnergy) { - long overflow = this.storedEnergy - this.maxEnergy; - this.storedEnergy = this.maxEnergy; - return overflow; - } - return 0; - } else if (this.storedEnergy == 0) { + if (color != storedColor && this.storedEnergy != 0) + return amount; + if (this.storedEnergy == 0) this.storedColor = color; - this.storedEnergy = amount; + long resultingAmount = this.storedEnergy + amount; + this.storedEnergy = resultingAmount; + if (resultingAmount > this.maxEnergy) { + long overflow = this.storedEnergy - this.maxEnergy; + this.storedEnergy = this.maxEnergy; + return overflow; } - return amount; + return 0; } @Override