summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
new file mode 100644
index 0000000..81583b8
--- /dev/null
+++ b/src/main.rs
@@ -0,0 +1,61 @@
+extern crate pancurses;
+use pancurses::{initscr, endwin, noecho, start_color, Input, init_pair, COLOR_YELLOW, COLOR_BLACK, COLOR_WHITE, COLOR_BLUE, COLOR_GREEN, cbreak, curs_set};
+
+mod map;
+mod view;
+mod list;
+mod character;
+mod location;
+
+use map::Map;
+use view::View;
+use list::List;
+use character::Character;
+use location::Location;
+
+fn init() -> pancurses::Window {
+ let main = initscr();
+ main.clear();
+ noecho();
+ cbreak();
+ curs_set(0);
+ main.timeout(100);
+ start_color();
+ init_pair(1, COLOR_GREEN, COLOR_BLACK);
+ init_pair(2, COLOR_YELLOW, COLOR_BLACK);
+ init_pair(3, COLOR_WHITE, COLOR_WHITE);
+ init_pair(4, COLOR_WHITE, COLOR_BLUE);
+ main
+}
+
+fn main() {
+
+ let main = init();
+
+ let mut map = Map::new();
+ let mut view = View::new(main.get_max_yx(), &map.window);
+ let cursor = Character::new('X', 3, Location{x:150,y:150});
+
+ map.fill();
+ let list = List::new(map.impassable.to_vec());
+ list.draw(&map.window);
+ cursor.draw(&map.window);
+
+ let paused = false;
+ loop{
+ match main.getch() {
+ Some(Input::Character(c)) => break,
+ _ => ()
+ }
+
+ if !paused {
+ list.action();
+ }
+ map.fill();
+ list.draw(&map.window);
+ cursor.draw(&map.window);
+ view.center(cursor, map.window.get_max_yx());
+ }
+
+ endwin();
+}