shipyard_app
aims to provide a standardized "Plugin" interface on top of the shipyard
ECS crate.
This allows for codebases to more easily divide up many systems and workloads without having to declare all systems in one big workload builder in the root of an application.
Example from test/tree.rs
use shipyard_app::{AppBuilder, Plugin};
...
/// Registers
#[derive(Default)]
pub struct TreePlugin;
impl Plugin for TreePlugin {
fn build(&self, app: &mut AppBuilder) {
app.update_pack::<ChildOf>("update in response to ChildOf changes");
app.add_system(indexing::tree_indexing);
}
}
At the moment, shipyard_app is based off the master branch of https://github.com/leudz/shipyard, so until the updates to WorkloadBuilder are published, you must be on the master branch of shipyard.
The initial interface takes a lot of inspiration from bevy_app. Thanks @cart!
Licensed under either of Apache License, Version 2.0 or MIT license at your option.Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.