diff options
| author | 1992414357@qq.com <1992414357@qq.com> | 2025-05-29 14:20:04 +0800 |
|---|---|---|
| committer | 1992414357@qq.com <1992414357@qq.com> | 2025-05-29 14:20:04 +0800 |
| commit | 3d23632d7c6330e0ec98dad53656dfed5f5767b0 (patch) | |
| tree | d8d59726ca5b046b55ba502f1b8d5ba3a561a569 /core/src/pad_service/client.rs | |
| parent | 9d3d6d4195e58c51166811d8357a331d53c4cdd4 (diff) | |
1. 优化了服务器的消息处理方式
2. 将c和c#的绑定移动到了./bindings/文件夹
Diffstat (limited to 'core/src/pad_service/client.rs')
| -rw-r--r-- | core/src/pad_service/client.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/core/src/pad_service/client.rs b/core/src/pad_service/client.rs index c0b8282..ea0f4ba 100644 --- a/core/src/pad_service/client.rs +++ b/core/src/pad_service/client.rs @@ -21,6 +21,7 @@ pub mod nogamepads_client { use crate::DEFAULT_PORT; use crate::pad_data::game_profile::game_profile::GameProfile; use crate::pad_data::pad_messages::nogamepads_message_encoder::NgpdMessageEncoder; + use crate::pad_data::pad_messages::nogamepads_messages::ControlMessage::{Axis, Dir, Msg, Pressed, Released}; type WriteList = Arc<Mutex<VecDeque<ControlMessage>>>; type ReadList = Arc<Mutex<VecDeque<GameMessage>>>; @@ -129,6 +130,30 @@ pub mod nogamepads_client { // 客户端消息管理 impl PadClient { + pub fn key_press(&self, key_id: u8) { + self.put_msg(Pressed(key_id)); + } + + pub fn key_release(&self, key_id: u8) { + self.put_msg(Released(key_id)); + } + + pub fn change_axis(&self, axis_id: u8, axis: f64) { + self.put_msg(Axis(axis_id, axis)); + } + + pub fn change_direction(&self, direction_id: u8, x: f64, y: f64) { + self.put_msg(Dir(direction_id, (x.clamp(0.0, 1.0), y.clamp(0.0, 1.0)))); + } + + pub fn say_str(&self, msg: &str) { + self.put_msg(Msg(msg.to_owned())); + } + + pub fn say(&self, msg: String) { + self.put_msg(Msg(msg)); + } + pub fn put_msg(&self, msg: ControlMessage) { let mut guard = self.write_list.lock().unwrap(); guard.push_back(msg); |
