aboutsummaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
author1992414357@qq.com <1992414357@qq.com>2025-06-11 19:14:04 +0800
committer1992414357@qq.com <1992414357@qq.com>2025-06-11 19:14:04 +0800
commit9e48af01ae56fe813869ada24de291ab98b361e2 (patch)
tree82b56adecbeb260ebbf2c512d78fe2d63805eb36 /core/src
parentaa326e69b18a4390ffbc97268eaec4793761f083 (diff)
组合模块中 structs.rs 和 implements.rs 文件
Diffstat (limited to 'core/src')
-rw-r--r--core/src/data/controller/cli/mod.rs1
-rw-r--r--core/src/data/controller/controller_cli.rs (renamed from core/src/data/controller/cli/cli_command.rs)2
-rw-r--r--core/src/data/controller/controller_data.rs (renamed from core/src/data/controller/implements.rs)14
-rw-r--r--core/src/data/controller/controller_runtime.rs (renamed from core/src/data/controller/runtime/implements.rs)21
-rw-r--r--core/src/data/controller/mod.rs7
-rw-r--r--core/src/data/controller/runtime/mod.rs2
-rw-r--r--core/src/data/controller/runtime/structs.rs21
-rw-r--r--core/src/data/controller/structs.rs10
-rw-r--r--core/src/data/game/cli/mod.rs1
-rw-r--r--core/src/data/game/game_cli.rs (renamed from core/src/data/game/cli/cli_command.rs)4
-rw-r--r--core/src/data/game/game_data.rs (renamed from core/src/data/game/implements.rs)32
-rw-r--r--core/src/data/game/game_runtime.rs (renamed from core/src/data/game/runtime/implements.rs)51
-rw-r--r--core/src/data/game/mod.rs7
-rw-r--r--core/src/data/game/runtime/mod.rs2
-rw-r--r--core/src/data/game/runtime/structs.rs42
-rw-r--r--core/src/data/game/structs.rs29
-rw-r--r--core/src/data/game/types.rs2
-rw-r--r--core/src/data/message/message_encoders.rs (renamed from core/src/data/message/implements.rs)2
-rw-r--r--core/src/data/message/message_enums.rs (renamed from core/src/data/message/enums.rs)2
-rw-r--r--core/src/data/message/mod.rs4
-rw-r--r--core/src/data/player/mod.rs3
-rw-r--r--core/src/data/player/player_data.rs (renamed from core/src/data/player/implements.rs)45
-rw-r--r--core/src/data/player/structs.rs45
-rw-r--r--core/src/lib.rs2
-rw-r--r--core/src/message_encoders.rs8
-rw-r--r--core/src/service/tcp_network/long_connection.rs12
-rw-r--r--core/src/service/tcp_network/pad_client/mod.rs3
-rw-r--r--core/src/service/tcp_network/pad_client/pad_client_service.rs (renamed from core/src/service/tcp_network/pad_client/implements.rs)12
-rw-r--r--core/src/service/tcp_network/pad_client/structs.rs8
-rw-r--r--core/src/service/tcp_network/pad_server/mod.rs3
-rw-r--r--core/src/service/tcp_network/pad_server/pad_server_service.rs (renamed from core/src/service/tcp_network/pad_server/implements.rs)19
-rw-r--r--core/src/service/tcp_network/pad_server/structs.rs12
32 files changed, 199 insertions, 229 deletions
diff --git a/core/src/data/controller/cli/mod.rs b/core/src/data/controller/cli/mod.rs
deleted file mode 100644
index 043f7b8..0000000
--- a/core/src/data/controller/cli/mod.rs
+++ /dev/null
@@ -1 +0,0 @@
-pub mod cli_command; \ No newline at end of file
diff --git a/core/src/data/controller/cli/cli_command.rs b/core/src/data/controller/controller_cli.rs
index 9fee0b0..9ab49d6 100644
--- a/core/src/data/controller/cli/cli_command.rs
+++ b/core/src/data/controller/controller_cli.rs
@@ -3,7 +3,7 @@ use clap::{Args, Parser, Subcommand};
use clearscreen::clear;
use log::info;
use nogamepads::entry_mutex;
-use crate::data::controller::runtime::structs::ControllerRuntime;
+use crate::data::controller::controller_runtime::ControllerRuntime;
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
diff --git a/core/src/data/controller/implements.rs b/core/src/data/controller/controller_data.rs
index 86a19de..a3f1c02 100644
--- a/core/src/data/controller/implements.rs
+++ b/core/src/data/controller/controller_data.rs
@@ -1,7 +1,15 @@
use std::sync::{Arc, Mutex};
-use crate::data::controller::runtime::structs::ControllerRuntime;
-use crate::data::controller::structs::ControllerData;
-use crate::data::player::structs::Player;
+use crate::data::controller::controller_runtime::ControllerRuntime;
+use crate::data::player::player_data::Player;
+
+/// Controller-side Data
+/// Describes the basic information of the controller side
+#[derive(Default)]
+pub struct ControllerData {
+
+ /// Player bound to the controller side
+ pub(crate) player: Player
+}
impl ControllerData {
diff --git a/core/src/data/controller/runtime/implements.rs b/core/src/data/controller/controller_runtime.rs
index 1f2734a..5e7bb6d 100644
--- a/core/src/data/controller/runtime/implements.rs
+++ b/core/src/data/controller/controller_runtime.rs
@@ -1,11 +1,28 @@
use std::collections::{HashMap, VecDeque};
+use std::sync::atomic::AtomicBool;
use std::sync::atomic::Ordering::SeqCst;
use log::trace;
-use crate::data::controller::runtime::structs::ControllerRuntime;
-use crate::data::message::enums::{ControlMessage, GameMessage};
+use crate::data::game::types::GameInfo;
+use crate::data::message::message_enums::{ControlMessage, GameMessage};
use crate::data::message::traits::MessageManager;
+use crate::data::player::player_data::Player;
use crate::service::service_types::ServiceType;
+/// Controller-side runtime
+/// Stores all data involved in game pad_client interactions during runtime
+#[derive(Default)]
+pub struct ControllerRuntime {
+
+ pub(crate) service_type: ServiceType,
+ pub(crate) received: HashMap<(ServiceType, u8), VecDeque<GameMessage>>,
+ pub(crate) send: HashMap<(ServiceType, u8), VecDeque<ControlMessage>>,
+
+ pub(crate) player: Player,
+
+ pub game_info: GameInfo,
+ pub close: AtomicBool,
+}
+
/// Message manager for controller-side runtime
/// After the service starts, it can be accessed or relevant messages can be stored.
impl MessageManager<GameMessage, ControlMessage, u8> for ControllerRuntime {
diff --git a/core/src/data/controller/mod.rs b/core/src/data/controller/mod.rs
index 019ebcf..ce9d9c3 100644
--- a/core/src/data/controller/mod.rs
+++ b/core/src/data/controller/mod.rs
@@ -1,4 +1,3 @@
-pub mod cli;
-pub mod runtime;
-pub mod implements;
-pub mod structs; \ No newline at end of file
+pub mod controller_cli;
+pub mod controller_runtime;
+pub mod controller_data; \ No newline at end of file
diff --git a/core/src/data/controller/runtime/mod.rs b/core/src/data/controller/runtime/mod.rs
deleted file mode 100644
index 0ff870f..0000000
--- a/core/src/data/controller/runtime/mod.rs
+++ /dev/null
@@ -1,2 +0,0 @@
-pub mod implements;
-pub mod structs; \ No newline at end of file
diff --git a/core/src/data/controller/runtime/structs.rs b/core/src/data/controller/runtime/structs.rs
deleted file mode 100644
index bfd39c5..0000000
--- a/core/src/data/controller/runtime/structs.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-use std::collections::{HashMap, VecDeque};
-use std::sync::atomic::AtomicBool;
-use crate::data::game::types::GameInfo;
-use crate::data::message::enums::{ControlMessage, GameMessage};
-use crate::data::player::structs::Player;
-use crate::service::service_types::ServiceType;
-
-/// Controller-side runtime
-/// Stores all data involved in game pad_client interactions during runtime
-#[derive(Default)]
-pub struct ControllerRuntime {
-
- pub(crate) service_type: ServiceType,
- pub(crate) received: HashMap<(ServiceType, u8), VecDeque<GameMessage>>,
- pub(crate) send: HashMap<(ServiceType, u8), VecDeque<ControlMessage>>,
-
- pub(crate) player: Player,
-
- pub game_info: GameInfo,
- pub close: AtomicBool,
-} \ No newline at end of file
diff --git a/core/src/data/controller/structs.rs b/core/src/data/controller/structs.rs
deleted file mode 100644
index c6fdd31..0000000
--- a/core/src/data/controller/structs.rs
+++ /dev/null
@@ -1,10 +0,0 @@
-use crate::data::player::structs::Player;
-
-/// Controller-side Data
-/// Describes the basic information of the controller side
-#[derive(Default)]
-pub struct ControllerData {
-
- /// Player bound to the controller side
- pub(crate) player: Player
-} \ No newline at end of file
diff --git a/core/src/data/game/cli/mod.rs b/core/src/data/game/cli/mod.rs
deleted file mode 100644
index 043f7b8..0000000
--- a/core/src/data/game/cli/mod.rs
+++ /dev/null
@@ -1 +0,0 @@
-pub mod cli_command; \ No newline at end of file
diff --git a/core/src/data/game/cli/cli_command.rs b/core/src/data/game/game_cli.rs
index 5f296f8..521de3f 100644
--- a/core/src/data/game/cli/cli_command.rs
+++ b/core/src/data/game/game_cli.rs
@@ -3,8 +3,8 @@ use clap::{Args, Parser, Subcommand};
use clearscreen::clear;
use log::{info, warn};
use nogamepads::entry_mutex;
-use crate::data::game::runtime::structs::GameRuntime;
-use crate::data::player::structs::Player;
+use crate::data::game::game_runtime::GameRuntime;
+use crate::data::player::player_data::Player;
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
diff --git a/core/src/data/game/implements.rs b/core/src/data/game/game_data.rs
index ad86572..3bdf28b 100644
--- a/core/src/data/game/implements.rs
+++ b/core/src/data/game/game_data.rs
@@ -1,9 +1,35 @@
+use std::collections::HashMap;
use std::sync::{Arc, Mutex};
+use serde::{Deserialize, Serialize};
use nogamepads::entry_mutex;
-use crate::data::game::runtime::structs::{GameControlRuntime, GameRuntime, GameRuntimeData};
-use crate::data::game::structs::{GameControlData, GameData, GameRuntimeDataArchive};
+use crate::data::game::game_runtime::{GameControlRuntime, GameRuntime, GameRuntimeData};
use crate::data::game::types::{GameInfo, Players};
-use crate::data::player::structs::Player;
+use crate::data::player::player_data::{Account, Player};
+
+/// Game pad_client data
+/// Describes the basic information of the game pad_client
+#[derive(Clone, Serialize, Deserialize, PartialEq, Debug)]
+pub struct GameData {
+ pub info: GameInfo,
+ pub control: GameControlData,
+ pub archive: GameRuntimeDataArchive
+}
+
+/// Game control information
+/// Describes the buttons, axes, and directions that can be controlled.
+#[derive(Default, Clone, Serialize, Deserialize, PartialEq, Debug)]
+pub struct GameControlData {
+ pub direction_keys : HashMap<u8, String>,
+ pub axis_keys : HashMap<u8, String>,
+ pub button_keys : HashMap<u8, String>,
+}
+
+/// Archive of game runtime data
+/// The game pad_client can convert data into this structure for persistence.
+#[derive(Default, Clone, Serialize, Deserialize, PartialEq, Debug)]
+pub struct GameRuntimeDataArchive {
+ pub banned: Vec<Account>
+}
impl Default for GameData {
fn default() -> Self {
diff --git a/core/src/data/game/runtime/implements.rs b/core/src/data/game/game_runtime.rs
index 22b6a5d..1c5a548 100644
--- a/core/src/data/game/runtime/implements.rs
+++ b/core/src/data/game/game_runtime.rs
@@ -1,20 +1,55 @@
use std::collections::{HashMap, VecDeque};
use std::sync::atomic::AtomicBool;
use std::sync::atomic::Ordering::SeqCst;
+use std::sync::Mutex;
use log::{info, trace, warn};
use nogamepads::entry_mutex;
-use crate::data::game::runtime::structs::{GameControlRuntime, GameRuntime, GameRuntimeData};
-use crate::data::game::types::Players;
-use crate::data::message::enums::{JoinFailedMessage, ControlMessage, ExitReason, GameMessage};
-use crate::data::message::enums::JoinFailedMessage::{ContainIdenticalPlayer, GameLocked, PlayerBanned};
-use crate::data::message::enums::ControlMessage::{Axis, Dir, Msg, Pressed, Released};
-use crate::data::message::enums::ExitReason::{YouAreBanned, YouAreKicked};
-use crate::data::message::enums::GameMessage::{EventTrigger, LetExit};
+use crate::data::game::game_data::GameControlData;
+use crate::data::game::types::{GameInfo, Players};
+use crate::data::message::message_enums::{JoinFailedMessage, ControlMessage, ExitReason, GameMessage};
+use crate::data::message::message_enums::JoinFailedMessage::{ContainIdenticalPlayer, GameLocked, PlayerBanned};
+use crate::data::message::message_enums::ControlMessage::{Axis, Dir, Msg, Pressed, Released};
+use crate::data::message::message_enums::ExitReason::{YouAreBanned, YouAreKicked};
+use crate::data::message::message_enums::GameMessage::{EventTrigger, LetExit};
use crate::data::message::traits::MessageManager;
-use crate::data::player::structs::{Account, Player};
+use crate::data::player::player_data::{Account, Player};
use crate::service::service_types::ServiceType;
use crate::service::service_types::ServiceType::TCPConnection;
+/// Game pad_client runtime
+/// Stores the game state, player information, and all data involved in controller-side interactions during runtime
+pub struct GameRuntime {
+
+ pub info: GameInfo,
+ pub data: GameRuntimeData,
+ pub control: GameControlRuntime,
+
+ pub writer_count: i32,
+ pub reader_count: i32,
+}
+
+pub struct GameRuntimeData {
+
+ pub(crate) received: HashMap<(ServiceType, Account), VecDeque<(Account, ControlMessage)>>,
+ pub(crate) send: HashMap<(ServiceType, Account), VecDeque<(Account, GameMessage)>>,
+
+ pub(crate) players_online: Players,
+ pub(crate) players_banned: Players,
+ pub(crate) account_service_type: Mutex<HashMap<Account, ServiceType>>,
+
+ pub locked: AtomicBool,
+ pub close: AtomicBool,
+}
+
+#[derive(Default)]
+pub struct GameControlRuntime {
+ pub(crate) keys: GameControlData,
+ pub(crate) directions : HashMap<u8, HashMap<Account, (f64, f64)>>,
+ pub(crate) axes : HashMap<u8, HashMap<Account, f64>>,
+ pub(crate) button : HashMap<u8, HashMap<Account, bool>>,
+ pub(crate) events : VecDeque<(Account, ControlMessage)>
+}
+
impl GameRuntime {
/// Attempt to have the specified player join the game
diff --git a/core/src/data/game/mod.rs b/core/src/data/game/mod.rs
index 4a0a3d4..1a31cf1 100644
--- a/core/src/data/game/mod.rs
+++ b/core/src/data/game/mod.rs
@@ -1,6 +1,5 @@
-pub mod cli;
-pub mod runtime;
+pub mod game_cli;
-pub mod implements;
-pub mod structs;
+pub mod game_data;
+pub mod game_runtime;
pub mod types; \ No newline at end of file
diff --git a/core/src/data/game/runtime/mod.rs b/core/src/data/game/runtime/mod.rs
deleted file mode 100644
index 0ff870f..0000000
--- a/core/src/data/game/runtime/mod.rs
+++ /dev/null
@@ -1,2 +0,0 @@
-pub mod implements;
-pub mod structs; \ No newline at end of file
diff --git a/core/src/data/game/runtime/structs.rs b/core/src/data/game/runtime/structs.rs
deleted file mode 100644
index c6e005f..0000000
--- a/core/src/data/game/runtime/structs.rs
+++ /dev/null
@@ -1,42 +0,0 @@
-use std::collections::{HashMap, VecDeque};
-use std::sync::atomic::AtomicBool;
-use std::sync::Mutex;
-use crate::data::game::structs::GameControlData;
-use crate::data::game::types::{GameInfo, Players};
-use crate::data::message::enums::{ControlMessage, GameMessage};
-use crate::data::player::structs::Account;
-use crate::service::service_types::ServiceType;
-
-/// Game pad_client runtime
-/// Stores the game state, player information, and all data involved in controller-side interactions during runtime
-pub struct GameRuntime {
-
- pub info: GameInfo,
- pub data: GameRuntimeData,
- pub control: GameControlRuntime,
-
- pub writer_count: i32,
- pub reader_count: i32,
-}
-
-pub struct GameRuntimeData {
-
- pub(crate) received: HashMap<(ServiceType, Account), VecDeque<(Account, ControlMessage)>>,
- pub(crate) send: HashMap<(ServiceType, Account), VecDeque<(Account, GameMessage)>>,
-
- pub(crate) players_online: Players,
- pub(crate) players_banned: Players,
- pub(crate) account_service_type: Mutex<HashMap<Account, ServiceType>>,
-
- pub locked: AtomicBool,
- pub close: AtomicBool,
-}
-
-#[derive(Default)]
-pub struct GameControlRuntime {
- pub(crate) keys: GameControlData,
- pub(crate) directions : HashMap<u8, HashMap<Account, (f64, f64)>>,
- pub(crate) axes : HashMap<u8, HashMap<Account, f64>>,
- pub(crate) button : HashMap<u8, HashMap<Account, bool>>,
- pub(crate) events : VecDeque<(Account, ControlMessage)>
-} \ No newline at end of file
diff --git a/core/src/data/game/structs.rs b/core/src/data/game/structs.rs
deleted file mode 100644
index 52fc0f1..0000000
--- a/core/src/data/game/structs.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-use std::collections::HashMap;
-use serde::{Deserialize, Serialize};
-use crate::data::game::types::GameInfo;
-use crate::data::player::structs::Account;
-
-/// Game pad_client data
-/// Describes the basic information of the game pad_client
-#[derive(Clone, Serialize, Deserialize, PartialEq, Debug)]
-pub struct GameData {
- pub info: GameInfo,
- pub control: GameControlData,
- pub archive: GameRuntimeDataArchive
-}
-
-/// Game control information
-/// Describes the buttons, axes, and directions that can be controlled.
-#[derive(Default, Clone, Serialize, Deserialize, PartialEq, Debug)]
-pub struct GameControlData {
- pub direction_keys : HashMap<u8, String>,
- pub axis_keys : HashMap<u8, String>,
- pub button_keys : HashMap<u8, String>,
-}
-
-/// Archive of game runtime data
-/// The game pad_client can convert data into this structure for persistence.
-#[derive(Default, Clone, Serialize, Deserialize, PartialEq, Debug)]
-pub struct GameRuntimeDataArchive {
- pub banned: Vec<Account>
-} \ No newline at end of file
diff --git a/core/src/data/game/types.rs b/core/src/data/game/types.rs
index 8af17d3..778201f 100644
--- a/core/src/data/game/types.rs
+++ b/core/src/data/game/types.rs
@@ -1,6 +1,6 @@
use std::collections::HashMap;
use std::sync::Mutex;
-use crate::data::player::structs::{Account, Player};
+use crate::data::player::player_data::{Account, Player};
pub(crate) type GameInfo = HashMap<String, String>;
diff --git a/core/src/data/message/implements.rs b/core/src/data/message/message_encoders.rs
index 2d5bae8..d20e74a 100644
--- a/core/src/data/message/implements.rs
+++ b/core/src/data/message/message_encoders.rs
@@ -1,4 +1,4 @@
-use crate::data::message::enums::{ConnectionResponseMessage, JoinFailedMessage, ConnectionMessage, ControlMessage, ExitReason, GameMessage};
+use crate::data::message::message_enums::{ConnectionResponseMessage, JoinFailedMessage, ConnectionMessage, ControlMessage, ExitReason, GameMessage};
use crate::data::message::traits::MessageEncoder;
#[macro_export]
diff --git a/core/src/data/message/enums.rs b/core/src/data/message/message_enums.rs
index 4150b63..fd369a9 100644
--- a/core/src/data/message/enums.rs
+++ b/core/src/data/message/message_enums.rs
@@ -1,6 +1,6 @@
-use crate::data::player::structs::Player;
use bincode::{Decode, Encode};
use crate::data::game::types::GameInfo;
+use crate::data::player::player_data::Player;
/// Control messages.
/// Messages sent from controller to game pad_client after establishing persistent connection
diff --git a/core/src/data/message/mod.rs b/core/src/data/message/mod.rs
index 96fdd73..1b9d2fd 100644
--- a/core/src/data/message/mod.rs
+++ b/core/src/data/message/mod.rs
@@ -1,3 +1,3 @@
-pub mod enums;
-pub mod implements;
+pub mod message_encoders;
+pub mod message_enums;
pub mod traits; \ No newline at end of file
diff --git a/core/src/data/player/mod.rs b/core/src/data/player/mod.rs
index 7e8fe28..ff6ae85 100644
--- a/core/src/data/player/mod.rs
+++ b/core/src/data/player/mod.rs
@@ -1,4 +1,3 @@
-pub mod implements;
-pub mod structs;
+pub mod player_data;
pub const ACCOUNT_HASH_SALT : &str = env!("TEST_PLAYER_ACCOUNT"); \ No newline at end of file
diff --git a/core/src/data/player/implements.rs b/core/src/data/player/player_data.rs
index bbaefc4..1fe5ff0 100644
--- a/core/src/data/player/implements.rs
+++ b/core/src/data/player/player_data.rs
@@ -1,11 +1,54 @@
-use crate::data::player::structs::{Account, Customize, Player};
use crate::data::player::ACCOUNT_HASH_SALT;
use hex::encode;
use sha1::{Digest, Sha1};
use std::fmt::{Display, Formatter};
use std::hash::{Hash, Hasher};
+use bincode::{Decode, Encode};
+use serde::{Deserialize, Serialize};
use nogamepads::string_utils::process_id_text;
+/// Player information
+/// Describes a player's specific details, which are frequently exchanged between the controller and game pad_client.
+#[derive(Default, Clone, Encode, Decode, Serialize, Deserialize, Debug)]
+pub struct Player {
+
+ /// Account information
+ pub account: Account,
+
+ /// Custom information (Optional)
+ pub customize: Option<Customize>
+}
+
+/// Account information
+/// Essential data for verifying player uniqueness, including the player's hash value and account ID.
+#[derive(Default, Clone, Encode, Decode, Serialize, Deserialize, Eq, Hash, PartialEq, Debug)]
+pub struct Account {
+
+ /// Player name stored in data, allowing only lowercase letters and underscores
+ pub id: String,
+
+ /// Player hash value proving player uniqueness
+ pub player_hash: String
+}
+
+/// Custom information
+/// Describes personalized player details displayed in-game, such as name, color, or other customizations.
+#[derive(Default, Clone, Encode, Decode, Serialize, Deserialize, PartialEq, Debug)]
+pub struct Customize {
+
+ /// Player name displayed in the game
+ pub nickname: String,
+
+ /// HSV Color - Hue (Range: 0 - 360)
+ pub color_hue: i32,
+
+ /// HSV Color - Saturation (Range: 0 - 1)
+ pub color_saturation: f64,
+
+ /// HSV Color - Value (Range: 0 - 1)
+ pub color_value: f64
+}
+
impl Player {
/// Create new player information using a username and password
diff --git a/core/src/data/player/structs.rs b/core/src/data/player/structs.rs
deleted file mode 100644
index cc3d7c9..0000000
--- a/core/src/data/player/structs.rs
+++ /dev/null
@@ -1,45 +0,0 @@
-use bincode::{Decode, Encode};
-use serde::{Deserialize, Serialize};
-use std::hash::{Hash};
-
-/// Player information
-/// Describes a player's specific details, which are frequently exchanged between the controller and game pad_client.
-#[derive(Default, Clone, Encode, Decode, Serialize, Deserialize, Debug)]
-pub struct Player {
-
- /// Account information
- pub account: Account,
-
- /// Custom information (Optional)
- pub customize: Option<Customize>
-}
-
-/// Account information
-/// Essential data for verifying player uniqueness, including the player's hash value and account ID.
-#[derive(Default, Clone, Encode, Decode, Serialize, Deserialize, Eq, Hash, PartialEq, Debug)]
-pub struct Account {
-
- /// Player name stored in data, allowing only lowercase letters and underscores
- pub id: String,
-
- /// Player hash value proving player uniqueness
- pub player_hash: String
-}
-
-/// Custom information
-/// Describes personalized player details displayed in-game, such as name, color, or other customizations.
-#[derive(Default, Clone, Encode, Decode, Serialize, Deserialize, PartialEq, Debug)]
-pub struct Customize {
-
- /// Player name displayed in the game
- pub nickname: String,
-
- /// HSV Color - Hue (Range: 0 - 360)
- pub color_hue: i32,
-
- /// HSV Color - Saturation (Range: 0 - 1)
- pub color_saturation: f64,
-
- /// HSV Color - Value (Range: 0 - 1)
- pub color_value: f64
-} \ No newline at end of file
diff --git a/core/src/lib.rs b/core/src/lib.rs
index 49db429..81d1155 100644
--- a/core/src/lib.rs
+++ b/core/src/lib.rs
@@ -5,4 +5,4 @@ pub mod data;
pub mod service;
pub const BINCODE_CONVERT_FAILED : Vec<u8> = Vec::new();
-pub const BINCODE_CONFIG : Configuration = config::standard();
+pub const BINCODE_CONFIG : Configuration = config::standard(); \ No newline at end of file
diff --git a/core/src/message_encoders.rs b/core/src/message_encoders.rs
new file mode 100644
index 0000000..49db429
--- /dev/null
+++ b/core/src/message_encoders.rs
@@ -0,0 +1,8 @@
+use bincode::config;
+use bincode::config::Configuration;
+
+pub mod data;
+pub mod service;
+
+pub const BINCODE_CONVERT_FAILED : Vec<u8> = Vec::new();
+pub const BINCODE_CONFIG : Configuration = config::standard();
diff --git a/core/src/service/tcp_network/long_connection.rs b/core/src/service/tcp_network/long_connection.rs
index 200cf61..c8916fa 100644
--- a/core/src/service/tcp_network/long_connection.rs
+++ b/core/src/service/tcp_network/long_connection.rs
@@ -1,6 +1,3 @@
-use crate::data::player::structs::Player;
-use crate::service::tcp_network::pad_client::structs::PadClientNetwork;
-use crate::service::tcp_network::pad_server::structs::PadServerNetwork;
use std::sync::Arc;
use std::sync::atomic::Ordering::SeqCst;
use log::{error, info, trace, warn};
@@ -9,12 +6,15 @@ use tokio::net::tcp::{OwnedReadHalf, OwnedWriteHalf};
use tokio::net::TcpStream;
use tokio::spawn;
use nogamepads::entry_mutex;
-use crate::data::message::enums::{ControlMessage, GameMessage};
-use crate::data::message::enums::ExitReason::GameOver;
-use crate::data::message::enums::GameMessage::{End, LetExit};
+use crate::data::message::message_enums::{ControlMessage, GameMessage};
+use crate::data::message::message_enums::ExitReason::GameOver;
+use crate::data::message::message_enums::GameMessage::{End, LetExit};
use crate::data::message::traits::{MessageEncoder, MessageManager};
+use crate::data::player::player_data::Player;
use crate::service::service_types::ServiceType;
use crate::service::service_types::ServiceType::TCPConnection;
+use crate::service::tcp_network::pad_client::pad_client_service::PadClientNetwork;
+use crate::service::tcp_network::pad_server::pad_server_service::PadServerNetwork;
impl PadServerNetwork {
diff --git a/core/src/service/tcp_network/pad_client/mod.rs b/core/src/service/tcp_network/pad_client/mod.rs
index 0ff870f..4e9794d 100644
--- a/core/src/service/tcp_network/pad_client/mod.rs
+++ b/core/src/service/tcp_network/pad_client/mod.rs
@@ -1,2 +1 @@
-pub mod implements;
-pub mod structs; \ No newline at end of file
+pub mod pad_client_service; \ No newline at end of file
diff --git a/core/src/service/tcp_network/pad_client/implements.rs b/core/src/service/tcp_network/pad_client/pad_client_service.rs
index 021b325..9b1826b 100644
--- a/core/src/service/tcp_network/pad_client/implements.rs
+++ b/core/src/service/tcp_network/pad_client/pad_client_service.rs
@@ -6,16 +6,20 @@ use log::{error, info, warn};
use tokio::{join, spawn};
use tokio::time::sleep;
use nogamepads::entry_mutex;
-use crate::data::controller::runtime::structs::ControllerRuntime;
-use crate::data::message::enums::ConnectionMessage::{Join, RequestGameInfos};
-use crate::data::message::enums::ConnectionResponseMessage;
+use crate::data::controller::controller_runtime::ControllerRuntime;
+use crate::data::message::message_enums::ConnectionMessage::{Join, RequestGameInfos};
+use crate::data::message::message_enums::ConnectionResponseMessage;
use crate::service::service_runner::NoGamepadsService;
use crate::service::service_types::ServiceType;
-use crate::service::tcp_network::pad_client::structs::PadClientNetwork;
use crate::service::tcp_network::DEFAULT_PORT;
use crate::service::tcp_network::utils::stream_utils::{read_msg, send_msg};
use crate::service::tcp_network::utils::tokio_utils::build_tokio_runtime;
+pub struct PadClientNetwork {
+ pub(crate) addr: SocketAddr,
+ pub(crate) runtime: Arc<Mutex<ControllerRuntime>>
+}
+
macro_rules! connect_once {
($addr:expr, |$conn:ident| $code:block) => {{
use tokio::net::TcpStream;
diff --git a/core/src/service/tcp_network/pad_client/structs.rs b/core/src/service/tcp_network/pad_client/structs.rs
deleted file mode 100644
index 10c93c4..0000000
--- a/core/src/service/tcp_network/pad_client/structs.rs
+++ /dev/null
@@ -1,8 +0,0 @@
-use std::net::SocketAddr;
-use std::sync::{Arc, Mutex};
-use crate::data::controller::runtime::structs::ControllerRuntime;
-
-pub struct PadClientNetwork {
- pub(crate) addr: SocketAddr,
- pub(crate) runtime: Arc<Mutex<ControllerRuntime>>
-} \ No newline at end of file
diff --git a/core/src/service/tcp_network/pad_server/mod.rs b/core/src/service/tcp_network/pad_server/mod.rs
index b37b320..43d81a9 100644
--- a/core/src/service/tcp_network/pad_server/mod.rs
+++ b/core/src/service/tcp_network/pad_server/mod.rs
@@ -1,2 +1 @@
-pub mod implements;
-pub mod structs;
+pub mod pad_server_service; \ No newline at end of file
diff --git a/core/src/service/tcp_network/pad_server/implements.rs b/core/src/service/tcp_network/pad_server/pad_server_service.rs
index d4288bf..1b665a0 100644
--- a/core/src/service/tcp_network/pad_server/implements.rs
+++ b/core/src/service/tcp_network/pad_server/pad_server_service.rs
@@ -5,19 +5,26 @@ use std::time::Duration;
use log::{error, info, trace, warn};
use tokio::{join, select, spawn};
use tokio::net::{TcpListener, TcpStream};
-use tokio::sync::watch::{channel};
+use tokio::sync::watch::{channel, Receiver, Sender};
use tokio::time::sleep;
use nogamepads::entry_mutex;
-use crate::data::game::runtime::structs::GameRuntime;
-use crate::data::message::enums::ConnectionMessage;
-use crate::data::message::enums::ConnectionMessage::{Join, RequestGameInfos, RequestLayoutConfigure, RequestSkinPackage, Ready};
-use crate::data::message::enums::ConnectionResponseMessage::{Deny, GameInfos, Welcome};
+use crate::data::game::game_runtime::GameRuntime;
+use crate::data::message::message_enums::ConnectionMessage;
+use crate::data::message::message_enums::ConnectionMessage::{Join, RequestGameInfos, RequestLayoutConfigure, RequestSkinPackage, Ready};
+use crate::data::message::message_enums::ConnectionResponseMessage::{Deny, GameInfos, Welcome};
use crate::service::service_runner::NoGamepadsService;
use crate::service::tcp_network::DEFAULT_PORT;
-use crate::service::tcp_network::pad_server::structs::PadServerNetwork;
use crate::service::tcp_network::utils::stream_utils::{get_target_address, read_msg, send_msg};
use crate::service::tcp_network::utils::tokio_utils::build_tokio_runtime;
+pub struct PadServerNetwork {
+ pub(crate) addr: SocketAddr,
+ pub(crate) runtime: Arc<Mutex<GameRuntime>>,
+
+ pub(crate) close_tx: Sender<bool>,
+ pub(crate) close_rx: Receiver<bool>,
+}
+
impl PadServerNetwork {
pub fn build(runtime: Arc<Mutex<GameRuntime>>) -> PadServerNetwork {
diff --git a/core/src/service/tcp_network/pad_server/structs.rs b/core/src/service/tcp_network/pad_server/structs.rs
deleted file mode 100644
index f46608a..0000000
--- a/core/src/service/tcp_network/pad_server/structs.rs
+++ /dev/null
@@ -1,12 +0,0 @@
-use crate::data::game::runtime::structs::GameRuntime;
-use std::net::SocketAddr;
-use std::sync::{Arc, Mutex};
-use tokio::sync::watch::{Receiver, Sender};
-
-pub struct PadServerNetwork {
- pub(crate) addr: SocketAddr,
- pub(crate) runtime: Arc<Mutex<GameRuntime>>,
-
- pub(crate) close_tx: Sender<bool>,
- pub(crate) close_rx: Receiver<bool>,
-} \ No newline at end of file