| Crates.io | beet_flow |
| lib.rs | beet_flow |
| version | 0.0.6 |
| created_at | 2024-07-27 05:30:13.14425+00 |
| updated_at | 2025-07-25 22:53:25.11468+00 |
| description | An ECS control flow library |
| homepage | https://beetstack.dev |
| repository | https://github.com/mrchantey/beet |
| max_upload_size | |
| id | 1317077 |
| size | 239,140 |
beet_flowBeet Flow is an ECS control flow library, built with Bevy Observers. Being ECS first gives Beet a high level of flexibility and modularity.
Currently implemented paradigms:
A demonstration of a Sequence control flow common in behavior trees
Using BeetDebugPlugin will log the name of each action as it is triggered.
use bevy::prelude::*;
use beet_flow::prelude::*;
let mut app = App::new();
app
.add_plugins((
BeetFlowPlugin::default(),
BeetDebugPlugin::default()
))
.world_mut()
.spawn((
Name::new("My Behavior"),
Sequence
))
.with_child((
Name::new("Hello"),
ReturnWith(RunResult::Success),
))
.with_child((
Name::new("World"),
ReturnWith(RunResult::Success),
))
.trigger(OnRun::local());
app.world_mut().flush();
OnMutate observers, they should probably replace most OnInsert observers we're using