Bypass ghost slot when we're dealing with a filter
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RSItems;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.*;
|
import com.raoulvdberge.refinedstorage.container.slot.*;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileBase;
|
import com.raoulvdberge.refinedstorage.tile.TileBase;
|
||||||
@@ -59,13 +60,15 @@ public abstract class ContainerBase extends Container {
|
|||||||
Slot slot = id >= 0 ? getSlot(id) : null;
|
Slot slot = id >= 0 ? getSlot(id) : null;
|
||||||
|
|
||||||
if (slot instanceof SlotFilter) {
|
if (slot instanceof SlotFilter) {
|
||||||
|
if (slot.getStack().getItem() == RSItems.FILTER) {
|
||||||
|
return super.slotClick(id, dragType, clickType, player);
|
||||||
|
}
|
||||||
|
|
||||||
if (((SlotFilter) slot).allowsSize()) {
|
if (((SlotFilter) slot).allowsSize()) {
|
||||||
if (clickType == ClickType.QUICK_MOVE) {
|
if (clickType == ClickType.QUICK_MOVE) {
|
||||||
slot.putStack(ItemStack.EMPTY);
|
slot.putStack(ItemStack.EMPTY);
|
||||||
} else if (!player.inventory.getItemStack().isEmpty()) {
|
} else if (!player.inventory.getItemStack().isEmpty()) {
|
||||||
int amount = player.inventory.getItemStack().getCount();
|
slot.putStack(player.inventory.getItemStack().copy());
|
||||||
|
|
||||||
slot.putStack(ItemHandlerHelper.copyStackWithSize(player.inventory.getItemStack(), amount));
|
|
||||||
} else if (slot.getHasStack()) {
|
} else if (slot.getHasStack()) {
|
||||||
int amount = slot.getStack().getCount();
|
int amount = slot.getStack().getCount();
|
||||||
|
|
||||||
@@ -80,6 +83,10 @@ public abstract class ContainerBase extends Container {
|
|||||||
} else if (player.inventory.getItemStack().isEmpty()) {
|
} else if (player.inventory.getItemStack().isEmpty()) {
|
||||||
slot.putStack(ItemStack.EMPTY);
|
slot.putStack(ItemStack.EMPTY);
|
||||||
} else if (slot.isItemValid(player.inventory.getItemStack())) {
|
} else if (slot.isItemValid(player.inventory.getItemStack())) {
|
||||||
|
if (player.inventory.getItemStack().getItem() == RSItems.FILTER) {
|
||||||
|
return super.slotClick(id, dragType, clickType, player);
|
||||||
|
}
|
||||||
|
|
||||||
slot.putStack(player.inventory.getItemStack().copy());
|
slot.putStack(player.inventory.getItemStack().copy());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,6 +125,10 @@ public abstract class ContainerBase extends Container {
|
|||||||
slot.putStack(ItemHandlerHelper.copyStackWithSize(stack, 1));
|
slot.putStack(ItemHandlerHelper.copyStackWithSize(stack, 1));
|
||||||
slot.onSlotChanged();
|
slot.onSlotChanged();
|
||||||
|
|
||||||
|
if (stack.getItem() == RSItems.FILTER) {
|
||||||
|
stack.setCount(0);
|
||||||
|
}
|
||||||
|
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container.slot;
|
package com.raoulvdberge.refinedstorage.container.slot;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RSItems;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
@@ -30,7 +31,7 @@ public class SlotFilter extends SlotItemHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canTakeStack(EntityPlayer player) {
|
public boolean canTakeStack(EntityPlayer player) {
|
||||||
return false;
|
return getStack().getItem() == RSItems.FILTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Reference in New Issue
Block a user