Fixes #4330: Avoid mutating the input stack (#4481)

This commit is contained in:
yueh
2020-07-19 13:13:20 +02:00
committed by GitHub
parent bdd22093c3
commit 223163aa0a
+7 -5
View File
@@ -839,17 +839,19 @@ public class Platform {
energy.extractAEPower(stored / energyFactor, Actionable.MODULATE, PowerMultiplier.CONFIG);
if (itemToAdd < input.getStackSize()) {
final long original = input.getStackSize();
final T leftover = input.copy();
final T split = input.copy();
split.decStackSize(itemToAdd);
input.setStackSize(itemToAdd);
split.add(cell.injectItems(input, Actionable.MODULATE, src));
leftover.decStackSize(itemToAdd);
split.setStackSize(itemToAdd);
leftover.add(cell.injectItems(split, Actionable.MODULATE, src));
src.player().ifPresent(player -> {
final long diff = original - split.getStackSize();
final long diff = original - leftover.getStackSize();
AeStats.ItemsInserted.addToPlayer(player, (int) diff);
});
return split;
return leftover;
}
final T ret = cell.injectItems(input, Actionable.MODULATE, src);