From b0090fce83ae439437b711f3c087f926cd95223d Mon Sep 17 00:00:00 2001 From: Weicao-CatilGrass <1992414357@qq.com> Date: Mon, 14 Apr 2025 13:54:21 +0800 Subject: 修复了 pads_server.rs 中的数个bug,并且将事件命名变得更加合理了 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/src/pads_server.rs | 81 +++++++++++++++++++++++++++++++++++++++++++++++++ core/src/server.rs | 80 ------------------------------------------------ 2 files changed, 81 insertions(+), 80 deletions(-) create mode 100644 core/src/pads_server.rs delete mode 100644 core/src/server.rs (limited to 'core/src') diff --git a/core/src/pads_server.rs b/core/src/pads_server.rs new file mode 100644 index 0000000..71f9acd --- /dev/null +++ b/core/src/pads_server.rs @@ -0,0 +1,81 @@ +use std::time::Duration; +use crate::pads_player::{PlayerInfo, PlayerMessage}; + +/// # 监听服务器 +/// 监听服务器用于连接玩家设备,并接收玩家的按键输入 +pub struct PadServer { + server_name: &'static str, + port: u16 +} + +impl Default for PadServer { + + /// # 使用默认布局部署服务器 + /// 创建一个使用默认布局的服务器 + fn default() -> Self { + PadServer { + server_name: "This Is No Pads", + port: 8916 + // TODO :: 补充布局文件 + } + } +} + +impl PadServer { + + /// # 开始监听服务器 + /// self : 服务器 + /// event : 事件 + pub fn start_listening(&self, event : impl PadServerEvent) { + + } + + /// # 停止监听服务器 + /// self : 服务器 + pub fn stop_listening(&self) { + + } +} + +/// # 监听服务器事件 +/// 服务器运行过程中的信息将会发送到该 Event Trait +pub trait PadServerEvent { + + /// 服务器启动时 + fn server_start(); + + /// 服务器关闭时 + fn server_shutdown(); + + /// 玩家加入请求 + /// info : 玩家信息 + /// return -> 是否允许加入服务器 + fn join_request_received(info: PlayerInfo) -> bool; + + /// 玩家加入游戏 + /// info : 玩家信息 + fn player_joined(info: PlayerInfo); + + /// 玩家离开游戏 + /// info : 玩家信息 + fn player_left(info: PlayerInfo); + + /// 玩家断开连接 + /// info : 玩家信息 + fn player_disconnected(info: PlayerInfo); + + /// 接收到消息 + /// info : 玩家信息 + /// msg : 接受的消息 + fn msg_received(info: PlayerInfo, msg: PlayerMessage); +} + +/// # 监听服务器消息 +/// 监听服务器用于向玩家发送指令 +pub enum ServerMessage { + Command(String), + Animation(String), + Shock(Duration, f64), + Kick, + +} \ No newline at end of file diff --git a/core/src/server.rs b/core/src/server.rs deleted file mode 100644 index 8100b74..0000000 --- a/core/src/server.rs +++ /dev/null @@ -1,80 +0,0 @@ -use crate::layouts::GamepadLayout; -use crate::player::{PlayerInfo, PlayerMessage}; - -/// # PhantomLink 监听服务器 -/// 监听服务器用于连接玩家设备,并接收玩家的按键输入 -pub struct PLServer { - server_name: &'static str, - port: u16, - layout: GamepadLayout -} - -/// # PhantomLink 监听服务器事件 -/// 服务器运行过程中的信息将会发送到该 Event Trait -pub trait PLServerEvent { - - /// 服务器启动时 - fn server_start(); - - /// 服务器关闭时 - fn server_shutdown(); - - /// 玩家加入请求 - /// info : 玩家信息 - /// return -> 是否允许加入服务器 - fn request_received(info: PlayerInfo) -> bool; - - /// 玩家加入游戏 - /// info : 玩家信息 - fn player_joined(info: PlayerInfo); - - /// 玩家离开游戏 - /// info : 玩家信息 - fn player_left(info: PlayerInfo); - - /// 玩家断开连接 - /// info : 玩家信息 - fn player_disconnected(info: PlayerInfo); - - /// 接收到消息 - /// info : 玩家信息 - /// msg : 接受的消息 - fn msg_received(info: PlayerInfo, msg: PlayerMessage); -} - -impl Default for PLServer { - /// # 使用默认布局部署服务器 - /// 创建一个使用默认布局的服务器 - fn default() -> Self { - PLServer { - server_name: "PhantomLink Layout", - port: 8916, - layout: GamepadLayout::PhantomLinkGamepad - } - } -} - -impl PLServer { - /// # 使用 Xbox 布局部署服务器 - /// 创建一个使用 Xbox 布局的服务器 - pub fn xbox_layout() -> Self { - PLServer { - server_name: "Xbox Layout", - port: 8916, - layout: GamepadLayout::Xbox - } - } - - /// # 开始监听服务器 - /// self : 服务器 - /// event : 事件 - pub fn start_listening(&self, event : impl PLServerEvent) { - - } - - /// # 停止监听服务器 - /// self : 服务器 - pub fn stop_listening(&self) { - - } -} \ No newline at end of file -- cgit