aboutsummaryrefslogtreecommitdiff
path: root/core/examples
diff options
context:
space:
mode:
Diffstat (limited to 'core/examples')
-rw-r--r--core/examples/connect.rs25
-rw-r--r--core/examples/start_client_console.rs24
-rw-r--r--core/examples/start_server_console.rs40
-rw-r--r--core/examples/tcp_server.rs43
-rw-r--r--core/examples/tetris_multicmd_game.rs3
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