moria/src/debug.rs

50 lines
1.3 KiB
Rust

// use std::f32::consts::TAU;
use bevy::{ecs::schedule::ShouldRun, prelude::*};
// use bevy_prototype_debug_lines::*;
// use crate::illumination::Illumination;
#[derive(Default)]
pub struct Debug {
on: bool,
}
pub fn debug_run_criteria(debug: Res<Debug>) -> ShouldRun {
if debug.on {
ShouldRun::Yes
} else {
ShouldRun::No
}
}
// pub fn debug_draw_illumination(
// query: Query<(&GlobalTransform, &Illumination)>,
// mut lines: ResMut<DebugLines>,
// ) {
// for (trans, illumination) in query.iter() {
// draw_sphere(&mut lines, trans.translation, illumination.radius);
// }
// }
// fn draw_sphere(lines: &mut DebugLines, c: Vec3, r: f32) {
// const THICKNESS: f32 = 0.1;
// const MAX_LINES: usize = 10;
// for i in 0..MAX_LINES {
// let angle1 = (i as f32 / MAX_LINES as f32) * TAU;
// let angle2 = ((i + 1) as f32 / MAX_LINES as f32) * TAU;
// let start = Vec3::new(r * f32::cos(angle1), 1.0, r * f32::sin(angle1)) + c;
// let end = Vec3::new(r * f32::cos(angle2), 1.0, r * f32::sin(angle2)) + c;
// lines.line(start, end, THICKNESS);
// }
// }
pub fn toggle_debug(mut debug: ResMut<Debug>, input: Res<Input<KeyCode>>) {
if input.pressed(KeyCode::J) && input.pressed(KeyCode::K) && input.just_pressed(KeyCode::L) {
debug.on = !debug.on;
}
}