diff --git a/scripts/globals/cursorer.gd b/scripts/globals/cursorer.gd index dba94ee..8a385a6 100644 --- a/scripts/globals/cursorer.gd +++ b/scripts/globals/cursorer.gd @@ -2,7 +2,7 @@ extends Node func _ready() -> void: - Networker.main_loaded.connect(_on_networker_main_loaded) + Referencer.main_loaded.connect(_on_referencer_main_loaded) func _input(event: InputEvent) -> void: @@ -13,5 +13,5 @@ func _input(event: InputEvent) -> void: Input.mouse_mode = Input.MOUSE_MODE_CAPTURED -func _on_networker_main_loaded() -> void: +func _on_referencer_main_loaded() -> void: Input.mouse_mode = Input.MOUSE_MODE_CAPTURED diff --git a/scripts/globals/networker.gd b/scripts/globals/networker.gd index 2d18a02..b4de265 100644 --- a/scripts/globals/networker.gd +++ b/scripts/globals/networker.gd @@ -1,6 +1,5 @@ extends Node -signal main_loaded signal network_error(message: String) const DEFAULT_PORT: int = 10567 @@ -41,9 +40,13 @@ func host_game(dedicated: bool = false) -> void: if error: match error: ERR_ALREADY_IN_USE: - network_error.emit("Already in use") + var message := "Already in use" + printerr(message) + network_error.emit(message) ERR_CANT_CREATE: - network_error.emit("Cannot create server") + var message := "Cannot create server" + printerr(message) + network_error.emit(message) return multiplayer.set_multiplayer_peer(_peer) @@ -63,9 +66,13 @@ func join_game(address: String) -> void: if error: match error: ERR_ALREADY_IN_USE: - network_error.emit("Already in use") + var message := "Already in use" + printerr(message) + network_error.emit(message) ERR_CANT_CREATE: - network_error.emit("Cannot create server") + var message := "Cannot create client" + printerr(message) + network_error.emit(message) return multiplayer.set_multiplayer_peer(_peer) @@ -80,23 +87,18 @@ func is_active() -> bool: ) -func format_player(peer_id: int) -> String: - return "[" + str(peer_id) + ": " + players[peer_id]["name"] + "]" - - func _switch_scene(from: Node, to: PackedScene) -> void: if from: from.queue_free() var new_scene := to.instantiate() get_tree().get_root().add_child(new_scene) - print("Scene loaded") + print("Scene ", to, " loaded") func _load_main() -> void: print("Loading Main...") _switch_scene($/root/Title, _main_scene) - main_loaded.emit() func _add_player(peer_id: int) -> void: @@ -114,7 +116,7 @@ func _remove_player(peer_id: int) -> void: if not multiplayer.is_server(): return - print("Removing player ", format_player(peer_id)) + print("Removing player ", peer_id, " ", players[peer_id]["name"]) var player := Referencer.main.player_holder.get_node_or_null(str(peer_id)) if player: player.queue_free() @@ -125,7 +127,7 @@ func _register_player(player_info: Dictionary) -> void: var peer_id := multiplayer.get_remote_sender_id() print("Registering player ", peer_id, " ", player_info) if peer_id == 1 and !player_info["name"]: - print("Registered player's id is ", peer_id, " and name is empty, so skipping") + print("Skipping registering the host") return players[peer_id] = player_info @@ -137,25 +139,27 @@ func _on_multiplayer_peer_connected(peer_id: int) -> void: func _on_multiplayer_peer_disconnected(peer_id: int) -> void: - print("Peer disconnected ", format_player(peer_id)) + print("Peer disconnected ", peer_id, " ", players[peer_id]["name"]) _remove_player(peer_id) players.erase(peer_id) func _on_multiplayer_connected_to_server() -> void: - print("Connected to server") var peer_id := multiplayer.get_unique_id() + print("Connected to server as ", peer_id) players[peer_id] = _local_player_info func _on_multiplayer_connection_failed() -> void: - printerr("Connection failed") multiplayer.set_multiplayer_peer(null) - network_error.emit("Connection failed") + var message := "Connection failed" + printerr(message) + network_error.emit(message) func _on_multiplayer_server_disconnected() -> void: - printerr("Server disconnected") + var message := "Server disconnected" + printerr(message) players.clear() _switch_scene($/root/Main, _title_scene) - network_error.emit("Server disconnected") + network_error.emit(message) diff --git a/scripts/globals/referencer.gd b/scripts/globals/referencer.gd index fd12cdf..87653bc 100644 --- a/scripts/globals/referencer.gd +++ b/scripts/globals/referencer.gd @@ -1,5 +1,11 @@ extends Node +signal main_loaded + var camera: Camera3D var player: Player -var main: Main +var main: Main: + set(value): + if value: + main_loaded.emit() + main = value diff --git a/scripts/main.gd b/scripts/main.gd index 2259562..d988e12 100644 --- a/scripts/main.gd +++ b/scripts/main.gd @@ -6,9 +6,9 @@ extends Node func _ready() -> void: - Referencer.main = self player_spawner.spawned.connect(_on_player_spawner_spawned) player_spawner.despawned.connect(_on_player_spawner_despawned) + Referencer.main = self func _exit_tree() -> void: diff --git a/scripts/player.gd b/scripts/player.gd index c51da11..ea956af 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -28,10 +28,12 @@ var _default_camera_height: float func _enter_tree() -> void: _peer_id = str(name).to_int() + print("Player ", _peer_id, " enter tree") set_multiplayer_authority(_peer_id) func _ready() -> void: + print("Player ", _peer_id, " ready") _name_label.text = str(name) print(str(name), Networker.players) if not is_multiplayer_authority(): @@ -42,16 +44,16 @@ func _ready() -> void: _camera.make_current() Referencer.player = self Referencer.camera = _camera - print("Player ", Networker.format_player(_peer_id), " ready") + print("Player ", _peer_id, " ready local") func _exit_tree() -> void: + print("Player ", _peer_id, " exit tree") if Networker.is_active() and not is_multiplayer_authority(): return Referencer.player = null Referencer.camera = null - print("Player ", Networker.format_player(_peer_id), " exiting tree") func _process(delta: float) -> void: