From 0c11c83eb95db80ad8e5334bdc07c50fc0401fe5 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 2 Apr 2016 00:07:25 +0200 Subject: [PATCH] This fixes all the bugs I got while playtesting --- src/main/java/refinedstorage/gui/GuiController.java | 2 +- src/main/java/refinedstorage/tile/TileDestructor.java | 3 ++- src/main/java/refinedstorage/tile/TileImporter.java | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/refinedstorage/gui/GuiController.java b/src/main/java/refinedstorage/gui/GuiController.java index c254f18fb..60a765960 100755 --- a/src/main/java/refinedstorage/gui/GuiController.java +++ b/src/main/java/refinedstorage/gui/GuiController.java @@ -79,7 +79,7 @@ public class GuiController extends GuiBase { TileMachine machineHovering = null; for (int i = 0; i < 4; ++i) { - if (slot < machines.size()) { + if (slot < machines.size() && machines.get(slot) != null && machines.get(slot).getWorld() != null) { TileMachine machine = machines.get(slot); IBlockState machineState = machine.getWorld().getBlockState(machine.getPos()); Block machineBlock = machineState.getBlock(); diff --git a/src/main/java/refinedstorage/tile/TileDestructor.java b/src/main/java/refinedstorage/tile/TileDestructor.java index d8ed2200b..7088d09bd 100755 --- a/src/main/java/refinedstorage/tile/TileDestructor.java +++ b/src/main/java/refinedstorage/tile/TileDestructor.java @@ -4,6 +4,7 @@ import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.math.BlockPos; @@ -39,7 +40,7 @@ public class TileDestructor extends TileMachine implements ICompareSetting, IMod IBlockState frontBlockState = worldObj.getBlockState(front); Block frontBlock = frontBlockState.getBlock(); - if (!frontBlock.isAir(frontBlockState, worldObj, front)) { + if (Item.getItemFromBlock(frontBlock) != null && !frontBlock.isAir(frontBlockState, worldObj, front)) { if (ModeSettingUtils.doesNotViolateMode(inventory, this, compare, new ItemStack(frontBlock, 1, frontBlock.getMetaFromState(frontBlockState)))) { List drops = frontBlock.getDrops(worldObj, front, frontBlockState, 0); diff --git a/src/main/java/refinedstorage/tile/TileImporter.java b/src/main/java/refinedstorage/tile/TileImporter.java index e36febd68..4c3f14ba0 100755 --- a/src/main/java/refinedstorage/tile/TileImporter.java +++ b/src/main/java/refinedstorage/tile/TileImporter.java @@ -80,11 +80,16 @@ public class TileImporter extends TileMachine implements ICompareSetting, IModeS ItemStack toTake = stack.copy(); toTake.stackSize = 1; + // If we can't import and/ or push, move on (otherwise we stay on the same slot forever) if (canImport(toTake)) { if (getController().push(toTake)) { inventory.decrStackSize(currentSlot, 1); inventory.markDirty(); + } else { + currentSlot++; } + } else { + currentSlot++; } } } else {