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()

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=9 format=2]
[gd_scene load_steps=10 format=2]
[ext_resource path="res://addons/escoria-ui-simplemouse/inventory/inventory_ui.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/escoria-core/game/scenes/dialogs/esc_dialog_player.gd" type="Script" id=2]
@@ -6,11 +6,14 @@
[ext_resource path="res://addons/escoria-ui-simplemouse/verbs_mouseicons.tscn" type="PackedScene" id=4]
[ext_resource path="res://addons/escoria-ui-simplemouse/game.gd" type="Script" id=5]
[ext_resource path="res://addons/escoria-ui-simplemouse/tooltip/target_tooltip.tscn" type="PackedScene" id=6]
[ext_resource path="res://addons/escoria-core/ui_library/menus/main_menu/main_menu.tscn" type="PackedScene" id=7]
[ext_resource path="res://addons/escoria-core/ui_library/menus/pause_menu/pause_menu.tscn" type="PackedScene" id=8]
[ext_resource path="res://addons/escoria-ui-simplemouse/theme.tres" type="Theme" id=9]
[node name="game" type="Node2D"]
script = ExtResource( 5 )
main_menu = NodePath("CanvasLayer/main_menu")
pause_menu = NodePath("CanvasLayer/pause_menu")
editor_debug_mode = 1
[node name="camera" parent="." instance=ExtResource( 3 )]
@@ -69,6 +72,9 @@ rect_scale = Vector2( 1, 1 )
visible = false
theme = ExtResource( 9 )
[node name="main_menu" parent="CanvasLayer" instance=ExtResource( 7 )]
visible = false
[node name="dialog_layer" type="CanvasLayer" parent="."]
layer = 3