public void PassBaggage(IBaggage baggage, IConveyorConnector predecessor)
        {
            var index = _incomingConnections[predecessor];

            if (CanAdd(index))
            {
                baggage.TransporterId = NodeId;
                Add(baggage, index);
            }
        }
        public NodeState Status(IConveyorConnector predecessor)
        {
            var index = _incomingConnections[predecessor];

            return(_conveyorBelt[index] == null ? NodeState.Free : NodeState.Busy);
        }
        public Action OnStatusChangedToFree(IConveyorConnector predecessor)
        {
            var index = _incomingConnections[predecessor];

            return(_statusChangedToFreeEvents[index]);
        }
 public void AddPredecessor(IConveyorConnector predecessor, int attachedToIndex)
 {
     _incomingConnections.Add(predecessor, attachedToIndex);
     _statusChangedToFreeEvents.Add(attachedToIndex, null);
 }