Reworks LogicBlocks to ensure OnEnter/OnExit is called in the correct order for states that are reused.
[x] Adds support for multiple initial state types to the diagram generator
[x] Adds support for partial states spread across files to the diagram generator.
[x] Simplifies the LogicBlock core state change mechanism.
[x] Adds internal state to StateLogic so callbacks can be preserved inside the state rather than inside the logic block. This is the mechanism which enables the fix above.
[x] Updates all API usage, fixes tests, and introduces new tests for desired use cases.
Reworks LogicBlocks to ensure OnEnter/OnExit is called in the correct order for states that are reused.
StateLogic
so callbacks can be preserved inside the state rather than inside the logic block. This is the mechanism which enables the fix above.