diff options
| author | 1992414357@qq.com <1992414357@qq.com> | 2025-04-21 06:25:54 +0800 |
|---|---|---|
| committer | 1992414357@qq.com <1992414357@qq.com> | 2025-04-21 06:25:54 +0800 |
| commit | 50ea9869616846e5a0448ead8272c397080f36d8 (patch) | |
| tree | 5f2ec829ecf48441a6d33f4160909dc02ddf83bf /core/src/client | |
| parent | d72d700c84794ca420035ceb9c294563f3f9c048 (diff) | |
.
Diffstat (limited to 'core/src/client')
| -rw-r--r-- | core/src/client/client.rs | 29 | ||||
| -rw-r--r-- | core/src/client/client_commands.rs | 29 | ||||
| -rw-r--r-- | core/src/client/client_event.rs | 26 | ||||
| -rw-r--r-- | core/src/client/mod.rs | 3 |
4 files changed, 87 insertions, 0 deletions
diff --git a/core/src/client/client.rs b/core/src/client/client.rs new file mode 100644 index 0000000..c11bb61 --- /dev/null +++ b/core/src/client/client.rs @@ -0,0 +1,29 @@ +use crate::constants::DEFAULT_PORT; +use crate::player::player_info::PlayerInfo; +use std::net::SocketAddr; + +/// 玩家客户端 +pub struct PadClient { + player_info: PlayerInfo, + remote_addr: SocketAddr, + receive_skin_package : bool +} + +impl Default for PadClient { + + fn default() -> Self { + PadClient { + player_info: PlayerInfo::default(), + remote_addr: SocketAddr::from(([127, 0, 0, 1], DEFAULT_PORT)), + receive_skin_package: true + } + } +} + +impl PadClient { + + /// # 连接到服务器 + pub fn connect_server(&self) { + + } +}
\ No newline at end of file diff --git a/core/src/client/client_commands.rs b/core/src/client/client_commands.rs new file mode 100644 index 0000000..f674f6c --- /dev/null +++ b/core/src/client/client_commands.rs @@ -0,0 +1,29 @@ +use crate::client::client::PadClient; +use crate::messages::PlayerMessage; + +impl PadClient { + + // TODO :: 可能需要返回是否成功 + pub fn send_message (&self, msg: PlayerMessage) { + + } + + /// 按下 + pub fn pressed (&self, btn_num: u8) { + self.send_message(PlayerMessage::ButtonPressed(btn_num)) + } + + /// 抬起 + pub fn released (&self, btn_num: u8) { + self.send_message(PlayerMessage::ButtonReleased(btn_num)) + } + + pub fn msg (&self, msg_str: String) { + self.send_message(PlayerMessage::Message(msg_str)) + } + + // TODO :: 可能需要返回信息 + pub fn cmd (&self, cmd_str: String) { + self.send_message(PlayerMessage::Command(cmd_str)) + } +}
\ No newline at end of file diff --git a/core/src/client/client_event.rs b/core/src/client/client_event.rs new file mode 100644 index 0000000..ac52e53 --- /dev/null +++ b/core/src/client/client_event.rs @@ -0,0 +1,26 @@ +use crate::messages::ServerMessage; + +/// 玩家客户端事件 +pub trait PadClientEvent { + + /// 加入游戏 + fn joined_game(); + + /// 加入游戏失败 + fn joined_game_failed(); + + /// 退出游戏 + fn left_game(); + + /// 被踢出游戏 + fn kicked(); + + /// 被该游戏封禁(若游戏未保存名单,则游戏重启前无法进入) + fn banned(); + + /// 掉线 + fn disconnected(); + + /// 接收到消息 + fn msg_received(msg: ServerMessage); +}
\ No newline at end of file diff --git a/core/src/client/mod.rs b/core/src/client/mod.rs new file mode 100644 index 0000000..0cb7dd2 --- /dev/null +++ b/core/src/client/mod.rs @@ -0,0 +1,3 @@ +pub mod client_commands; +pub mod client; +pub mod client_event;
\ No newline at end of file |
