diff --git a/src/main/java/refinedstorage/container/slot/UpgradeItemValidator.java b/src/main/java/refinedstorage/container/slot/UpgradeItemValidator.java index 357f6ee3b..34ab0bfda 100755 --- a/src/main/java/refinedstorage/container/slot/UpgradeItemValidator.java +++ b/src/main/java/refinedstorage/container/slot/UpgradeItemValidator.java @@ -3,8 +3,6 @@ package refinedstorage.container.slot; import net.minecraft.item.ItemStack; import refinedstorage.RefinedStorageItems; -import java.util.Arrays; - public class UpgradeItemValidator implements IItemValidator { private int[] allowedUpgrades; @@ -14,6 +12,14 @@ public class UpgradeItemValidator implements IItemValidator { @Override public boolean isValid(ItemStack stack) { - return stack.getItem() == RefinedStorageItems.UPGRADE && Arrays.asList(allowedUpgrades).contains(stack.getMetadata()); + if (stack.getItem() == RefinedStorageItems.UPGRADE) { + for (int upgrade : allowedUpgrades) { + if (upgrade == stack.getMetadata()) { + return true; + } + } + } + + return false; } } diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index 93d0f3279..bfd88f378 100755 --- a/src/main/java/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/refinedstorage/item/ItemWirelessGrid.java @@ -133,7 +133,7 @@ public class ItemWirelessGrid extends ItemEnergyContainer { @Override public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { - if (!world.isRemote && getDimensionId(stack) == player.dimension) { + if (!world.isRemote && hasValidNBT(stack) && getDimensionId(stack) == player.dimension) { TileEntity tile = world.getTileEntity(new BlockPos(getX(stack), getY(stack), getZ(stack))); if (tile instanceof TileController) { @@ -191,6 +191,22 @@ public class ItemWirelessGrid extends ItemEnergyContainer { @Override public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + if (oldStack.getItem() == newStack.getItem()) { + if (hasValidNBT(oldStack) && hasValidNBT(newStack)) { + int x1 = getX(oldStack); + int y1 = getY(oldStack); + int z1 = getZ(oldStack); + int dim1 = getDimensionId(oldStack); + int x2 = getX(newStack); + int y2 = getY(newStack); + int z2 = getZ(newStack); + int dim2 = getDimensionId(newStack); + + if (x1 == x2 && y1 == y2 && z1 == z2 && dim1 == dim2) { + return false; + } + } + } return slotChanged; } diff --git a/src/main/resources/assets/refinedstorage/textures/gui/destructor.png b/src/main/resources/assets/refinedstorage/textures/gui/destructor.png index 76e785c9d..c0abac7bc 100755 Binary files a/src/main/resources/assets/refinedstorage/textures/gui/destructor.png and b/src/main/resources/assets/refinedstorage/textures/gui/destructor.png differ