class_name GameData extends Node var client1: int var client2: int var player_id: String = "" var game_address: String = "0.0.0.0" var game_port: int = 8080 var game_mode: String = "freeball" enum PlayerType { Player1, Player2 } enum GameModeType { BALL_8, BALL_9, SNOOKER, FREE_BALL } const MATCH_TYPES: Dictionary = { "8ball": GameModeType.BALL_8, "9ball": GameModeType.BALL_9, "snooker": GameModeType.SNOOKER, "freeball": GameModeType.FREE_BALL } var GameMode: Dictionary = { GameModeType.BALL_8: Ball8, GameModeType.BALL_9: Ball9, GameModeType.SNOOKER: Snooker, GameModeType.FREE_BALL: FreeBall } var SelectedGameMode: GameModeType = GameModeType.FREE_BALL func _init() -> void: Globals.game_data = self func get_mode_pretty() -> String: match game_mode: "8ball": return "8-Ball" "9ball": return "9-Ball" "snooker": return "Snooker" "freeball": return "Free Ball" _: return "" @rpc("authority", "reliable") func set_game_address(address: String) -> void: game_address = address @rpc("authority", "reliable") func set_game_port(port: String) -> void: game_port = int(port) func set_game_mode(mode: String) -> void: SelectedGameMode = MATCH_TYPES[mode] func set_player_id(is_player_1: bool) -> void: player_id = "Player 1" if is_player_1 else "Player 2"