diff options
| author | Weicao-CatilGrass <1992414357@qq.com> | 2025-04-12 13:47:00 +0800 |
|---|---|---|
| committer | Weicao-CatilGrass <1992414357@qq.com> | 2025-04-12 13:47:00 +0800 |
| commit | d8dab41672fd757490dfbce44dfb3475ccc73b44 (patch) | |
| tree | 5b289f6e3b593329fddb7e66c0bde9049619f195 | |
| parent | e3a61d6c644dcf898c726f7c870b17bbf3fe6c59 (diff) | |
修改 gamepad_layouts.rs 名为 layouts.rs
合并 message.rs 到 player.rs
修改 phantom_link_server.rs 名为 server.rs
| -rw-r--r-- | core/server_test/src/main.rs | 2 | ||||
| -rw-r--r-- | core/src/layouts.rs (renamed from core/src/gamepad_layouts.rs) | 0 | ||||
| -rw-r--r-- | core/src/lib.rs | 6 | ||||
| -rw-r--r-- | core/src/message.rs | 7 | ||||
| -rw-r--r-- | core/src/player.rs | 48 | ||||
| -rw-r--r-- | core/src/server.rs (renamed from core/src/phantom_link_server.rs) | 5 |
6 files changed, 53 insertions, 15 deletions
diff --git a/core/server_test/src/main.rs b/core/server_test/src/main.rs index 703b447..c134fbc 100644 --- a/core/server_test/src/main.rs +++ b/core/server_test/src/main.rs @@ -1,5 +1,5 @@ use phantomlink_gamepad_core::message::PlayerMessage; -use phantomlink_gamepad_core::phantom_link_server::{PLServer, PLServerEvent}; +use phantomlink_gamepad_core::server::{PLServer, PLServerEvent}; use phantomlink_gamepad_core::player::PlayerInfo; fn main() { diff --git a/core/src/gamepad_layouts.rs b/core/src/layouts.rs index 49c5808..49c5808 100644 --- a/core/src/gamepad_layouts.rs +++ b/core/src/layouts.rs diff --git a/core/src/lib.rs b/core/src/lib.rs index 4988f50..e19c53d 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -1,4 +1,4 @@ -pub mod phantom_link_server; -pub mod gamepad_layouts; +pub mod server; +pub mod layouts; pub mod player; -pub mod message;
\ No newline at end of file +mod constants;
\ No newline at end of file diff --git a/core/src/message.rs b/core/src/message.rs deleted file mode 100644 index d146dba..0000000 --- a/core/src/message.rs +++ /dev/null @@ -1,7 +0,0 @@ -use crate::player::PlayerInfo; - -pub enum PlayerMessage { - Say(&'static str), - PressedDown(char), - PressedUp(char) -}
\ No newline at end of file diff --git a/core/src/player.rs b/core/src/player.rs index 01e47d0..78e4d23 100644 --- a/core/src/player.rs +++ b/core/src/player.rs @@ -1,8 +1,54 @@ use std::net::SocketAddr; +use sha1::{Digest, Sha1}; +use crate::constants::SALT; pub struct PlayerInfo { addr: SocketAddr, name: &'static str, name_hash: &'static str, - index: u8 + index: u8, + + // 颜色 HSV + color_hue: i32, // 0 - 360 + color_saturation: f32, // 0 - 1 + color_value: f32 // 0 - 1 +} + +pub enum PlayerMessage { + Say(&'static str), + PressedDown(char), + PressedUp(char) +} + +impl PlayerInfo { + + /// # 配置玩家 ID 和 名称 + /// self : 自身 + /// name : 玩家名称 + /// number : 玩家序号 + /// return -> 自身 + pub fn name(&mut self, name : &'static str, number : &'static str) -> &mut Self { + self.name = name; + + let combined = format!("{}{}{}", name, number, SALT); + let mut hasher = Sha1::new(); + hasher.update(combined); + let result = hasher.finalize(); + + self.name_hash = &format!("{:x}", &result[..16]); + self + } + + /// # 配置玩家颜色 + /// self : 自身 + /// hue : 色调 0 -> RED; 120 -> GREEN; 240 -> BLUE + /// saturation : 饱和度 + /// value : 明度 + /// return -> 自身 + pub fn color_hue(&mut self, hue: i32, saturation: f32, value: f32) -> &mut Self { + self.color_hue = hue.clamp(0, 360); + self.color_saturation = saturation.clamp(0.0, 1.0); + self.color_value = value.clamp(0.0, 1.0); + self + } }
\ No newline at end of file diff --git a/core/src/phantom_link_server.rs b/core/src/server.rs index 6dcbdeb..d8b8df9 100644 --- a/core/src/phantom_link_server.rs +++ b/core/src/server.rs @@ -1,6 +1,5 @@ -use crate::gamepad_layouts::GamepadLayout; -use crate::message::PlayerMessage; -use crate::player::PlayerInfo; +use crate::layouts::GamepadLayout; +use crate::player::{PlayerInfo, PlayerMessage}; /// # PhantomLink 监听服务器 /// 监听服务器用于连接玩家设备,并接收玩家的按键输入 |
