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); }