Clean after change room: game scene is cleanly removed from prev room (#416)

This commit is contained in:
Julian Murgia
2021-10-19 15:48:26 +02:00
committed by GitHub
parent 4fd1d72993
commit 89da6924a3
4 changed files with 22 additions and 4 deletions

View File

@@ -83,6 +83,10 @@ func run(command_params: Array) -> int:
] ]
) )
if escoria.main.current_scene \
and escoria.game_scene.get_parent() == escoria.main.current_scene:
escoria.main.current_scene.remove_child(escoria.game_scene)
# Load room scene # Load room scene
var room_scene = res_room.instance() var room_scene = res_room.instance()
if room_scene: if room_scene:

View File

@@ -40,9 +40,9 @@ func set_scene(p_scene: Node) -> void:
if current_scene != null: if current_scene != null:
clear_scene() clear_scene()
if not p_scene in get_children():
add_child(p_scene) add_child(p_scene)
move_child(p_scene, 0) move_child(p_scene, 0)
current_scene = p_scene current_scene = p_scene
check_game_scene_methods() check_game_scene_methods()
@@ -59,6 +59,7 @@ func clear_scene() -> void:
escoria.action_manager.clear_current_action() escoria.action_manager.clear_current_action()
escoria.action_manager.clear_current_tool() escoria.action_manager.clear_current_tool()
if escoria.game_scene.get_parent() == current_scene:
current_scene.remove_child(escoria.game_scene) current_scene.remove_child(escoria.game_scene)
remove_child(current_scene) remove_child(current_scene)

View File

@@ -39,7 +39,7 @@ onready var pause_menu = $ui/pause_menu
onready var inventory_ui = $ui/Control/panel_down/VBoxContainer/HBoxContainer\ onready var inventory_ui = $ui/Control/panel_down/VBoxContainer/HBoxContainer\
/InventoryMargin/inventory_ui /InventoryMargin/inventory_ui
func _ready(): func _enter_tree():
ProjectSettings.set_setting("escoria/ui/tooltip_follows_mouse", false) ProjectSettings.set_setting("escoria/ui/tooltip_follows_mouse", false)
escoria.action_manager.connect( escoria.action_manager.connect(
"action_finished", "action_finished",
@@ -47,6 +47,13 @@ func _ready():
"_on_action_finished" "_on_action_finished"
) )
func _exit_tree():
escoria.action_manager.disconnect(
"action_finished",
self,
"_on_action_finished"
)
## BACKGROUND ## ## BACKGROUND ##

View File

@@ -38,6 +38,12 @@ func _enter_tree():
"_on_action_finished" "_on_action_finished"
) )
func _exit_tree():
escoria.action_manager.disconnect(
"action_finished",
self,
"_on_action_finished"
)
## BACKGROUND ## ## BACKGROUND ##