Add show_menu and hide_menu ESC commands

Fixes godot-escoria/escoria-issues#48
Fix: tween was stopped_all before starting


Fix: reload locale from settings in ESCGame

Since main menu and pause menu are now loaded from ESCGame and not from escoria.gd, this must be done here.
Fix: small crash in load game

But save and load are broken at the moment...
Fix: check save and load after main menu changes


Required fixes


Fix: manage the game scene better in show and hide_menu


Enh: transition back in to the previous room if there was one


Fix a bug occurring where change_scene awaits forever for setup to end


Reworked change_scene and esc_room implementation to avoid yielding


Added a controller variable to allow new event run in events_manager


Don't empty the events queue if the running_event was interrupted


Fixed transitions and automatic transitions in change_scene

Added trace log level (for esc_compiler in particular)
Fixed various bugs in ESC scripts
Fix a bug where exit_scene happened multiple times where fast walking

Needed to clear the event queue
Fixes ready event was run because BYPASS_LAST_SCENE wrongly set


Inverted parameter "disable_automatic_transitions"

for change_scene, hide_menu, show_menu commands
Fix broken sched_event


Fixes as requested in PR
This commit is contained in:
Julian Murgia
2021-11-11 22:20:36 +01:00
parent 59c03dd9e2
commit c86b802cbb
56 changed files with 998 additions and 317 deletions

View File

@@ -27,6 +27,11 @@ Implement methods to react to inputs.
- hide_ui()
- show_ui()
- pause_game()
- unpause_game()
- show_main_menu()
- hide_main_menu()
- _on_event_done(event_name: String)
"""
@@ -171,18 +176,27 @@ func _on_event_done(event_name: String):
escoria.action_manager.clear_current_action()
$CanvasLayer/ui/HBoxContainer/verbs_menu.clear_tool_texture()
func hide_main_menu():
if get_node(main_menu).visible:
get_node(main_menu).hide()
func pause_game():
if $CanvasLayer/pause_menu.visible:
$CanvasLayer/pause_menu.hide()
func show_main_menu():
if not get_node(main_menu).visible:
get_node(main_menu).show()
func unpause_game():
if get_node(pause_menu).visible:
get_node(pause_menu).hide()
escoria.object_manager.get_object("_camera").node.current = true
escoria.main.current_scene.game.show_ui()
escoria.main.current_scene.show()
else:
$CanvasLayer/pause_menu.set_save_enabled(
func pause_game():
if not get_node(pause_menu).visible:
get_node(pause_menu).set_save_enabled(
escoria.save_manager.save_enabled
)
$CanvasLayer/pause_menu.show()
get_node(pause_menu).show()
escoria.object_manager.get_object("_camera").node.current = false
escoria.main.current_scene.game.hide_ui()
escoria.main.current_scene.hide()