From 5e40820ff020bff6bec4043d6169e515587bff9e Mon Sep 17 00:00:00 2001 From: Saphire Lattice Date: Mon, 15 Jun 2026 01:32:54 +0600 Subject: [PATCH] Fix return value of SingleInk storage, so it stops duping initial fill It's extra noticeable if there are any addons that let you transfer a lot of ink at once into an empty storage --- .../api/energy/storage/SingleInkStorage.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) 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