diff --git a/src/main.rs b/src/main.rs index 3532829..6f6dc79 100644 --- a/src/main.rs +++ b/src/main.rs @@ -246,29 +246,27 @@ impl GameState for State { new_runstate = RunState::AwaitingInput; } RunState::AwaitingInput => { - while particle_system::check_queue(&self.ecs) { - // We refresh the index, and run anything that might - // still be in the queue, just to make 100% sure that - // there are no lingering effects from the last tick. - self.refresh_indexes(); - effects::run_effects_queue(&mut self.ecs); - // Sanity-checking that the player actually *should* - // be taking a turn before giving them one. If they - // don't have a turn component, go back to ticking. - let mut can_act = false; - { - let player_entity = self.ecs.fetch::(); - let turns = self.ecs.read_storage::(); - if let Some(_) = turns.get(*player_entity) { - can_act = true; - } - } - if can_act { - new_runstate = player_input(self, ctx); - } else { - new_runstate = RunState::Ticking; + // We refresh the index, and run anything that might + // still be in the queue, just to make 100% sure that + // there are no lingering effects from the last tick. + self.refresh_indexes(); + effects::run_effects_queue(&mut self.ecs); + // Sanity-checking that the player actually *should* + // be taking a turn before giving them one. If they + // don't have a turn component, go back to ticking. + let mut can_act = false; + { + let player_entity = self.ecs.fetch::(); + let turns = self.ecs.read_storage::(); + if let Some(_) = turns.get(*player_entity) { + can_act = true; } } + if can_act { + new_runstate = player_input(self, ctx); + } else { + new_runstate = RunState::Ticking; + } } RunState::Ticking => { while new_runstate == RunState::Ticking && particle_system::check_queue(&self.ecs) { diff --git a/src/spawner.rs b/src/spawner.rs index eca3bf4..7b8ec59 100644 --- a/src/spawner.rs +++ b/src/spawner.rs @@ -23,6 +23,7 @@ use super::{ Skills, TileType, Viewshed, + BlocksTile, }; use crate::data::entity; use crate::gamesystem::*; @@ -43,6 +44,7 @@ pub fn player(ecs: &mut World, player_x: i32, player_y: i32) -> Entity { let player = ecs .create_entity() .with(Position { x: player_x, y: player_y }) + .with(BlocksTile {}) .with(Renderable { glyph: rltk::to_cp437('@'), fg: RGB::named(rltk::YELLOW),