add option to turn devtools off #17
2 changed files with 35 additions and 10 deletions
|
@ -19,7 +19,9 @@ pub fn draw(state: &crate::State, _engine: &comfy::EngineContext<'_>) {
|
||||||
ZLayer::MapMax - i,
|
ZLayer::MapMax - i,
|
||||||
Vec2::ONE
|
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());
|
draw_circle(state.ghost.overworld_pos, 0.5, RED, ZLayer::Ghost.into());
|
||||||
|
|
41
src/main.rs
41
src/main.rs
|
@ -10,17 +10,31 @@ mod activities;
|
||||||
mod game;
|
mod game;
|
||||||
mod ui;
|
mod ui;
|
||||||
|
|
||||||
|
use std::env::var;
|
||||||
|
|
||||||
use self::{
|
use self::{
|
||||||
activities::{house::HouseState, overworld::worldgen::Overworld, Activity},
|
activities::{house::HouseState, overworld::worldgen::Overworld, Activity},
|
||||||
game::Ghost
|
game::Ghost
|
||||||
};
|
};
|
||||||
use comfy::{
|
use comfy::{
|
||||||
etagere::euclid::default, init_game_config, pollster, run_comfy_main_async,
|
init_game_config, pollster, run_comfy_main_async, DevConfig, EngineContext,
|
||||||
DevConfig, EngineContext, EngineState, GameConfig, GameLoop, HashMap, IVec2
|
EngineState, GameConfig, GameLoop, HashMap, IVec2
|
||||||
};
|
};
|
||||||
|
|
||||||
const GAME_NAME: &str = "Powercreep";
|
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)]
|
#[derive(Debug, Default)]
|
||||||
struct State {
|
struct State {
|
||||||
setup_called: bool,
|
setup_called: bool,
|
||||||
|
@ -28,7 +42,9 @@ struct State {
|
||||||
ghost: Ghost,
|
ghost: Ghost,
|
||||||
overworld: Overworld,
|
overworld: Overworld,
|
||||||
houses: HashMap<IVec2, HouseState>,
|
houses: HashMap<IVec2, HouseState>,
|
||||||
score: f32
|
score: f32,
|
||||||
|
/// show dev tools
|
||||||
|
dev: bool
|
||||||
}
|
}
|
||||||
|
|
||||||
impl State {
|
impl State {
|
||||||
|
@ -52,7 +68,10 @@ impl State {
|
||||||
|
|
||||||
impl GameLoop for State {
|
impl GameLoop for State {
|
||||||
fn new(_c: &mut EngineState) -> Self {
|
fn new(_c: &mut EngineState) -> Self {
|
||||||
Self::default()
|
Self {
|
||||||
|
dev: dev_from_env(),
|
||||||
|
..Default::default()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn update(&mut self, ctx: &mut EngineContext<'_>) {
|
fn update(&mut self, ctx: &mut EngineContext<'_>) {
|
||||||
|
@ -67,15 +86,19 @@ impl GameLoop for State {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn config(config: GameConfig) -> GameConfig {
|
fn config(config: GameConfig) -> GameConfig {
|
||||||
let dev = DevConfig {
|
let dev = if dev_from_env() {
|
||||||
#[cfg(debug_assertions)]
|
DevConfig {
|
||||||
show_fps: true,
|
show_fps: true,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Default::default()
|
||||||
};
|
};
|
||||||
GameConfig {
|
GameConfig {
|
||||||
tonemapping_enabled: true,
|
tonemapping_enabled: true,
|
||||||
dev,
|
dev,
|
||||||
..Default::default()
|
target_framerate: 165,
|
||||||
|
..config
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue