From 8359c5391f1f87d1a29df94ae90d431d432bc344 Mon Sep 17 00:00:00 2001 From: "1992414357@qq.com" <1992414357@qq.com> Date: Mon, 9 Jun 2025 03:26:09 +0800 Subject: 完成了控制台部分 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/src/data/controller/runtime/implements.rs | 30 ++++++++++++++++++++++++++ core/src/data/controller/runtime/structs.rs | 3 ++- 2 files changed, 32 insertions(+), 1 deletion(-) (limited to 'core/src/data/controller/runtime') diff --git a/core/src/data/controller/runtime/implements.rs b/core/src/data/controller/runtime/implements.rs index b79890e..840ea2c 100644 --- a/core/src/data/controller/runtime/implements.rs +++ b/core/src/data/controller/runtime/implements.rs @@ -4,6 +4,7 @@ use log::trace; use crate::data::controller::runtime::structs::ControllerRuntime; use crate::data::message::enums::{ControlMessage, GameMessage}; use crate::data::message::traits::MessageManager; +use crate::data::player::structs::Account; use crate::service::service_types::ServiceType; /// Message manager for controller-side runtime @@ -26,4 +27,33 @@ impl ControllerRuntime { trace!("[Controller Runtime] Closed."); } } + + pub fn message(&mut self, message: String) { + self.send_message(ControlMessage::Msg(message)); + } + + pub fn press_button(&mut self, key: u8) { + self.send_message(ControlMessage::Pressed(key)); + } + + pub fn release_button(&mut self, key: u8) { + self.send_message(ControlMessage::Released(key)); + } + + pub fn change_axis(&mut self, key: u8, ax_val: f64) { + self.send_message(ControlMessage::Axis(key, ax_val)); + } + + pub fn change_direction(&mut self, key: u8, x: f64, y: f64) { + self.send_message(ControlMessage::Dir(key, (x, y))); + } + + pub fn pop(&mut self) -> Option { + self.receive(0, self.service_type.clone()) + } + + fn send_message (&mut self, msg: ControlMessage) { + let service = self.service_type.clone(); + self.send(msg, 0, service); + } } \ No newline at end of file diff --git a/core/src/data/controller/runtime/structs.rs b/core/src/data/controller/runtime/structs.rs index 7be2cd6..bfd39c5 100644 --- a/core/src/data/controller/runtime/structs.rs +++ b/core/src/data/controller/runtime/structs.rs @@ -10,11 +10,12 @@ use crate::service::service_types::ServiceType; #[derive(Default)] pub struct ControllerRuntime { + pub(crate) service_type: ServiceType, pub(crate) received: HashMap<(ServiceType, u8), VecDeque>, pub(crate) send: HashMap<(ServiceType, u8), VecDeque>, pub(crate) player: Player, pub game_info: GameInfo, - pub close: AtomicBool + pub close: AtomicBool, } \ No newline at end of file -- cgit