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 52 53 54 55 56 57
extern crate keeshond; extern crate keeshond_datapack; #[macro_use] extern crate log; #[macro_use] extern crate try_or; extern crate smallvec; extern crate bit_set; extern crate enum_map; extern crate rustc_hash; extern crate serde; extern crate serde_json; extern crate bincode; extern crate block_grid; #[macro_use] extern crate strum_macros; use crate::visual::{LerpResetThinker, ActorThinker, TextThinker, DrawableSortThinker, DrawableDrawer, PixelSnap}; use crate::world::CameraThinker; use crate::tilemap::TilemapThinker; use crate::collision::{CollisionThinker, CollisionControl}; use keeshond::scene::{SceneType, SceneConfig}; pub use keeshond_datapack::LoadErrorMode; pub mod spawnable; pub mod world; pub mod visual; pub mod tilemap; pub mod collision; mod util; #[cfg(test)] mod tests; pub const SYSTEM_PRIORITY_PRE_FRAME : i32 = -16777216; pub const SYSTEM_PRIORITY_COLLISION : i32 = 100000; pub const SYSTEM_PRIORITY_POST_FRAME : i32 = 16777216; pub trait DefaultSystems { fn default_systems(&mut self, load_error : LoadErrorMode, pixel_snap : PixelSnap, collision_cel_size : u16) -> &mut Self; } impl<T : SceneType + 'static> DefaultSystems for SceneConfig<T> { fn default_systems(&mut self, load_error : LoadErrorMode, pixel_snap : PixelSnap, collision_cel_size : u16) -> &mut Self { self.thinker(LerpResetThinker::new()) .thinker(CameraThinker::new()) .thinker(ActorThinker::new(load_error)) .thinker(TextThinker::new(load_error)) .thinker(TilemapThinker::new(load_error)) .thinker(DrawableSortThinker::new()) .thinker(CollisionThinker::new()) .drawer(DrawableDrawer::new(pixel_snap)) .singleton(CollisionControl::new(collision_cel_size)) } }