From 1c1262af82e36a9855d306079ca63279e755eb1c Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 2 Oct 2024 01:30:03 +0200 Subject: [PATCH] introducing dynamic scene loading, main scene rework --- design/interface-elements.svg | 146 +++++--- .../{import/textures => }/volunteer_room.tscn | 4 +- .../interface-elements/loading_rect_clip.png | 3 + .../loading_rect_clip.png.import | 34 ++ .../interface-elements/loading_rect_clippng | Bin 0 -> 649 bytes .../interface-elements/loading_rect_deco.png | 3 + .../loading_rect_deco.png.import | 34 ++ .../interface-elements/loading_rect_frame.png | 3 + .../loading_rect_frame.png.import | 34 ++ src/logic-scenes/themes/system.theme | Bin 2253 -> 2278 bytes src/main.gd | 36 +- src/main.tscn | 332 +++++++++++++++++- 12 files changed, 570 insertions(+), 59 deletions(-) rename src/base-environments/volunteer_room/{import/textures => }/volunteer_room.tscn (96%) create mode 100644 src/import/interface-elements/loading_rect_clip.png create mode 100644 src/import/interface-elements/loading_rect_clip.png.import create mode 100644 src/import/interface-elements/loading_rect_clippng create mode 100644 src/import/interface-elements/loading_rect_deco.png create mode 100644 src/import/interface-elements/loading_rect_deco.png.import create mode 100644 src/import/interface-elements/loading_rect_frame.png create mode 100644 src/import/interface-elements/loading_rect_frame.png.import diff --git a/design/interface-elements.svg b/design/interface-elements.svg index ad88e17..5326275 100644 --- a/design/interface-elements.svg +++ b/design/interface-elements.svg @@ -24,9 +24,9 @@ inkscape:deskcolor="#505050" inkscape:document-units="px" showgrid="false" - inkscape:zoom="0.457453" - inkscape:cx="214.22966" - inkscape:cy="1458.0733" + inkscape:zoom="5.1754899" + inkscape:cx="2917.5016" + inkscape:cy="69.751851" inkscape:window-width="3840" inkscape:window-height="2096" inkscape:window-x="0" @@ -47,7 +47,14 @@ id="page2415" inkscape:export-filename="../src/logic-scenes/startup/start_frame.png" inkscape:export-xdpi="96" - inkscape:export-ydpi="96" /> + transform="matrix(1.2490601,0,0,1,242.22248,8.1907649)" /> diff --git a/src/base-environments/volunteer_room/import/textures/volunteer_room.tscn b/src/base-environments/volunteer_room/volunteer_room.tscn similarity index 96% rename from src/base-environments/volunteer_room/import/textures/volunteer_room.tscn rename to src/base-environments/volunteer_room/volunteer_room.tscn index 39d813f..4823a36 100644 --- a/src/base-environments/volunteer_room/import/textures/volunteer_room.tscn +++ b/src/base-environments/volunteer_room/volunteer_room.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=5 format=3 uid="uid://flisupth27th"] -[ext_resource type="PackedScene" uid="uid://fcxu7diwgr4c" path="res://base-environments/volunteer_room/import/volunteer_room.glb" id="1_qf4mf"] +[ext_resource type="PackedScene" uid="uid://fcxu7diwgr4c" path="res://base-environments/volunteer_room/import/volunteer_room.glb" id="1_o6q23"] [sub_resource type="PhysicalSkyMaterial" id="PhysicalSkyMaterial_8h7yl"] @@ -42,7 +42,7 @@ adjustment_enabled = true [node name="Node3D" type="Node3D"] -[node name="volunteer_room" parent="." instance=ExtResource("1_qf4mf")] +[node name="volunteer_room" parent="." instance=ExtResource("1_o6q23")] [node name="OmniLight3D2" type="OmniLight3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 6.70552e-08, 0, -6.70552e-08, 1, 1.8719, 1.58367, -5.11048) diff --git a/src/import/interface-elements/loading_rect_clip.png b/src/import/interface-elements/loading_rect_clip.png new file mode 100644 index 0000000..b128714 --- /dev/null +++ b/src/import/interface-elements/loading_rect_clip.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c04d104283953a05f7b21cd91824c04a384d9a31aab78a6805ccef596368d4d7 +size 649 diff --git a/src/import/interface-elements/loading_rect_clip.png.import b/src/import/interface-elements/loading_rect_clip.png.import new file mode 100644 index 0000000..54f5cf6 --- /dev/null +++ b/src/import/interface-elements/loading_rect_clip.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d031kxe5m4ihh" +path="res://.godot/imported/loading_rect_clip.png-d6c6f5676ae4dd43e8d3a04873327a56.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://import/interface-elements/loading_rect_clip.png" +dest_files=["res://.godot/imported/loading_rect_clip.png-d6c6f5676ae4dd43e8d3a04873327a56.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/src/import/interface-elements/loading_rect_clippng b/src/import/interface-elements/loading_rect_clippng new file mode 100644 index 0000000000000000000000000000000000000000..89a81c950e4e8dcdbaaf5e9e9c01d27a939b3b63 GIT binary patch literal 649 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSoCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&3=B+So-U3d6?5L+H1uK)6mff4 z9}?qPz}zf#LMVrA%c-tST$>w0ngjyY5sMfA@Y?P@gGzsrRu& z;au6@3|4x~4aN)>*ooaM=2UwW&3{sJX!DAD{*$Jw^e=6WJ-WYfyXU>hB}<#Fb|{_< zKIw2)_kmU2kL9nHl`K$Wm@n-Y{!x7MH^~R*%XXiw+M5@OKW$XvHsOHf7wS_H)gQ%ZYC%+f3&xeQa?p=8e|L*h!~nCHlUzJ{di!|I)!* n3}5_zNO7by6tFR168k@}Yu+{7UGfr`j2Jv!{an^LB{Ts5r*_z0 literal 0 HcmV?d00001 diff --git a/src/import/interface-elements/loading_rect_deco.png b/src/import/interface-elements/loading_rect_deco.png new file mode 100644 index 0000000..15c25bc --- /dev/null +++ b/src/import/interface-elements/loading_rect_deco.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:110584a273e501b1feb478457817bd86f55090084bf73174a91875dacbd18b39 +size 2061 diff --git a/src/import/interface-elements/loading_rect_deco.png.import b/src/import/interface-elements/loading_rect_deco.png.import new file mode 100644 index 0000000..465077b --- /dev/null +++ b/src/import/interface-elements/loading_rect_deco.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dpftqdvtrkioh" +path="res://.godot/imported/loading_rect_deco.png-0a6f5c768c825bbd169367e1ed426907.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://import/interface-elements/loading_rect_deco.png" +dest_files=["res://.godot/imported/loading_rect_deco.png-0a6f5c768c825bbd169367e1ed426907.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/src/import/interface-elements/loading_rect_frame.png b/src/import/interface-elements/loading_rect_frame.png new file mode 100644 index 0000000..d46a53c --- /dev/null +++ b/src/import/interface-elements/loading_rect_frame.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90f5409fa4e45db0eea504ea178338fdb0ad36da0a8aad6cf83dcfd6405be375 +size 632 diff --git a/src/import/interface-elements/loading_rect_frame.png.import b/src/import/interface-elements/loading_rect_frame.png.import new file mode 100644 index 0000000..52ad8e6 --- /dev/null +++ b/src/import/interface-elements/loading_rect_frame.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bqf82f8dk4yun" +path="res://.godot/imported/loading_rect_frame.png-165c087a2ed93fd586d0158dd66f4cfc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://import/interface-elements/loading_rect_frame.png" +dest_files=["res://.godot/imported/loading_rect_frame.png-165c087a2ed93fd586d0158dd66f4cfc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/src/logic-scenes/themes/system.theme b/src/logic-scenes/themes/system.theme index d0d4da92d49be76a4785bfaa4ea5853065c3df1a..3c5444b49d9d6c0e207e7eb620e500bab1999505 100644 GIT binary patch literal 2278 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 diff --git a/src/main.gd b/src/main.gd index 84f122f..a7aac2b 100644 --- a/src/main.gd +++ b/src/main.gd @@ -1,9 +1,39 @@ extends Node3D +@export_file(".tscn") var youth_room_path: String +@export_file(".tscn") var voluntary_room: String +@export_file(".tscn") var study_room: String + +@onready var loading_player: AnimationPlayer = %MenuAnimationPlayer + +var last_progress_state: float = 0 +var current_loaded_room: Node3D +var currently_loading_room: String = "": + set(path): + if path != "": + ResourceLoader.load_threaded_request(path, "PackedScene") + currently_loading_room = path + last_progress_state + loading_player.queue("loading") + else: + loading_player.queue("loading_done") + # Called when the node enters the scene tree for the first time. func _ready(): - pass # Replace with function body. + currently_loading_room = youth_room_path + +func _process(delta: float) -> void: + if currently_loading_room != "": + var progress:Array + if ResourceLoader.load_threaded_get_status(youth_room_path, progress) == 3: + current_loaded_room = ResourceLoader.load_threaded_get(youth_room_path).instantiate() + add_child(current_loaded_room) + move_child(current_loaded_room, 0) + currently_loading_room = "" + elif last_progress_state != progress[0]: + loading_player.seek(progress[0]) + last_progress_state = progress[0] func debug_youth(): get_child(1).hide() @@ -11,7 +41,3 @@ func debug_youth(): get_child(3).hide() get_child(0).get_ready() get_child(0).start() - -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta): - pass diff --git a/src/main.tscn b/src/main.tscn index bcc29d3..a147bdc 100644 --- a/src/main.tscn +++ b/src/main.tscn @@ -1,10 +1,15 @@ -[gd_scene load_steps=7 format=3 uid="uid://befxf8uruwnrl"] +[gd_scene load_steps=20 format=3 uid="uid://befxf8uruwnrl"] [ext_resource type="Script" path="res://main.gd" id="1_rqkns"] [ext_resource type="PackedScene" uid="uid://gldtxysavetf" path="res://logic-scenes/startup/startup.tscn" id="1_v5rpm"] -[ext_resource type="PackedScene" uid="uid://b3b0gyvklqn50" path="res://base-environments/youth_room/youth_room.tscn" id="2_23ia3"] [ext_resource type="PackedScene" uid="uid://b51wdql4mby47" path="res://main_menu.tscn" id="3_ik73t"] +[ext_resource type="Texture2D" uid="uid://d031kxe5m4ihh" path="res://import/interface-elements/loading_rect_clip.png" id="5_sr555"] +[ext_resource type="Texture2D" uid="uid://bqf82f8dk4yun" path="res://import/interface-elements/loading_rect_frame.png" id="6_aaaxa"] +[ext_resource type="Texture2D" uid="uid://dpftqdvtrkioh" path="res://import/interface-elements/loading_rect_deco.png" id="7_koraw"] [ext_resource type="PackedScene" uid="uid://6aaxpvoepqrm" path="res://disclaimer.tscn" id="7_t45fc"] +[ext_resource type="Script" path="res://logic-scenes/main menu/save_game_list.gd" id="8_jecj3"] +[ext_resource type="Script" path="res://dev-util/savegame.gd" id="9_7v45a"] +[ext_resource type="Texture2D" uid="uid://bk5ja14r7r6i4" path="res://import/interface-elements/empty_save_slot.png" id="10_l87ac"] [sub_resource type="GDScript" id="GDScript_8sq0u"] script/source = "extends Label @@ -13,10 +18,282 @@ func _process(_delta): text = str(Engine.get_frames_per_second()) " -[node name="root" type="Node3D"] -script = ExtResource("1_rqkns") +[sub_resource type="Animation" id="Animation_y6s08"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.5708] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("frame/deco:rotation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [-0.314159] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("frame/deco:modulate") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("../../Panel:modulate") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(0, 0, 0, 1)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("../../Main Menu:modulate") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} -[node name="youth room" parent="." instance=ExtResource("2_23ia3")] +[sub_resource type="Animation" id="Animation_l5ynk"] +resource_name = "init" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("../../Panel:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(0, 0, 0, 1), Color(1, 1, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("../../Main Menu:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.166667), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} + +[sub_resource type="Animation" id="Animation_k667j"] +resource_name = "loading" +length = 2.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.166667), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.0333333, 1.76667), +"transitions": PackedFloat32Array(0.406126, 1), +"update": 0, +"values": [1.5708, 0.261799] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("frame/deco:rotation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0.0333368, 1.76667), +"transitions": PackedFloat32Array(0.406126, 1), +"update": 0, +"values": [-1.5708, -0.261799] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("frame/deco:modulate") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0.366667, 1.66667), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} + +[sub_resource type="Animation" id="Animation_nuxr6"] +resource_name = "loading_done" +length = 1.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1.4), +"transitions": PackedFloat32Array(2.2974, 1), +"update": 0, +"values": [0.261799, -1.5708] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("frame/deco:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 1.4), +"transitions": PackedFloat32Array(2.2974, 1), +"update": 0, +"values": [-0.261799, 1.5708] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath(".:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0.933333, 1.36667), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("../../Panel:modulate") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0.566667, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ogbs1"] +_data = { +"RESET": SubResource("Animation_y6s08"), +"init": SubResource("Animation_l5ynk"), +"loading": SubResource("Animation_k667j"), +"loading_done": SubResource("Animation_nuxr6") +} + +[sub_resource type="Resource" id="Resource_u1xhm"] +script = ExtResource("9_7v45a") +current_room = 0 +mementos_complete = 0 +thumbnail = ExtResource("10_l87ac") +last_saved = { +"day": 1, +"dst": true, +"hour": 15, +"minute": 7, +"month": 10, +"second": 31, +"weekday": 2, +"year": 2024 +} + +[sub_resource type="Resource" id="Resource_2d1xt"] +script = ExtResource("9_7v45a") +current_room = 0 +mementos_complete = 0 +thumbnail = ExtResource("10_l87ac") +last_saved = { +"day": 1, +"dst": true, +"hour": 15, +"minute": 7, +"month": 10, +"second": 31, +"weekday": 2, +"year": 2024 +} + +[sub_resource type="Resource" id="Resource_slmss"] +script = ExtResource("9_7v45a") +current_room = 0 +mementos_complete = 0 +thumbnail = ExtResource("10_l87ac") +last_saved = { +"day": 1, +"dst": true, +"hour": 15, +"minute": 7, +"month": 10, +"second": 31, +"weekday": 2, +"year": 2024 +} + +[node name="main" type="Node3D"] +script = ExtResource("1_rqkns") +youth_room_path = "res://base-environments/youth_room/youth_room.tscn" +voluntary_room = "res://base-environments/volunteer_room/volunteer_room.tscn" + +[node name="Panel" type="Panel" parent="."] +modulate = Color(0, 0, 0, 1) +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 [node name="Main Menu" parent="." instance=ExtResource("3_ik73t")] @@ -31,4 +308,49 @@ visible = false [node name="Disclaimer" parent="." instance=ExtResource("7_t45fc")] visible = false +[node name="Control" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -40.0 +offset_right = 40.0 +grow_vertical = 0 + +[node name="mask" type="Sprite2D" parent="Control"] +modulate = Color(1, 1, 1, 0) +clip_children = 1 +position = Vector2(98, -47) +rotation = 1.5708 +texture = ExtResource("5_sr555") + +[node name="frame" type="Sprite2D" parent="Control/mask"] +clip_children = 1 +texture = ExtResource("6_aaaxa") + +[node name="deco" type="Sprite2D" parent="Control/mask/frame"] +modulate = Color(1, 1, 1, 0) +rotation = -0.314159 +texture = ExtResource("7_koraw") + +[node name="MenuAnimationPlayer" type="AnimationPlayer" parent="."] +unique_name_in_owner = true +root_node = NodePath("../Control/mask") +libraries = { +"": SubResource("AnimationLibrary_ogbs1") +} +autoplay = "init" + +[node name="SaveGameHandle" type="CenterContainer" parent="."] +visible = false +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("8_jecj3") +save_1 = SubResource("Resource_u1xhm") +save_2 = SubResource("Resource_2d1xt") +save_3 = SubResource("Resource_slmss") + [connection signal="on_read" from="Disclaimer" to="Startup Menu" method="starting"]