50 lines
1.3 KiB
Rust
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;
|
|
}
|
|
}
|