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