From 0ef53af01d125fb26da3a2ea331485c2a10102d6 Mon Sep 17 00:00:00 2001 From: Ryan Reed Date: Thu, 27 Mar 2025 16:35:49 -0400 Subject: [PATCH] Attempting to stop the double player saving that occurs sometimes --- project.godot | 4 ++++ resources/save_load_node_types/player_data_resource.gd | 2 +- scenes/player/player.tscn | 2 +- scenes/world/world.gd | 7 ++++--- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/project.godot b/project.godot index 304235e..82de92e 100644 --- a/project.godot +++ b/project.godot @@ -53,6 +53,10 @@ folder_colors={ "res://scenes/ui/": "green" } +[global_group] + +Player="" + [input] move_forward={ diff --git a/resources/save_load_node_types/player_data_resource.gd b/resources/save_load_node_types/player_data_resource.gd index c2b7cfb..54260de 100644 --- a/resources/save_load_node_types/player_data_resource.gd +++ b/resources/save_load_node_types/player_data_resource.gd @@ -4,8 +4,8 @@ extends Node3DDataResource func _save_data(node: Node3D) -> void: - super._save_data(node) # TODO: Save inventory or any other data + pass func _load_data(window: Window) -> void: diff --git a/scenes/player/player.tscn b/scenes/player/player.tscn index a13ae17..11c710d 100644 --- a/scenes/player/player.tscn +++ b/scenes/player/player.tscn @@ -14,7 +14,7 @@ height = 1.95 radius = 0.2 height = 0.89 -[node name="Player" type="CharacterBody3D"] +[node name="Player" type="CharacterBody3D" groups=["Player"]] collision_layer = 2 script = ExtResource("1_7sql3") jump_count = 2 diff --git a/scenes/world/world.gd b/scenes/world/world.gd index 46df604..a8b0bc5 100644 --- a/scenes/world/world.gd +++ b/scenes/world/world.gd @@ -48,9 +48,10 @@ func generate_world() -> void: EntityManager.create_block.emit("002", ground_position) func spawn_player(player_position: Transform3D) -> void: - if has_node("Player"): - $Player.queue_free() - await $Player.tree_exited + var players: Array = get_tree().get_nodes_in_group("Player") + for player: Player in players: + player.queue_free() + await player.tree_exited var player: Player = player_scene.instantiate() player.transform = player_position