diff --git a/build.rs b/build.rs index 11082bd..15a5cd1 100644 --- a/build.rs +++ b/build.rs @@ -207,7 +207,7 @@ fn process_dir + Copy>( } else if path.extension().map(|ext| ext == "svg").unwrap_or(false) { process_svg(&path, dir, writer, groups); } else if path.extension().map(|ext| ext == "ogg").unwrap_or(false) { - process_ogg(&path, dir, writer, groups); + process_ogg(&path, writer, groups); } } } @@ -258,9 +258,8 @@ fn process_svg + Copy, Q: AsRef>( ); } -fn process_ogg + Copy, Q: AsRef>( +fn process_ogg + Copy>( file: P, - dir: Q, writer: &mut AssetsWriter, groups: &[String] ) { diff --git a/src/activities/overworld/mod.rs b/src/activities/overworld/mod.rs index d938547..50c354f 100644 --- a/src/activities/overworld/mod.rs +++ b/src/activities/overworld/mod.rs @@ -19,7 +19,9 @@ pub fn draw(state: &crate::State, _engine: &comfy::EngineContext<'_>) { ZLayer::MapMax - i, Vec2::ONE ); - draw_rect_outline(coords.as_vec2(), Vec2::ONE, 0.1, RED, 10); + if state.dev { + draw_rect_outline(coords.as_vec2(), Vec2::ONE, 0.1, RED, 10); + } } } draw_circle(state.ghost.overworld_pos, 0.5, RED, ZLayer::Ghost.into()); @@ -36,6 +38,8 @@ fn update_move_player(state: &mut State, ctx: &mut EngineContext<'_>) { state.ghost.overworld_movement_pending ); state.ghost.update_overworld_pos(now); + } + if state.ghost.overworld_movement_pending != Vec2::ZERO { return; } diff --git a/src/main.rs b/src/main.rs index 608203d..9573f72 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,17 +10,31 @@ mod activities; mod game; mod ui; +use std::env::var; + use self::{ activities::{house::HouseState, overworld::worldgen::Overworld, Activity}, game::Ghost }; use comfy::{ - etagere::euclid::default, init_game_config, pollster, run_comfy_main_async, - DevConfig, EngineContext, EngineState, GameConfig, GameLoop, HashMap, IVec2 + init_game_config, pollster, run_comfy_main_async, DevConfig, EngineContext, + EngineState, GameConfig, GameLoop, HashMap, IVec2 }; const GAME_NAME: &str = "Powercreep"; +/// true if devtools should be enable +fn dev_from_env() -> bool { + match var("DEV").as_ref().map(|f| f.as_str()) { + Ok("false") => false, + Ok("true") => true, + #[cfg(debug_assertions)] + _ => true, + #[cfg(not(debug_assertions))] + _ => false + } +} + #[derive(Debug, Default)] struct State { setup_called: bool, @@ -28,7 +42,9 @@ struct State { ghost: Ghost, overworld: Overworld, houses: HashMap, - score: f32 + score: f32, + /// show dev tools + dev: bool } impl State { @@ -52,7 +68,10 @@ impl State { impl GameLoop for State { fn new(_c: &mut EngineState) -> Self { - Self::default() + Self { + dev: dev_from_env(), + ..Default::default() + } } fn update(&mut self, ctx: &mut EngineContext<'_>) { @@ -70,15 +89,19 @@ impl GameLoop for State { } fn config(config: GameConfig) -> GameConfig { - let dev = DevConfig { - #[cfg(debug_assertions)] - show_fps: true, - ..Default::default() + let dev = if dev_from_env() { + DevConfig { + show_fps: true, + ..Default::default() + } + } else { + Default::default() }; GameConfig { tonemapping_enabled: true, dev, - ..Default::default() + target_framerate: 165, + ..config } }