From 3157af2c2bb28d517646d7ebbd607d2f56cce914 Mon Sep 17 00:00:00 2001 From: Schrottkatze Date: Wed, 18 Jun 2025 15:40:33 +0200 Subject: [PATCH] refactor console to take `DebugEvent`s directly --- src/game/debug.rs | 10 ++++++++-- src/game/debug/console.rs | 2 +- src/game/debug/console/cli.rs | 13 ++----------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/game/debug.rs b/src/game/debug.rs index 6eeee43..1ed78b9 100644 --- a/src/game/debug.rs +++ b/src/game/debug.rs @@ -1,11 +1,17 @@ use bevy::prelude::*; +use clap::Subcommand; mod console; -#[derive(Event)] +#[derive(Event, Debug, Subcommand)] enum DebugEvent { + /// Close the debug console. + #[command(name = "close", aliases = ["close-console"])] CloseDebugConsole, - PrintToConsole(String), + + /// Output a string to the console. + #[command(name = "echo", aliases = ["print", "print-to-console"])] + PrintToConsole { text: String }, } pub(super) fn plugin(app: &mut App) { diff --git a/src/game/debug/console.rs b/src/game/debug/console.rs index d00d656..449bd1b 100644 --- a/src/game/debug/console.rs +++ b/src/game/debug/console.rs @@ -98,7 +98,7 @@ fn execute_console_events( for ev in ev_reader.read() { match ev { DebugEvent::CloseDebugConsole => next_state.set(ConsoleState::Closed), - DebugEvent::PrintToConsole(s) => log.output(s), + DebugEvent::PrintToConsole { text } => log.output(text), _ => todo!(), }; } diff --git a/src/game/debug/console/cli.rs b/src/game/debug/console/cli.rs index 4fe321d..0441504 100644 --- a/src/game/debug/console/cli.rs +++ b/src/game/debug/console/cli.rs @@ -12,21 +12,12 @@ pub(super) fn respond(line: &str) -> Result { return Ok(DebugEvent::PrintToConsole(s)); } - Ok(match cli?.cmd { - Commands::Close => DebugEvent::CloseDebugConsole, - Commands::Echo { text } => DebugEvent::PrintToConsole(text), - }) + Ok(cli?.cmd) } #[derive(Debug, Parser)] #[command(multicall = true)] struct Cli { #[command(subcommand)] - cmd: Commands, -} - -#[derive(Debug, Subcommand)] -enum Commands { - Close, - Echo { text: String }, + cmd: DebugEvent, }