diff --git a/src/debug.rs b/src/debug.rs index 63c5e1a..45a2f6b 100644 --- a/src/debug.rs +++ b/src/debug.rs @@ -9,6 +9,9 @@ use console::{ConsoleLog, exec_script}; use crate::AppState; mod console; +mod debug_event; + +pub use debug_event::DebugEvent; /// Debug system set. #[derive(SystemSet, Debug, Clone, PartialEq, Eq, Hash)] @@ -34,58 +37,6 @@ pub fn plugin(app: &mut App) { .add_plugins(console::plugin); } -#[derive(Event, Debug, Subcommand, PartialEq, Eq)] -enum DebugEvent { - /// Close the debug console. - #[command(name = "close", aliases = ["close-console"])] - CloseDebugConsole, - - /// Output a string to the console. - /// - /// Needed for logging in startup scripts, since the console isn't initialized yet. - #[command(name = "echo", aliases = ["print", "print-to-console"])] - PrintToConsole { - /// Print as error. - #[arg(short, long)] - error: bool, - /// The text to be printed in the console. - text: String, - }, - - /// Log as INFO or ERROR to stdout. - Log { - /// Log as error. - #[arg(short, long)] - error: bool, - /// The text to be logged. - text: String, - }, - - /// Start the game - StartGame, - - /// Run a tx file (the games debug scripting lang :3) - #[command(name = "run")] - RunFile { file: PathBuf }, - - /// Enable debug mode. - /// Will cause the game to behave differently (mostly, not do things by default it otherwise would.) - /// - /// Do note while all of this is part of the debug tooling, debug mode just gives the debug tools more controls of the game. - /// - /// Read: In debug mode, a lot of features of the normal game aren't enabled, and might have to be turned on explicitly. - /// This is to allow for easier testing. The console etc. will still stay available regardless, just might complain that debug mode isn't enabled on some commands. - /// - /// For best results, enable debug mode before starting the game. - /// - /// Debug mode cannot be disabled. Just restart the game lmao. - /// - /// Current debug mode behaviour: - /// - Nothing - #[command(name = "enable-debug", aliases = ["debug-enable"])] - EnableDebugMode, -} - fn start_game( mut dbg_reader: EventReader, mut log: ResMut, diff --git a/src/debug/debug_event.rs b/src/debug/debug_event.rs new file mode 100644 index 0000000..dbd2ad4 --- /dev/null +++ b/src/debug/debug_event.rs @@ -0,0 +1,56 @@ +use std::path::PathBuf; + +use bevy::prelude::*; +use clap::Subcommand; + +#[derive(Event, Debug, Subcommand, PartialEq, Eq)] +pub enum DebugEvent { + /// Close the debug console. + #[command(name = "close", aliases = ["close-console"])] + CloseDebugConsole, + + /// Output a string to the console. + /// + /// Needed for logging in startup scripts, since the console isn't initialized yet. + #[command(name = "echo", aliases = ["print", "print-to-console"])] + PrintToConsole { + /// Print as error. + #[arg(short, long)] + error: bool, + /// The text to be printed in the console. + text: String, + }, + + /// Log as INFO or ERROR to stdout. + Log { + /// Log as error. + #[arg(short, long)] + error: bool, + /// The text to be logged. + text: String, + }, + + /// Start the game + StartGame, + + /// Run a tx file (the games debug scripting lang :3) + #[command(name = "run")] + RunFile { file: PathBuf }, + + /// Enable debug mode. + /// Will cause the game to behave differently (mostly, not do things by default it otherwise would.) + /// + /// Do note while all of this is part of the debug tooling, debug mode just gives the debug tools more controls of the game. + /// + /// Read: In debug mode, a lot of features of the normal game aren't enabled, and might have to be turned on explicitly. + /// This is to allow for easier testing. The console etc. will still stay available regardless, just might complain that debug mode isn't enabled on some commands. + /// + /// For best results, enable debug mode before starting the game. + /// + /// Debug mode cannot be disabled. Just restart the game lmao. + /// + /// Current debug mode behaviour: + /// - Nothing + #[command(name = "enable-debug", aliases = ["debug-enable"])] + EnableDebugMode, +}