All right to start solving the problem, I created logic for both the vehicles (add-on process triggers > Loaded) to Search through the opposite loop/vehicle's SequenceTable for the DestinationNode assigned to the loaded entity. If the Search step finds the DestinationNode in that Table, it assigns the DestinationNode.ID to a temporary integer state, and sets the entity's priority to the other loop's vehicle's priority. After the Assign Step, a SetNode step is used to set the entity's destination to TransferNode1 (the node between the two loops).
At the TransferNode: Upon entered, a process is triggered in which a Decide step checks whether a entity or vehicle enters the Node (Entity.Is.DefaultEntity), and if it is a DefaultEntity, a SetNode step sets the Entity's DestinationNode to the temp variable assigned earlier.
I used one transfernode/no paths between the loops as I would like to force the vehicles to wait for the entity to be picked up by the other vehicle before moving on.
The above logic mostly solves my initial question, but I'm struggling with one more thing:
- If both vehicles want to transfer entities at the mutual transfernode, they just pause and no swapping is possible. The node's capacity is set to infinity, must I rather place a delay in one of the vehicles' transfer logic to overcome this?
Find attached the model for reference purposes
Model_Transfer_Question.spfx