Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Only trigger state transitons if
next_state != old_state
(#8359)
# Objective Fix #8191. Currently, a state transition will be triggered whenever the `NextState` resource has a value, even if that "transition" is to the same state as the previous one. This caused surprising/meaningless behavior, such as the existence of an `OnTransition { from: A, to: A }` schedule. ## Solution State transition schedules now only run if the new state is not equal to the old state. Change detection works the same way, only being triggered when the states compare not equal. --- ## Changelog - State transition schedules are no longer run when transitioning to and from the same state. ## Migration Guide State transitions are now only triggered when the exited and entered state differ. This means that if the world is currently in state `A`, the `OnEnter(A)` schedule (or `OnExit`) will no longer be run if you queue up a state transition to the same state `A`.
- Loading branch information