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 51
#![crate_name = "dces"] #![crate_type = "lib"] #![deny(warnings)] //! # DCES //! //! DCES is a library that provides a variant of the entity component system. //! //! Features: //! //! * Filter and sort entities for systems //! * Define priorities (run order) for systems //! //! **The library is still WIP. API changes are possible.** //! //! [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE) //! //! # Example //! //! ```rust //! extern crate dces; //! use dces::prelude::*; //! //! struct Name { value: String } //! //! struct PrintSystem; //! //! impl System<VecEntityContainer> for PrintSystem { //! fn run(&self, entities: &VecEntityContainer, ecm: &mut EntityComponentManager) { //! for entity in &entities.inner { //! if let Ok(comp) = ecm.borrow_component::<Name>(*entity) { //! println!("{}", comp.value); //! } //! } //! } //! } //! //! fn main() { //! let mut world = World::<VecEntityContainer>::new(); //! //! world.create_entity().with(Name { value: String::from("DCES") }).build(); //! world.create_system(PrintSystem).build(); //! //! world.run(); //! } //! ``` pub mod entity; pub mod error; pub mod prelude; pub mod system; pub mod world;