|
@@ -3,6 +3,7 @@ extern crate specs_derive;
|
|
|
#[macro_use]
|
|
|
extern crate specs_system_macro;
|
|
|
|
|
|
+use carpet::Coord;
|
|
|
use ggez::GameError;
|
|
|
use specs::prelude::*;
|
|
|
use rand::Rng;
|
|
@@ -80,12 +81,6 @@ impl Map {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-#[derive(Component)]
|
|
|
-pub struct Pos {
|
|
|
- x: usize,
|
|
|
- y: usize,
|
|
|
-}
|
|
|
-
|
|
|
#[derive(Component)]
|
|
|
pub struct Renderable {
|
|
|
glyph: carpet::CP437,
|
|
@@ -120,7 +115,7 @@ system_impl! {
|
|
|
resource mut game_board: carpet::GameBoard<carpet::CP437>,
|
|
|
resource map: Map,
|
|
|
renderable: Renderable,
|
|
|
- pos: Pos,
|
|
|
+ pos: Coord,
|
|
|
) {
|
|
|
game_board.clear();
|
|
|
for (x, y, t) in map.tiles.iter() {
|
|
@@ -136,7 +131,7 @@ system! {
|
|
|
Move (
|
|
|
resource map: Map,
|
|
|
mut motion: Motion,
|
|
|
- mut pos: Pos,
|
|
|
+ mut pos: Coord,
|
|
|
) {
|
|
|
let tgt_x = (pos.x as i8 + motion.right) as usize;
|
|
|
let tgt_y = (pos.y as i8 + motion.down) as usize;
|
|
@@ -165,7 +160,7 @@ fn main() -> Result<(), GameError> {
|
|
|
.map_size(80, 50)
|
|
|
.build()?;
|
|
|
|
|
|
- game.register::<Pos>();
|
|
|
+ game.register::<Coord>();
|
|
|
game.register::<Renderable>();
|
|
|
game.register::<Motion>();
|
|
|
game.register::<Player>();
|
|
@@ -175,7 +170,7 @@ fn main() -> Result<(), GameError> {
|
|
|
game.insert(map);
|
|
|
|
|
|
game.create_entity()
|
|
|
- .with(Pos { x: player_start.x, y: player_start.y })
|
|
|
+ .with(player_start)
|
|
|
.with(Player)
|
|
|
.with(Renderable {
|
|
|
glyph: carpet::CP437::from_char('@'),
|