Merge pull request #39 from asdflj/filter

fluid packet decoder add slot restricted input
This commit is contained in:
Martin Robertz authored and GitHub committed 2022-11-18 18:48:57 +01:00
commit eff505cdb9
4 files changed
+32 -3

No files matched your search

@@ -1,15 +1,17 @@
package com.glodblock.github.client.gui.container;
import appeng.container.AEBaseContainer;
import appeng.container.slot.SlotNormal;
import com.glodblock.github.common.tile.TileFluidPacketDecoder;
import com.glodblock.github.inventory.slot.FCSlotRestrictedInput;
import net.minecraft.entity.player.InventoryPlayer;
import static com.glodblock.github.loader.ItemAndBlockHolder.PACKET;
public class ContainerFluidPacketDecoder extends AEBaseContainer {
public ContainerFluidPacketDecoder(InventoryPlayer ipl, TileFluidPacketDecoder tile) {
super(ipl, tile);
addSlotToContainer(new SlotNormal(tile.getInventory(), 0, 80, 35));
addSlotToContainer(new FCSlotRestrictedInput(PACKET.stack(), tile.getInventory(), 0, 80, 35, ipl));
bindPlayerInventory(ipl, 0, 84);
}
@@ -136,4 +136,8 @@ public class ItemFluidPacket extends Item {
GameRegistry.registerItem(this, NameConst.ITEM_FLUID_PACKET, FluidCraft.MODID);
return this;
}
public ItemStack stack() {
return new ItemStack(this, 1);
}
}
@@ -158,6 +158,6 @@ public class TileFluidPacketDecoder extends AENetworkTile implements IGridTickab
@Override
public boolean isItemValidForSlot(int slot, ItemStack stack) {
return inventory.isItemValidForSlot(slot, stack);
return stack.getItem() instanceof ItemFluidPacket;
}
}
@@ -0,0 +1,23 @@
package com.glodblock.github.inventory.slot;
import appeng.container.slot.SlotRestrictedInput;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
public class FCSlotRestrictedInput extends SlotRestrictedInput {
private ItemStack valid;
public FCSlotRestrictedInput(ItemStack valid, IInventory i, int slotIndex, int x, int y, InventoryPlayer p) {
super(PlacableItemType.INSCRIBER_PLATE, i, slotIndex, x, y, p);
this.valid = valid;
}
@Override
public boolean isItemValid(final ItemStack i) {
if (i.getItem().getClass().isAssignableFrom(valid.getItem().getClass())) {
return true;
}
return false;
}
}