diff --git a/src/main/java/com/ticticboooom/mods/mm/block/tile/MachinePortBlockEntity.java b/src/main/java/com/ticticboooom/mods/mm/block/tile/MachinePortBlockEntity.java index 39ff04c..6f53edf 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/tile/MachinePortBlockEntity.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/tile/MachinePortBlockEntity.java @@ -93,20 +93,9 @@ public class MachinePortBlockEntity extends UpdatableTile implements ITickableTi @Override public void receiveMana(int mana) { - if (storage instanceof ManaPortStorage) { + if (storage instanceof ManaPortStorage && this.isInput()) { ManaPortStorage s = (ManaPortStorage) storage; - if (this.isInput()) { - s.getInv().receiveMana(mana, false); - } - else { - int tiles = s.getValidPools().size(); - if (tiles != 0) { - int manaForEach = mana / tiles; - for (IManaReceiver pool : s.getValidPools()) { - pool.receiveMana(manaForEach); - } - } - } + s.getInv().receiveMana(mana, false); } } diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/storage/ManaPortStorage.java b/src/main/java/com/ticticboooom/mods/mm/ports/storage/ManaPortStorage.java index 479af11..7d6a460 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/storage/ManaPortStorage.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/storage/ManaPortStorage.java @@ -98,6 +98,30 @@ public class ManaPortStorage extends PortStorage { } } + System.out.println(this.validPools); + int tiles = validPools.size(); + if (tiles != 0) { + int extractableMana = inv.extractMana(Integer.MAX_VALUE, true); + int extractedMana = 0; + int filledPools = 0; + while (extractableMana != 0) { + for (IManaReceiver pool : validPools) { + if (!pool.isFull()) { + pool.receiveMana(1); + extractableMana--; + extractedMana++; + } + else { + filledPools++; + } + } + if (filledPools == validPools.size()) { + break; + } + } + inv.extractMana(extractedMana, false); + } + super.tick(tile); } }