diff options
Diffstat (limited to 'src/gameloop.rs')
| -rw-r--r-- | src/gameloop.rs | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/src/gameloop.rs b/src/gameloop.rs index d573868..e69de29 100644 --- a/src/gameloop.rs +++ b/src/gameloop.rs @@ -1,70 +0,0 @@ -use crate::generation::*; - -use colored::Colorize; -use crossterm::{ - cursor::{Hide, MoveTo, Show}, - event, - event::{poll, Event, KeyCode, KeyEvent}, - style::Stylize, - terminal, - terminal::{EnterAlternateScreen, LeaveAlternateScreen}, - ExecutableCommand, QueueableCommand, -}; -use rand::{thread_rng, Rng}; -use std::{ - io::{self, Write}, - thread::sleep, - time::Duration, -}; - - -pub fn run() { - let mut stdout = io::stdout(); - let mut frame: Gen = new_gen(); - let mut nxt; - - terminal::enable_raw_mode().unwrap(); - stdout.execute(EnterAlternateScreen).unwrap(); - stdout.execute(Hide).unwrap(); - - 'gameloop: loop { - while event::poll(Duration::default()).unwrap() { - if let Event::Key(key_event) = event::read().unwrap() { - match key_event.code { - KeyCode::Esc | KeyCode::Char('q') => { - break 'gameloop; - } - KeyCode::Char('s') => { - frame = new_gen(); - render_gen(&mut stdout, &frame) - } - - KeyCode::Char('n') => { - nxt = next_gen(&mut frame); - render_gen(&mut stdout, &nxt) - } - KeyCode::Char('a') => 'animate: loop { - nxt = next_gen(&mut frame); - render_gen(&mut stdout, &nxt); - sleep(Duration::from_millis(16)); - if (poll(Duration::from_millis(1))).unwrap() { - if let Event::Key(k) = event::read().unwrap() { - match k.code { - KeyCode::Char('q') => break 'animate, - _ => {} - } - } - } else { - } - }, - _ => {} - } - } - } - } - - stdout.execute(Show).unwrap(); - stdout.execute(LeaveAlternateScreen).unwrap(); - terminal::disable_raw_mode().unwrap(); - -} |
