diff options
Diffstat (limited to 'core/examples')
| -rw-r--r-- | core/examples/connect.rs | 25 | ||||
| -rw-r--r-- | core/examples/start_client_console.rs | 24 | ||||
| -rw-r--r-- | core/examples/start_server_console.rs | 40 | ||||
| -rw-r--r-- | core/examples/tcp_server.rs | 43 | ||||
| -rw-r--r-- | core/examples/tetris_multicmd_game.rs | 3 |
5 files changed, 68 insertions, 67 deletions
diff --git a/core/examples/connect.rs b/core/examples/connect.rs new file mode 100644 index 0000000..c367787 --- /dev/null +++ b/core/examples/connect.rs @@ -0,0 +1,25 @@ +use std::sync::Arc; +use log::LevelFilter::Trace; +use nogamepads::logger_utils::logger_build; +use nogamepads_core::data::controller::structs::ControllerData; +use nogamepads_core::data::player::structs::Player; +use nogamepads_core::service::tcp_network::pad_client::structs::PadClientNetwork; + +fn main () { + logger_build(Trace); + + let mut player = Player::register( + env!("TEST_PLAYER_ACCOUNT").to_string(), + env!("TEST_PLAYER_PASSWORD").to_string() + ); + + player.nickname(&env!("TEST_PLAYER_NICKNAME").to_string()); + + let mut controller = ControllerData::default(); + controller.bind_player(player); + + let runtime = controller.runtime(); + + let client = PadClientNetwork::build(Arc::clone(&runtime)); + client.connect(); +}
\ No newline at end of file diff --git a/core/examples/start_client_console.rs b/core/examples/start_client_console.rs deleted file mode 100644 index c4e0126..0000000 --- a/core/examples/start_client_console.rs +++ /dev/null @@ -1,24 +0,0 @@ -use std::net::{IpAddr, Ipv4Addr}; -use nogamepads_lib_rs::pad_data::pad_player_info::nogamepads_player_info::PlayerInfo; -use nogamepads_lib_rs::pad_service::client::nogamepads_client::PadClient; - -fn main() { - - // 构建玩家信息 - let mut player_info = PlayerInfo::new(); - player_info.setup_account_info( - env!("TEST_PLAYER_ACCOUNT"), - env!("TEST_PLAYER_PASSWORD")); - player_info.set_nickname(env!("TEST_PLAYER_NICKNAME")); - player_info.set_customize_color_hsv(320, 0.5, 1.0); // PINK - - // 构建客户端 - let mut client = PadClient::bind_addr( - IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)) - ); - client.bind_player(player_info); // 绑定玩家 - client.enable_console(); // 启用控制台 - - // 连接至目标地址 - client.connect(); -}
\ No newline at end of file diff --git a/core/examples/start_server_console.rs b/core/examples/start_server_console.rs deleted file mode 100644 index cbe081f..0000000 --- a/core/examples/start_server_console.rs +++ /dev/null @@ -1,40 +0,0 @@ -use std::net::{IpAddr, Ipv4Addr}; -use nogamepads_lib_rs::DEFAULT_PORT; -use nogamepads_lib_rs::pad_data::game_profile::game_profile::GameProfile; -use nogamepads_lib_rs::pad_service::server::nogamepads_server::PadServer; - -fn main() { - - // 简易构建服务端 - // let server = PadServer::build_simple(); - // server.start_listening_debug() - - // 构建服务端 - let server = PadServer::default() - - // 地址 - .addr(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), DEFAULT_PORT) - - // 配置信息 - .put_profile( - GameProfile::default() - .game_name("My Multiplayer Game") - .game_description("My Game Description") - .version("0.1 alpha") - .to_owned() - ) - - // 键位注册 - .register_button(0, "Shoot") - .register_button(1, "Jump") - .register_direction(0, "Walk") - .register_axis(0, "View Yaw") - - // 控制台 - .enable_console() - // .quiet() - .build(); - - // 运行服务端 - server.start_server(); -}
\ No newline at end of file diff --git a/core/examples/tcp_server.rs b/core/examples/tcp_server.rs new file mode 100644 index 0000000..6c0e60b --- /dev/null +++ b/core/examples/tcp_server.rs @@ -0,0 +1,43 @@ +use clap::CommandFactory; +use nogamepads::logger_utils::logger_build; +use nogamepads_core::data::game::cli::cli_command::{process_game_cli, GameCli}; +use nogamepads_core::data::game::structs::{GameData, GameRuntimeDataArchive}; +use nogamepads_core::run_services; +use nogamepads_core::service::cli_addition::runtime_consoles::RuntimeConsole; +use nogamepads_core::service::tcp_network::pad_server::structs::PadServerNetwork; +use std::sync::Arc; +use log::LevelFilter::Trace; + +fn main () { + logger_build(Trace); + + // Initialize game data + let mut game = GameData::new(); + game.name("My Game".to_string()); + game.version("0.1".to_string()); + game.load_data( + GameRuntimeDataArchive { + banned: vec![], + } + ); + + // Generate runtime from game data + let runtime = game.runtime(); + + // Establish TCP pad_server using runtime + let tcp_server = PadServerNetwork::build(Arc::clone(&runtime)); + + let server = tcp_server.build_entry(); + + // Cmd + let cmd = RuntimeConsole::build( + GameCli::command(), + "gamecli".to_string(), + Arc::clone(&runtime), + |runtime, cmd: GameCli| { + process_game_cli(runtime, cmd); + } + ).build_entry(); + + run_services!(server, cmd); +}
\ No newline at end of file diff --git a/core/examples/tetris_multicmd_game.rs b/core/examples/tetris_multicmd_game.rs deleted file mode 100644 index 356a1cf..0000000 --- a/core/examples/tetris_multicmd_game.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - // env!("CARGO") -}
\ No newline at end of file |
