Fix auto transition when changing room without exit_scene event (#462)
Added a new fourth button in room14 to demonstrate this. Renamed BYPASS_LAST_SCENE to FORCE_LAST_SCENE_NULL to make it a bit clearer. Made events "finished" and "interrupted" signals connections as ONESHOT (so they are disconnected once the signal was received). Also removed some unused files, many others remain. And fixed some bugs here and there.
This commit is contained in:
@@ -78,7 +78,7 @@ position = Vector2( 340.052, 298.812 )
|
||||
|
||||
[node name="r_door" type="Area2D" parent="Hotspots"]
|
||||
script = ExtResource( 8 )
|
||||
global_id = "r_door"
|
||||
global_id = "r12_r_exit"
|
||||
tooltip_name = "Right exit"
|
||||
target_scene = "res://game/rooms/room13/room13.tscn"
|
||||
switch_sound = "res://game/sfx/sounds/doorOpen_2.ogg"
|
||||
@@ -94,3 +94,4 @@ script = ExtResource( 5 )
|
||||
position = Vector2( 542.824, 468.193 )
|
||||
script = ExtResource( 5 )
|
||||
global_id = "player_start"
|
||||
is_start_location = true
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
|
||||
# This event demonstrates the following:
|
||||
#- fade out to black
|
||||
#- show the main menu (automatic transition disabled to manage those manually)
|
||||
#- show the pause menu (automatic transition disabled to manage those manually)
|
||||
#- wait 2 seconds
|
||||
#- change scene (automatic transition disabled to managed those manually) to reload this same room
|
||||
#- change scene (automatic transition disabled to manage those manually) to reload this same room
|
||||
|
||||
set_global transition_manual true
|
||||
|
||||
# Fade out to black
|
||||
transition fade_black out
|
||||
@@ -32,6 +33,6 @@ wait 1
|
||||
# If you transition IN here instead of room's :setup event, you will show the previous room
|
||||
|
||||
# Change scene to same scene, disabled automatic transition
|
||||
change_scene res://game/rooms/room14/room14.tscn true
|
||||
change_scene res://game/rooms/room14/room14.tscn false
|
||||
|
||||
# Do not transition here either, as change_scene ends the execution of this script
|
||||
|
||||
28
game/rooms/room14/esc/button_main_menu_change_scene_auto.esc
Normal file
28
game/rooms/room14/esc/button_main_menu_change_scene_auto.esc
Normal file
@@ -0,0 +1,28 @@
|
||||
|
||||
:use
|
||||
|
||||
# This event demonstrates the following:
|
||||
#- fade out to black
|
||||
#- show the pause menu (automatic transition disabled to manage those manually)
|
||||
#- wait 2 seconds
|
||||
#- change scene (automatic transition enabled) to reload this same room
|
||||
|
||||
set_global transition_manual false
|
||||
|
||||
# Fade out to black
|
||||
transition fade_black out
|
||||
wait 2
|
||||
|
||||
# Show main menu, automatic transition DISABLED
|
||||
show_menu pause
|
||||
|
||||
# Showing menu
|
||||
transition shards in
|
||||
|
||||
# Wait 2 seconds on menu
|
||||
wait 2
|
||||
|
||||
# Change scene to same scene, enabled automatic transition
|
||||
change_scene res://game/rooms/room14/room14.tscn
|
||||
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
stop
|
||||
|
||||
# If we're coming from the same room as this one, we manage the player's position
|
||||
# AND the transition IN manually
|
||||
> [eq ESC_LAST_SCENE room14]
|
||||
# AND the transition IN manually if we pushed that button
|
||||
> [eq ESC_LAST_SCENE room14, transition_manual]
|
||||
teleport player start
|
||||
|
||||
# Set player look left
|
||||
@@ -25,6 +25,15 @@
|
||||
transition fade_black in
|
||||
stop
|
||||
|
||||
# If we're coming from the same room as this one, we manage the player's position only
|
||||
> [eq ESC_LAST_SCENE room14, !transition_manual]
|
||||
teleport player start
|
||||
|
||||
# Set player look left
|
||||
set_angle player 270
|
||||
|
||||
stop
|
||||
|
||||
|
||||
:ready
|
||||
queue_event worker moveworker
|
||||
|
||||
@@ -127,21 +127,21 @@ __meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="show_main_change_scene" parent="." instance=ExtResource( 9 )]
|
||||
[node name="show_pause_change_scene_manual" parent="." instance=ExtResource( 9 )]
|
||||
position = Vector2( 463.318, 0 )
|
||||
global_id = "button_main_change_scene"
|
||||
esc_script = "res://game/rooms/room14/esc/button_main_menu_change_scene.esc"
|
||||
|
||||
[node name="ESCLocation" type="Position2D" parent="show_main_change_scene"]
|
||||
[node name="ESCLocation" type="Position2D" parent="show_pause_change_scene_manual"]
|
||||
position = Vector2( 343.887, 381.305 )
|
||||
script = ExtResource( 5 )
|
||||
|
||||
[node name="Label" type="Label" parent="show_main_change_scene"]
|
||||
[node name="Label" type="Label" parent="show_pause_change_scene_manual"]
|
||||
margin_left = 277.027
|
||||
margin_top = 194.0
|
||||
margin_right = 428.027
|
||||
margin_bottom = 259.0
|
||||
text = "Show main menu with
|
||||
text = "Show pause menu with
|
||||
manual transition
|
||||
and change_scene with
|
||||
manual transition"
|
||||
@@ -150,11 +150,34 @@ __meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="show_pause_change_scene_auto" parent="." instance=ExtResource( 9 )]
|
||||
position = Vector2( 676.318, 0 )
|
||||
global_id = "button_pause_change_scene_auto"
|
||||
esc_script = "res://game/rooms/room14/esc/button_main_menu_change_scene_auto.esc"
|
||||
|
||||
[node name="ESCLocation" type="Position2D" parent="show_pause_change_scene_auto"]
|
||||
position = Vector2( 343.887, 381.305 )
|
||||
script = ExtResource( 5 )
|
||||
|
||||
[node name="Label" type="Label" parent="show_pause_change_scene_auto"]
|
||||
margin_left = 277.027
|
||||
margin_top = 194.0
|
||||
margin_right = 428.027
|
||||
margin_bottom = 259.0
|
||||
text = "Show pause menu with
|
||||
manual transition
|
||||
and change_scene with
|
||||
automatic transition"
|
||||
align = 1
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="worker" parent="." instance=ExtResource( 10 )]
|
||||
position = Vector2( 204.268, 376.233 )
|
||||
esc_script = "res://game/rooms/room14/esc/worker.esc"
|
||||
|
||||
[node name="worker_target" type="Position2D" parent="."]
|
||||
position = Vector2( 970.51, 374.808 )
|
||||
position = Vector2( 917.51, 475.808 )
|
||||
script = ExtResource( 5 )
|
||||
global_id = "worker_target"
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=1]
|
||||
|
||||
[sub_resource type="NavigationPolygon" id=1]
|
||||
vertices = PoolVector2Array( 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, 129.634, 615.792, 1143.08, 613.35, -9.16094, 803.802, 84.5821, 654.06, -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698 )
|
||||
polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 0, 3, 6, 7 ), PoolIntArray( 7, 6, 8, 9, 10 ) ]
|
||||
outlines = [ PoolVector2Array( -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 129.634, 615.792, 1143.08, 613.35, 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, -9.16094, 803.802 ) ]
|
||||
|
||||
[node name="walkable_area" type="Navigation2D"]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="platform" type="NavigationPolygonInstance" parent="."]
|
||||
position = Vector2( 6.73163, -264.779 )
|
||||
navpoly = SubResource( 1 )
|
||||
__meta__ = {
|
||||
"_editor_description_": ""
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=1]
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=2]
|
||||
|
||||
[node name="r_door" type="Area2D"]
|
||||
pause_mode = 1
|
||||
script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_editor_description_": ""
|
||||
}
|
||||
global_id = "r1_r_exit"
|
||||
esc_script = "res://game/rooms/room01/esc/right_exit.esc"
|
||||
is_exit = true
|
||||
tooltip_name = "Exit"
|
||||
default_action = "walk"
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
animations = null
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||
polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="."]
|
||||
position = Vector2( 1225.47, 353.99 )
|
||||
script = ExtResource( 2 )
|
||||
@@ -7,8 +7,8 @@
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=5]
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=6]
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=7]
|
||||
[ext_resource path="res://game/rooms/room15/r_door.tscn" type="PackedScene" id=8]
|
||||
[ext_resource path="res://game/items/escitems/button.tscn" type="PackedScene" id=9]
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_exit.gd" type="Script" id=10]
|
||||
|
||||
[sub_resource type="NavigationPolygon" id=1]
|
||||
vertices = PoolVector2Array( 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, 864.626, 613.518, 1143.08, 613.35, -9.16094, 803.802, 386.666, 618.012, 129.634, 615.792, 84.5821, 654.06, -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698 )
|
||||
@@ -80,9 +80,17 @@ position = Vector2( 37.4521, 392.045 )
|
||||
script = ExtResource( 5 )
|
||||
global_id = "r12_l_exit"
|
||||
|
||||
[node name="r_door" parent="Hotspots" instance=ExtResource( 8 )]
|
||||
global_id = "r15_r_exit"
|
||||
esc_script = ""
|
||||
[node name="r_door" type="Area2D" parent="Hotspots"]
|
||||
script = ExtResource( 10 )
|
||||
tooltip_name = "Right exit"
|
||||
switch_sound = "res://game/sfx/sounds/doorOpen_2.ogg"
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"]
|
||||
position = Vector2( 0, -1 )
|
||||
polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
|
||||
__meta__ = {
|
||||
"_editor_description_": ""
|
||||
}
|
||||
|
||||
[node name="ESCLocation" type="Position2D" parent="Hotspots/r_door"]
|
||||
position = Vector2( 1231.78, 360.624 )
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=1]
|
||||
|
||||
[sub_resource type="NavigationPolygon" id=1]
|
||||
vertices = PoolVector2Array( 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, 129.634, 615.792, 1143.08, 613.35, -9.16094, 803.802, 84.5821, 654.06, -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698 )
|
||||
polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 0, 3, 6, 7 ), PoolIntArray( 7, 6, 8, 9, 10 ) ]
|
||||
outlines = [ PoolVector2Array( -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 129.634, 615.792, 1143.08, 613.35, 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, -9.16094, 803.802 ) ]
|
||||
|
||||
[node name="walkable_area" type="Navigation2D"]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="platform" type="NavigationPolygonInstance" parent="."]
|
||||
position = Vector2( 6.73163, -264.779 )
|
||||
navpoly = SubResource( 1 )
|
||||
__meta__ = {
|
||||
"_editor_description_": ""
|
||||
}
|
||||
Reference in New Issue
Block a user