fluid packet decoder add slot restricted input

This commit is contained in:
asdflj committed 2022-11-17 10:55:21 +08:00
1 parent dc7c33bfa0
commit 7a18bed394
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;
}
}