1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
#![allow(clippy::missing_safety_doc)]
#![allow(clippy::module_inception)]
#![allow(clippy::needless_doctest_main)]
#![allow(clippy::unused_unit)]
//! Sparsey is a sparse set-based Entity Component System with lots of features
//! and nice syntax \~( ˘▾˘\~)
//! ```
//! use sparsey::prelude::*;
//!
//! struct Position(f32, f32);
//! struct Velocity(f32, f32);
//!
//! fn main() {
//! let mut world = World::default();
//! world.register::<Position>();
//! world.register::<Velocity>();
//!
//! world.create((Position(0.0, 0.0), Velocity(1.0, 2.0)));
//! world.create((Position(0.0, 0.0), Velocity(3.0, 4.0)));
//!
//! let mut positions = world.borrow_mut::<Position>();
//! let velocities = world.borrow::<Velocity>();
//!
//! (&mut positions, &velocities).for_each(|(position, velocity)| {
//! position.0 += velocity.0;
//! position.1 += velocity.1;
//! });
//! }
//! ```
pub mod components;
pub mod layout;
pub mod query;
pub mod resources;
pub mod storage;
pub mod systems;
pub mod world;
/// Re-exports the most commonly used items.
pub mod prelude {
pub use crate::layout::{Layout, LayoutGroupDescriptor};
pub use crate::query::{IntoEntityIter, Query, QueryFilters};
pub use crate::resources::{Res, ResMut, Resources};
pub use crate::storage::Entity;
pub use crate::systems::Schedule;
pub use crate::world::{Comp, CompMut, Entities, World};
}
pub(crate) mod utils;