[Klonan] [2.0.11] Train interrupt wildcard signal mixing
Posted: Sun Oct 27, 2024 12:04 am
When using an interrupt with the wildcard signal, it mixes signals to (incorrectly) satisfy the interrupt condition and activate the interrupt.
Steps to reproduce:
1) Load attached save "TrainInterruptWildCardMixingSignals.zip"
2) Set the train directly below the engineer (at station "gearwheel Waiting Station") to automatic
3) Add a sulfur signal to the constant combinator.
4) The interrupt "Intermediates" activates and adds two stops to the waiting train, going to advanced circuits manufacturing and to advanced circuits processing.
The interrupt is meant to check if there is a pickup station and a dropoff station available for certain items. If there is a slot for the train in both the pickup and dropoff for that train, the interrupt will activate. See attached image "Interrupt.png" for clarification. The current condition is that for the sulfur, the condition "Wildcard Manufacturing" is not full evaluates to true, while "Wildcard Processing" is not full evaluates to false. And for the Advanced Circuits, that the condition "Wildcard Manufacturing" is not full evaluates to false, while "Wildcard Processing" is not full evaluates to true. See attached images for the status of the sulfur and advanced circuits stations.
The observed behaviour is that the condition for the first condition of the interrupt ("Wildcard Manufacturing" is not full) is satisfied for sulfur but not the advanced circuits, while the second condition ("Wildcard Processing" is not full) is satisfied for advanced circuits, but not for the sulfur. The Interrupt activates with the wildcard set to advanced circuits, and then remain stationary because the advanced circuits manufacturing station is full. In a way, the wilcard mixes the sulfur and advanced ciruits to satisfy the condition of the interrupt.
What I expect to happen is that for both sulfur and advanced circuits, the condition of the interrupt evaluates to false. For sulfur due ("Sulfur Processing" is not full) evaluating to false, and for advanced ciruits due to ("Advanced Circuits Manufacturing" is not full) evaluating to false. As a result the interrupt does not activate and the train remain at the station.
This is because of the description given ingame:
When used in schedule interrupt, it will match the first signal that passes all (emphasis mine) wait conditions and replace the signal with that signal. (See attached image "Wildcard signal desciption.png"")
So checks for the Sulfur signal-> interrupt condition evaluates to false, and checks for the Advanced circuit signal -> interrupt condition evaluates to false.
Steps to reproduce:
1) Load attached save "TrainInterruptWildCardMixingSignals.zip"
2) Set the train directly below the engineer (at station "gearwheel Waiting Station") to automatic
3) Add a sulfur signal to the constant combinator.
4) The interrupt "Intermediates" activates and adds two stops to the waiting train, going to advanced circuits manufacturing and to advanced circuits processing.
The interrupt is meant to check if there is a pickup station and a dropoff station available for certain items. If there is a slot for the train in both the pickup and dropoff for that train, the interrupt will activate. See attached image "Interrupt.png" for clarification. The current condition is that for the sulfur, the condition "Wildcard Manufacturing" is not full evaluates to true, while "Wildcard Processing" is not full evaluates to false. And for the Advanced Circuits, that the condition "Wildcard Manufacturing" is not full evaluates to false, while "Wildcard Processing" is not full evaluates to true. See attached images for the status of the sulfur and advanced circuits stations.
The observed behaviour is that the condition for the first condition of the interrupt ("Wildcard Manufacturing" is not full) is satisfied for sulfur but not the advanced circuits, while the second condition ("Wildcard Processing" is not full) is satisfied for advanced circuits, but not for the sulfur. The Interrupt activates with the wildcard set to advanced circuits, and then remain stationary because the advanced circuits manufacturing station is full. In a way, the wilcard mixes the sulfur and advanced ciruits to satisfy the condition of the interrupt.
What I expect to happen is that for both sulfur and advanced circuits, the condition of the interrupt evaluates to false. For sulfur due ("Sulfur Processing" is not full) evaluating to false, and for advanced ciruits due to ("Advanced Circuits Manufacturing" is not full) evaluating to false. As a result the interrupt does not activate and the train remain at the station.
This is because of the description given ingame:
When used in schedule interrupt, it will match the first signal that passes all (emphasis mine) wait conditions and replace the signal with that signal. (See attached image "Wildcard signal desciption.png"")
So checks for the Sulfur signal-> interrupt condition evaluates to false, and checks for the Advanced circuit signal -> interrupt condition evaluates to false.