Fix interface bugs
This commit is contained in:
		@@ -52,10 +52,12 @@ public class TileInterface extends TileMachine implements ICompareConfig {
 | 
				
			|||||||
        } else if (ticks % RefinedStorageUtils.getSpeed(upgrades) == 0) {
 | 
					        } else if (ticks % RefinedStorageUtils.getSpeed(upgrades) == 0) {
 | 
				
			||||||
            int size = RefinedStorageUtils.hasUpgrade(upgrades, ItemUpgrade.TYPE_STACK) ? 64 : 1;
 | 
					            int size = RefinedStorageUtils.hasUpgrade(upgrades, ItemUpgrade.TYPE_STACK) ? 64 : 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (controller.push(slot, size, true) == null) {
 | 
					            ItemStack remainder = controller.push(slot, size, false);
 | 
				
			||||||
                controller.push(slot, size, false);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (remainder == null) {
 | 
				
			||||||
                importItems.extractItem(currentSlot, size, false);
 | 
					                importItems.extractItem(currentSlot, size, false);
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                importItems.extractItem(currentSlot, size - remainder.stackSize, false);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,6 +13,7 @@ import net.minecraft.nbt.NBTTagList;
 | 
				
			|||||||
import net.minecraft.util.EnumFacing;
 | 
					import net.minecraft.util.EnumFacing;
 | 
				
			||||||
import net.minecraftforge.common.util.Constants;
 | 
					import net.minecraftforge.common.util.Constants;
 | 
				
			||||||
import net.minecraftforge.fml.common.network.ByteBufUtils;
 | 
					import net.minecraftforge.fml.common.network.ByteBufUtils;
 | 
				
			||||||
 | 
					import net.minecraftforge.items.ItemHandlerHelper;
 | 
				
			||||||
import refinedstorage.RefinedStorage;
 | 
					import refinedstorage.RefinedStorage;
 | 
				
			||||||
import refinedstorage.RefinedStorageBlocks;
 | 
					import refinedstorage.RefinedStorageBlocks;
 | 
				
			||||||
import refinedstorage.RefinedStorageUtils;
 | 
					import refinedstorage.RefinedStorageUtils;
 | 
				
			||||||
@@ -411,6 +412,15 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
 | 
				
			|||||||
            return null;
 | 
					            return null;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // We copy here because push can not modify the stack
 | 
				
			||||||
 | 
					        // if we return the remainder (that will not be copied if there are no storages)
 | 
				
			||||||
 | 
					        // user code can do something with the uncopied remainder.
 | 
				
			||||||
 | 
					        if (storages.isEmpty()) {
 | 
				
			||||||
 | 
					            return ItemHandlerHelper.copyStackWithSize(stack, size);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        int orginalSize = size;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ItemStack remainder = stack;
 | 
					        ItemStack remainder = stack;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (IStorage storage : storages) {
 | 
					        for (IStorage storage : storages) {
 | 
				
			||||||
@@ -427,11 +437,7 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
 | 
				
			|||||||
            syncItems();
 | 
					            syncItems();
 | 
				
			||||||
            syncItemsWithClients();
 | 
					            syncItemsWithClients();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            int sizePushed = stack.stackSize;
 | 
					            int sizePushed = remainder != null ? (orginalSize - remainder.stackSize) : orginalSize;
 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (remainder != null) {
 | 
					 | 
				
			||||||
                sizePushed = stack.stackSize - remainder.stackSize;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (int i = 0; i < sizePushed; ++i) {
 | 
					            for (int i = 0; i < sizePushed; ++i) {
 | 
				
			||||||
                if (!craftingTasks.empty()) {
 | 
					                if (!craftingTasks.empty()) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user