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