From 78a52142d191d25a74cb2124d5cca8a69d51ba7f Mon Sep 17 00:00:00 2001 From: Griffin Smith Date: Sat, 6 Jul 2019 15:32:38 -0400 Subject: Make all drawing happen to a viewport We now have an inner and outer viewport, and entity positions are relative to the inner one while drawing happens to the outer one. --- src/display/mod.rs | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/display/mod.rs') diff --git a/src/display/mod.rs b/src/display/mod.rs index 5dba48b44d9a..664aaf319cc7 100644 --- a/src/display/mod.rs +++ b/src/display/mod.rs @@ -1,9 +1,18 @@ pub mod draw_box; pub mod utils; +pub mod viewport; +use crate::types::Positioned; pub use draw_box::{make_box, BoxStyle}; use std::io::{self, Write}; use termion::{clear, cursor, style}; +pub use viewport::Viewport; pub fn clear(out: &mut T) -> io::Result<()> { write!(out, "{}{}{}", clear::All, style::Reset, cursor::Goto(1, 1)) } + +pub trait Draw: Positioned { + /// Draw this entity, assuming the character is already at the correct + /// position + fn do_draw(&self, out: &mut W) -> io::Result<()>; +} -- cgit 1.4.1