package advancedsystemsmanager.flow.execution; import advancedsystemsmanager.api.tileentities.IRedstoneNode; import advancedsystemsmanager.api.tileentities.ITriggerNode; import advancedsystemsmanager.tileentities.*; import net.minecraft.inventory.IInventory; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.fluids.IFluidHandler; import java.util.HashMap; import java.util.Map; public class SlotInventoryHolder { public TileEntity inventory; public Map<Integer, SlotSideTarget> validSlots; public int sharedOption; public int id; public SlotInventoryHolder(int id, TileEntity inventory, int sharedOption) { this.id = id; this.inventory = inventory; this.sharedOption = sharedOption; } public int getId() { return id; } public IInventory getInventory() { return (IInventory)inventory; } public IFluidHandler getTank() { return (IFluidHandler)inventory; } public TileEntityEmitter getEmitter() { return (TileEntityEmitter)inventory; } public IRedstoneNode getNode() { return (IRedstoneNode)inventory; } public TileEntityReceiver getReceiver() { return (TileEntityReceiver)inventory; } public TileEntityBUD getBUD() { return (TileEntityBUD)inventory; } public TileEntityCamouflage getCamouflage() { return (TileEntityCamouflage)inventory; } public TileEntitySignUpdater getSign() { return (TileEntitySignUpdater)inventory; } public Map<Integer, SlotSideTarget> getValidSlots() { if (validSlots == null) { validSlots = new HashMap<Integer, SlotSideTarget>(); } return validSlots; } public boolean isShared() { return sharedOption == 0; } public int getSharedOption() { return sharedOption; } @Override public int hashCode() { return inventory.hashCode(); } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; SlotInventoryHolder that = (SlotInventoryHolder)o; return inventory.xCoord == that.inventory.xCoord && inventory.yCoord == that.inventory.yCoord && inventory.zCoord == that.inventory.yCoord; } public TileEntity getTile() { return inventory; } public ITriggerNode getTrigger() { return (ITriggerNode)inventory; } }