diff options
Diffstat (limited to 'src/entities')
-rw-r--r-- | src/entities/character.rs | 25 | ||||
-rw-r--r-- | src/entities/mod.rs | 1 |
2 files changed, 25 insertions, 1 deletions
diff --git a/src/entities/character.rs b/src/entities/character.rs index e40b7b988e..f436608ea5 100644 --- a/src/entities/character.rs +++ b/src/entities/character.rs @@ -1,15 +1,38 @@ +use proptest_derive::Arbitrary; +use std::io::{self, Write}; +use termion::cursor; + +use crate::display; use crate::types::{Position, Speed}; const DEFAULT_SPEED: Speed = Speed(100); +#[derive(Debug, PartialEq, Eq, Arbitrary)] pub struct Character { - position: Position, + /// The position of the character, relative to the game + pub position: Position, } impl Character { + pub fn new() -> Character { + Character { + position: Position { x: 0, y: 0 }, + } + } + pub fn speed(&self) -> Speed { Speed(100) } } positioned!(Character); + +impl display::Draw for Character { + fn do_draw<W: Write>(&self, out: &mut W) -> io::Result<()> { + write!( + out, + "@{}", + cursor::Left(1), + ) + } +} diff --git a/src/entities/mod.rs b/src/entities/mod.rs index 7889122666..0320f2ddd9 100644 --- a/src/entities/mod.rs +++ b/src/entities/mod.rs @@ -1 +1,2 @@ pub mod character; +pub use character::Character; |