Fixed Disk Manipulator blocking items transferring in some cases (#458)

* Fixed Disk Manipulator blocking items transferring in some cases

* One item per iteration
This commit is contained in:
InusualZ
2016-10-12 08:15:47 -04:00
committed by Raoul
parent 09756906d0
commit 73f3d14a20

View File

@@ -1,5 +1,6 @@
package refinedstorage.tile;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.datasync.DataSerializers;
@@ -218,30 +219,28 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte
return;
}
ItemStack extracted = null;
int i = 0;
do {
ItemStack stack = null;
while (storage.getItems().size() > i && stack == null) {
stack = storage.getItems().get(i++);
for (int i = 0; i < storage.getItems().size(); i++) {
ItemStack stack = storage.getItems().get(i);
if (stack == null) {
continue;
}
if (stack != null) {
extracted = storage.extractItem(stack, upgrades.getInteractStackSize(), compare);
}
} while (storage.getItems().size() > i && extracted == null);
ItemStack extracted = storage.extractItem(stack, upgrades.getInteractStackSize(), compare);
if (extracted == null) {
moveDriveToOutput(slot);
return;
continue;
}
ItemStack remainder = network.insertItem(extracted, extracted.stackSize, false);
if (remainder == null) {
break;
}
if (remainder != null) {
storage.insertItem(remainder, remainder.stackSize, false);
// We need to check if the stack was inserted
storage.insertItem(((extracted == remainder) ? remainder.copy() : remainder), remainder.stackSize, false);
}
if (storage.getItems().size() == 0) {
moveDriveToOutput(slot);
}
}