- **[Added]** `RandomPickState` which randomly pick one of the children to be executed. All children has uniform probability being picked. - **[Added]** added `get_status` method in `State` which return the status of the State. - **[Changed]** name for `State` is now optional, the default is its class name. - **[Changed]** streamlined `ParallelState` to prevent potential interrupt race issues. Enable `AtLeastOneState` to overwrite two function for its functionality. - **[Changed]** `ParallelState` now ignores empty/None States if passed in as children. - **[Fixed]** condition in `AtLeastOneState` where other states aren't destroyed when exiting under success condition.
0.3.5
- **[Added]** `SelectorState` and `SequentialState` now has a flowout value which is from the last `succcess` state, None otherwise. - **[Changed]** `add_transition_on_complete` now has option to not ignore exceptions (default is always not). - **[Fixed]** race condition in `SequentialState` where the internal states are `tick()` before they are set/initialized.
0.3.4
- **[Added]** Added example of the visualization on first page. - **[Added]** `behavior_machine.visualization` which has function `visualize_behavior_machine` that can visualize any machine and it's subcomponents. - **[Added]** Shorthand transition to transition after certain time. - **[Added]** Examples and tests of visualization under the folder `viz_test` - **[Fixed]** Machine now only waits for the remaining time instead of always waiting the fixed amount. Also Fixed tests with weird behavior about the waiting. - **[Fixed]** Possible bug where Atleast returns result due to race condition. - **[Fixed]** bug where interrupts crashs the application if called before the state starts. - **[Fixed]** bug in test where sometimes states completed way too fast.
0.3.3
- **[Added]** `SaveFlowState`, `SetFlowFromBoardState`,`SetBoardState`,`GetBoardState` and `SetFlowState`. Three states that help with board access. - **[Added]** Tests for the three flow access states.
0.3.2
- **[Added]** `AtLeastOneState` that ends when one of its children states completes (all are run parallely) and return `success`.
0.3.1
- **[Added]** Added `SelectorState` that mimics `Selector` in behavior trees. The state run the children in order until one of them returns `success`. - **[Added]** debugging function `get_debug_name` that returns a string with name + type to help debugging and loggin. - **[Added]** More tests for different edge cases around transitions when reusing nodes. - **[Changed]** `check_name` replace `checkName` and `check_status` replace `checkStatus`. The old code redirects to the new functions but throws depreciating warnings. - **[Fixed]** linting problems throughout the program.