From 27411ea5fab47e16418635112e13f59cf4182c80 Mon Sep 17 00:00:00 2001 From: itdominator <1itdominator@gmail.com> Date: Fri, 14 Aug 2026 21:09:28 -0500 Subject: [PATCH] Add WIP config parser arg plus config file --- billiards.gd | 27 +++++++++++++++++++++++++++ configs/games.cfg | 28 ++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 configs/games.cfg diff --git a/billiards.gd b/billiards.gd index a48a346..daa6392 100644 --- a/billiards.gd +++ b/billiards.gd @@ -47,6 +47,8 @@ func _parse_args() -> void: match arg: "join_server": join_server(arg) + "config": + config(arg) "client": client(arg) "game": @@ -111,6 +113,31 @@ func join_server(_arg: String) -> void: game_client.start_client(server_address, int(server_port)) +func config(_arg: String) -> void: + var config_entry = OS.get_cmdline_user_args()[-1] + var config_file = ConfigFile.new() + var err = config_file.load("res://configs/games.cfg") + + if err != OK: + push_error("Config file not loaded...") + return + + if not config_file.has_section(config_entry): + push_error("Config entry doesn't exist: ", config_entry) + return + + var keys = config_file.get_section_keys(config_entry) + for key in keys: + match key: + "server": + var _server = config_file.get_value(config_entry, key) + "client1": + var _client1 = config_file.get_value(config_entry, key) + "client2": + var _client2 = config_file.get_value(config_entry, key) + _: + pass + func client(_arg: String) -> void: Globals.game_state.set_game_scene( "res://scenes/screens/lobby_screen/lobby.tscn" diff --git a/configs/games.cfg b/configs/games.cfg new file mode 100644 index 0000000..d855d87 --- /dev/null +++ b/configs/games.cfg @@ -0,0 +1,28 @@ +[lobby_load] +; Defaults to joning a lobby server bound to 8080. +; Has clients go through lobby to load a mode. +client1="client host_freeball freeball88" +client2="client join freeball88" + +[only_game_server] +server="server_5010 game freeball" + +[8ball_game_server] +server="server_5001 game 8ball" +client1="join_server 127.0.0.1 5001" +client2="join_server 127.0.0.1 5001" + +[9ball_game_server] +server="server_5002 game 9ball" +client1="join_server 127.0.0.1 5002" +client2="join_server 127.0.0.1 5002" + +[snooker_game_server] +server="server_5003 game snooker" +client1="join_server 127.0.0.1 5003" +client2="join_server 127.0.0.1 5003" + +[freeball_game_server] +server="server_5004 game freeball" +client1="join_server 127.0.0.1 5004" +client2="join_server 127.0.0.1 5004"