diff --git a/src/components.rs b/src/components.rs new file mode 100644 index 0000000..6887021 --- /dev/null +++ b/src/components.rs @@ -0,0 +1,22 @@ +use rltk::RGB; + +use specs::prelude::*; + +#[derive(Component)] +pub struct Position { + pub x: i32, + pub y: i32, +} + +#[derive(Component)] +pub struct Renderable { + pub glyph: u8, + pub fg: RGB, + pub bg: RGB, +} + +#[derive(Component)] +pub struct LeftMover {} + +#[derive(Component, Debug)] +pub struct Player {} diff --git a/src/main.rs b/src/main.rs index ea8f72f..8c4c543 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,33 +5,16 @@ mod rect; pub use rect::*; mod map; pub use map::*; +mod components; +pub use components::*; #[macro_use] extern crate specs_derive; -#[derive(Component)] -pub struct Position { - x: i32, - y: i32, -} - -#[derive(Component)] -pub struct Renderable { - glyph: u8, - fg: RGB, - bg: RGB, -} - pub struct State { ecs: World, } -#[derive(Component)] -pub struct LeftMover {} - -#[derive(Component, Debug)] -pub struct Player {} - fn try_move_player(delta_x: i32, delta_y: i32, ecs: &mut World) { let mut positions = ecs.write_storage::(); let mut players = ecs.write_storage::();