diff --git a/src/dev-util/savegame.gd b/src/dev-util/savegame.gd index 62b2299..f5b0e3e 100644 --- a/src/dev-util/savegame.gd +++ b/src/dev-util/savegame.gd @@ -13,7 +13,7 @@ var current_room_path: String: changed.emit() @export var unique_save_name: String = "frame_of_mind_%s_%s" % [Time.get_date_string_from_system(), Time.get_time_string_from_system().replace(":", "-")] + "-" + str(randi()): - set(value): + set(value): unique_save_name = value if _is_initialised: changed.emit() @@ -78,7 +78,7 @@ func _init(initial_filepath = "") -> void: read_save_file() _is_initialised = true -func read_save_file() -> void: +func read_save_file() -> void: if not DirAccess.dir_exists_absolute(filepath.get_base_dir()): DirAccess.make_dir_absolute(filepath.get_base_dir()) @@ -170,7 +170,7 @@ func _get_save_dict() -> Dictionary: func save_to_file(screen_shot: Texture) -> void: print_debug("Savegame: Saving to file: %s" % filepath) - + if filepath == "DEBUG": push_warning("Savegame: Saving DEBUG save skipped. This is intentional.") return diff --git a/src/logic-scenes/boot/boot.gd b/src/logic-scenes/boot/boot.gd index 67c7ece..70ca7de 100644 --- a/src/logic-scenes/boot/boot.gd +++ b/src/logic-scenes/boot/boot.gd @@ -1,6 +1,5 @@ extends Node -# General housekeeping to set up a "normal" -# game experience, e.g. -# - ensure settings exist -# - ensure savegames are healthy +func _ready() -> void: + Main.normal_boot = true # Tell the system this is a normal game start + \ No newline at end of file diff --git a/src/singletons/main/main.gd b/src/singletons/main/main.gd index 6d26838..12c94b0 100644 --- a/src/singletons/main/main.gd +++ b/src/singletons/main/main.gd @@ -1,14 +1,16 @@ extends Control +var normal_boot : bool = false + @export_file(".tscn") var youth_room_path: String @export_file(".tscn") var transition_room_path: String @export_file(".tscn") var adulthood_room_path: String @export_file(".tscn") var ending_path: String +@onready var curtain: Curtain = %Curtain +@onready var credits_roll: Control = %CreditsRoll @onready var main_menu: MainMenu = %MainMenu @onready var pause_menu: PauseManu = %PauseMenu -@onready var menu_animation: AnimationTree = %MenuAnimationTree -@onready var state_machine: AnimationNodeStateMachinePlayback = menu_animation["parameters/playback"] @onready var room_paths := { State.rooms.NULL: youth_room_path, # Maybe Draeven story? @@ -19,15 +21,20 @@ extends Control } func _ready() -> void: - print_debug("main.gd: ready()") - if State.room == null: - _open() + print_debug("main.gd: _ready()") + await get_tree().process_frame + if normal_boot: + print_debug("main.gd: normal boot") var path := await main_menu.execute() - _close() await _load_room(path) else: - hide() - await _mainloop() # Debug functionality + print_debug("main.gd: direct boot") + credits_roll.hide() + main_menu.hide() + pause_menu.hide() + + await curtain.hide() + #await _mainloop() # Debug functionality func _mainloop() -> void: @@ -57,14 +64,6 @@ func _load_room(next_path: String) -> void: push_error("Failed to load youth room scene.") return -# TODO: ugh, godot tweens are the wurst -func _open() -> void: - show() - menu_animation["parameters/conditions/loading_done"] = false - menu_animation["parameters/conditions/load_save"] = false - -func _close() -> void: - pass # #var in_game = false diff --git a/src/singletons/main/main.tscn b/src/singletons/main/main.tscn index de1bfbb..50d7a53 100644 --- a/src/singletons/main/main.tscn +++ b/src/singletons/main/main.tscn @@ -1,25 +1,16 @@ -[gd_scene load_steps=69 format=3 uid="uid://befxf8uruwnrl"] +[gd_scene load_steps=17 format=3 uid="uid://befxf8uruwnrl"] [ext_resource type="Script" uid="uid://k8yppfbkq0xv" path="res://singletons/main/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://cml5liawokdch" path="res://ui/curtain/curtain.tscn" id="2_nbcxq"] [ext_resource type="PackedScene" uid="uid://b51wdql4mby47" path="res://ui/menu_main/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://d38f0a333kki1" path="res://ui/loading/loading.tscn" id="5_dxvjq"] [ext_resource type="PackedScene" uid="uid://6aaxpvoepqrm" path="res://logic-scenes/disclaimer/disclaimer.tscn" id="7_t45fc"] -[ext_resource type="AudioStream" uid="uid://fej7yw25lgqy" path="res://import/menu_music/Ambient 6.ogg" id="8_tptb8"] [ext_resource type="Script" uid="uid://0h0lrkntx0uh" path="res://ui/menu_main/pause_menu.gd" id="9_ihfph"] [ext_resource type="Texture2D" uid="uid://ds1n0xhxqlp4b" path="res://base-environments/youth_room/shaders/universe_noise.png" id="9_l7v4b"] -[ext_resource type="Texture2D" uid="uid://d3ewjumh0b0g6" path="res://ui/menu_main/logo.png" id="9_tqjky"] [ext_resource type="Texture2D" uid="uid://bdyg065h8vcdi" path="res://base-environments/youth_room/shaders/starlight-textures.png" id="10_pipov"] -[ext_resource type="Script" uid="uid://dbap0gqox0ty1" path="res://addons/markdownlabel/markdownlabel.gd" id="12_074og"] +[ext_resource type="PackedScene" uid="uid://cbpcjk1qr2iiu" path="res://ui/credits_roll/credits_roll.tscn" id="11_wtpde"] [ext_resource type="Script" uid="uid://sa15wakvpj2e" path="res://dev-util/bug_button.gd" id="12_cegan"] -[ext_resource type="Script" uid="uid://dcx7crs23nf4" path="res://addons/markdownlabel/header_formats/h1_format.gd" id="14_cegan"] -[ext_resource type="Script" uid="uid://d0sin64i4v3op" path="res://addons/markdownlabel/header_formats/h2_format.gd" id="15_82xsv"] -[ext_resource type="Script" uid="uid://dlok0dv1tq2bf" path="res://addons/markdownlabel/header_formats/h3_format.gd" id="16_getpj"] -[ext_resource type="Script" uid="uid://bayuh2vafablg" path="res://addons/markdownlabel/header_formats/h4_format.gd" id="17_ryguw"] -[ext_resource type="Script" uid="uid://dfr1w7u3jgni3" path="res://addons/markdownlabel/header_formats/h5_format.gd" id="18_d13ii"] -[ext_resource type="Script" uid="uid://bsi6dexoofpe6" path="res://addons/markdownlabel/header_formats/h6_format.gd" id="19_1u8w0"] [sub_resource type="GDScript" id="GDScript_8sq0u"] script/source = "extends Label @@ -28,1126 +19,6 @@ func _process(_delta): text = str(Engine.get_frames_per_second()) " -[sub_resource type="GDScript" id="GDScript_cegan"] -script/source = "extends Label - -@export var animation_speed: float = 0.2 - -var _base_text: String -func _ready() -> void: - _base_text = text - - -var _accumulate_delta: float = 0 -var _frame: int = 0 -func _process(delta: float) -> void: - _accumulate_delta += delta - if _accumulate_delta > animation_speed: - _frame += 1 - _accumulate_delta = 0 - var dots: String - match _frame % 4: - 1: dots = \".\" - 2: dots = \"..\" - 3: dots = \"...\" - _: dots = \"\" - text = \"%s %s\" % [TranslationServer.translate(_base_text), dots] - -" - -[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("../../Background: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("../../MainMenu: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)] -} -tracks/6/type = "value" -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/path = NodePath("../../MainMenu:visible") -tracks/6/interp = 1 -tracks/6/loop_wrap = true -tracks/6/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/7/type = "value" -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/path = NodePath("../../Background:visible") -tracks/7/interp = 1 -tracks/7/loop_wrap = true -tracks/7/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [false] -} -tracks/8/type = "value" -tracks/8/imported = false -tracks/8/enabled = true -tracks/8/path = NodePath("../../PauseContainer:visible") -tracks/8/interp = 1 -tracks/8/loop_wrap = true -tracks/8/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [false] -} -tracks/9/type = "value" -tracks/9/imported = false -tracks/9/enabled = true -tracks/9/path = NodePath("../../PauseContainer/TextureRect:modulate") -tracks/9/interp = 1 -tracks/9/loop_wrap = true -tracks/9/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} -tracks/10/type = "value" -tracks/10/imported = false -tracks/10/enabled = true -tracks/10/path = NodePath("../../PauseContainer/PauseMenu/VBoxContainer:modulate") -tracks/10/interp = 1 -tracks/10/loop_wrap = true -tracks/10/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 0)] -} -tracks/11/type = "value" -tracks/11/imported = false -tracks/11/enabled = true -tracks/11/path = NodePath("../../PauseContainer/PauseMenu:modulate") -tracks/11/interp = 1 -tracks/11/loop_wrap = true -tracks/11/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} -tracks/12/type = "value" -tracks/12/imported = false -tracks/12/enabled = true -tracks/12/path = NodePath("../../MainMenu:visible") -tracks/12/interp = 1 -tracks/12/loop_wrap = true -tracks/12/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/13/type = "value" -tracks/13/imported = false -tracks/13/enabled = true -tracks/13/path = NodePath("../../MainMenu:modulate") -tracks/13/interp = 1 -tracks/13/loop_wrap = true -tracks/13/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} -tracks/14/type = "value" -tracks/14/imported = false -tracks/14/enabled = true -tracks/14/path = NodePath("../../CreditsRoll:visible") -tracks/14/interp = 1 -tracks/14/loop_wrap = true -tracks/14/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [false] -} -tracks/15/type = "value" -tracks/15/imported = false -tracks/15/enabled = true -tracks/15/path = NodePath("../../CreditsRoll:modulate") -tracks/15/interp = 1 -tracks/15/loop_wrap = true -tracks/15/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 0)] -} -tracks/16/type = "value" -tracks/16/imported = false -tracks/16/enabled = true -tracks/16/path = NodePath("../../CreditsRoll:position") -tracks/16/interp = 1 -tracks/16/loop_wrap = true -tracks/16/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(0, 220)] -} -tracks/17/type = "value" -tracks/17/imported = false -tracks/17/enabled = true -tracks/17/path = NodePath("../LoadingLabel:visible") -tracks/17/interp = 1 -tracks/17/loop_wrap = true -tracks/17/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [false] -} -tracks/18/type = "value" -tracks/18/imported = false -tracks/18/enabled = true -tracks/18/path = NodePath("../LoadingLabel:modulate") -tracks/18/interp = 1 -tracks/18/loop_wrap = true -tracks/18/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} -tracks/19/type = "value" -tracks/19/imported = false -tracks/19/enabled = true -tracks/19/path = NodePath("../LoadingLabel:position") -tracks/19/interp = 1 -tracks/19/loop_wrap = true -tracks/19/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(100, -37)] -} - -[sub_resource type="Animation" id="Animation_sfr6l"] -resource_name = "credits_roll" -length = 130.003 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("../../MainMenu:visible") -tracks/0/interp = 0 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0.6666667, 0.9), -"transitions": PackedFloat32Array(1, 1), -"update": 1, -"values": [true, false] -} -tracks/1/type = "audio" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("%MenuAnimationTree/AudioStreamPlayer") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"clips": [{ -"end_offset": 0.0, -"start_offset": 2.68, -"stream": ExtResource("8_tptb8") -}], -"times": PackedFloat32Array(0.0133328) -} -tracks/1/use_blend = true -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("../../Background:visible") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("../../Background:modulate") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(0, 0, 0, 1)] -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("../../CreditsRoll:visible") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/5/type = "value" -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/path = NodePath("../../CreditsRoll:modulate") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = { -"times": PackedFloat32Array(0, 2), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] -} -tracks/6/type = "value" -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/path = NodePath("../../CreditsRoll:position") -tracks/6/interp = 1 -tracks/6/loop_wrap = true -tracks/6/keys = { -"times": PackedFloat32Array(1.86667, 121.188), -"transitions": PackedFloat32Array(1.46409, 1), -"update": 0, -"values": [Vector2(0, 220), Vector2(0, -4134)] -} -tracks/7/type = "value" -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/path = NodePath("../../MainMenu:modulate") -tracks/7/interp = 1 -tracks/7/loop_wrap = true -tracks/7/keys = { -"times": PackedFloat32Array(0, 0.63), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] -} - -[sub_resource type="Animation" id="Animation_lh4gu"] -resource_name = "hide_pause_menu" -length = 2.0 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("../../PauseContainer:visible") -tracks/0/interp = 0 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 2), -"transitions": PackedFloat32Array(1, 1), -"update": 1, -"values": [true, false] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("../../PauseContainer/TextureRect:modulate") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 1.96667), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("../../PauseContainer/PauseMenu/VBoxContainer:modulate") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0, 0.233333), -"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("../../PauseContainer/PauseMenu:modulate") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = { -"times": PackedFloat32Array(0.133333, 0.7), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("../../MainMenu:visible") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [false] -} - -[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("../../Background: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("../../Background:visible") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("../../MainMenu:visible") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("../../MainMenu:modulate") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = { -"times": PackedFloat32Array(0, 0.5), -"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("../../Background: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)] -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("../../Background:visible") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/5/type = "value" -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/path = NodePath("../LoadingLabel:visible") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/6/type = "value" -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/path = NodePath("../LoadingLabel:modulate") -tracks/6/interp = 1 -tracks/6/loop_wrap = true -tracks/6/keys = { -"times": PackedFloat32Array(1.1666666, 1.5), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] -} -tracks/7/type = "value" -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/path = NodePath("../LoadingLabel:position") -tracks/7/interp = 1 -tracks/7/loop_wrap = true -tracks/7/keys = { -"times": PackedFloat32Array(0.93333334, 1.5), -"transitions": PackedFloat32Array(1.6788809, 1), -"update": 0, -"values": [Vector2(170, -37), Vector2(100, -37)] -} - -[sub_resource type="Animation" id="Animation_em5qx"] -resource_name = "loading_game" -length = 2.0 -loop_mode = 1 -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, 1.76667), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), 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, 2), -"transitions": PackedFloat32Array(0.406126, 1, 1), -"update": 0, -"values": [1.5708, 0.261799, 0.0] -} -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, 2), -"transitions": PackedFloat32Array(0.406126, 1, 1), -"update": 0, -"values": [-1.5708, -0.261799, 0.0] -} -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, 0.366667, 1.66667), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1)] -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("../../Background:modulate") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} -tracks/5/type = "value" -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/path = NodePath("../../MainMenu: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, 0)] -} -tracks/6/type = "value" -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/path = NodePath("../../Background:visible") -tracks/6/interp = 1 -tracks/6/loop_wrap = true -tracks/6/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/7/type = "value" -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/path = NodePath("../LoadingLabel:visible") -tracks/7/interp = 1 -tracks/7/loop_wrap = true -tracks/7/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/8/type = "value" -tracks/8/imported = false -tracks/8/enabled = true -tracks/8/path = NodePath("../LoadingLabel:modulate") -tracks/8/interp = 1 -tracks/8/loop_wrap = true -tracks/8/keys = { -"times": PackedFloat32Array(0.06666672, 1.1666666), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] -} -tracks/9/type = "value" -tracks/9/imported = false -tracks/9/enabled = true -tracks/9/path = NodePath("../LoadingLabel:position") -tracks/9/interp = 1 -tracks/9/loop_wrap = true -tracks/9/keys = { -"times": PackedFloat32Array(0.93333334), -"transitions": PackedFloat32Array(1.6788809), -"update": 0, -"values": [Vector2(170, -37)] -} - -[sub_resource type="Animation" id="Animation_k667j"] -resource_name = "loading_menu" -length = 2.0 -loop_mode = 1 -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, 1.76667), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), 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, 2), -"transitions": PackedFloat32Array(0.406126, 1, 1), -"update": 0, -"values": [1.5708, 0.261799, 0.0] -} -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, 2), -"transitions": PackedFloat32Array(0.406126, 1, 1), -"update": 0, -"values": [-1.5708, -0.261799, 0.0] -} -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, 0.366667, 1.66667), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1)] -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("../../Background:modulate") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} -tracks/5/type = "value" -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/path = NodePath("../../Background:visible") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/6/type = "value" -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/path = NodePath("../LoadingLabel:visible") -tracks/6/interp = 1 -tracks/6/loop_wrap = true -tracks/6/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/7/type = "value" -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/path = NodePath("../LoadingLabel:modulate") -tracks/7/interp = 1 -tracks/7/loop_wrap = true -tracks/7/keys = { -"times": PackedFloat32Array(0.06666672, 1.1666666), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] -} -tracks/8/type = "value" -tracks/8/imported = false -tracks/8/enabled = true -tracks/8/path = NodePath("../LoadingLabel:position") -tracks/8/interp = 1 -tracks/8/loop_wrap = true -tracks/8/keys = { -"times": PackedFloat32Array(0.93333334), -"transitions": PackedFloat32Array(1.6788809), -"update": 0, -"values": [Vector2(170, -37)] -} - -[sub_resource type="Animation" id="Animation_s5m6i"] -resource_name = "reveal_pause_menu" -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("../../PauseContainer:visible") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("../../PauseContainer/TextureRect:modulate") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 0.933333), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("../../PauseContainer/PauseMenu/VBoxContainer:modulate") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0.233333, 0.433333), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] -} -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("../../PauseContainer/PauseMenu:modulate") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = { -"times": PackedFloat32Array(0, 0.3), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("../../MainMenu:visible") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0.0333333), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_q7d2t"] -resource_name = "start_game" -length = 0.5 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("../../Background: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("../../MainMenu:modulate") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 0)] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("../../MainMenu:visible") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0.5), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [false] -} - -[sub_resource type="Animation" id="Animation_hv4pr"] -resource_name = "transition_load_game" -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("../../Background:modulate") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.233333, 1), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Color(0, 0, 0, 0), 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("../../MainMenu:modulate") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0.3, 1), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("../../MainMenu:visible") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0, 1), -"transitions": PackedFloat32Array(1, 1), -"update": 1, -"values": [true, false] -} -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("../../Background:visible") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [true] -} -tracks/4/type = "method" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("../..") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0.5), -"transitions": PackedFloat32Array(1), -"values": [{ -"args": [], -"method": &"_on_ready_to_unload" -}] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_ogbs1"] -_data = { -&"RESET": SubResource("Animation_y6s08"), -&"credits_roll": SubResource("Animation_sfr6l"), -&"hide_pause_menu": SubResource("Animation_lh4gu"), -&"init": SubResource("Animation_l5ynk"), -&"loading_done": SubResource("Animation_nuxr6"), -&"loading_game": SubResource("Animation_em5qx"), -&"loading_menu": SubResource("Animation_k667j"), -&"reveal_pause_menu": SubResource("Animation_s5m6i"), -&"start_game": SubResource("Animation_q7d2t"), -&"transition_load_game": SubResource("Animation_hv4pr") -} - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_2npx0"] -animation = &"credits_roll" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_6p8we"] -animation = &"hide_pause_menu" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_8b66u"] -animation = &"init" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ahhta"] -animation = &"transition_load_game" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_v66b5"] -animation = &"loading_menu" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_10f75"] -animation = &"loading_done" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_axnce"] -animation = &"loading_game" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_pr4oj"] -animation = &"reveal_pause_menu" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_5umfs"] -animation = &"start_game" - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_dxdg4"] -advance_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_0hpxy"] -switch_mode = 2 -advance_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ipapo"] -xfade_time = 0.5 -switch_mode = 1 -advance_mode = 2 -advance_condition = &"loading_done" - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_0t1lp"] -xfade_time = 0.5 -advance_mode = 2 -advance_condition = &"start_game" - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_66nmg"] -xfade_time = 0.5 -advance_mode = 2 -advance_condition = &"return_to_menu" - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_6b86u"] -advance_mode = 2 -advance_condition = &"load_save" - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_y626i"] -xfade_time = 1.0 -advance_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_52bss"] -xfade_time = 0.5 -advance_mode = 2 -advance_condition = &"loading_done" - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_x8oth"] -xfade_time = 0.5 -advance_mode = 2 -advance_condition = &"roll_credits" - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5ge3a"] -xfade_time = 2.0 -switch_mode = 2 -advance_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_44pd3"] -advance_mode = 2 -advance_condition = &"roll_credits" - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_pc6pe"] - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_dx61n"] - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_lp1dx"] -switch_mode = 2 - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mqlnh"] -xfade_time = 1.0 -advance_mode = 2 - -[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_uwcb5"] -states/End/position = Vector2(981, 105) -states/credits_roll/node = SubResource("AnimationNodeAnimation_2npx0") -states/credits_roll/position = Vector2(876.91, 32) -states/hide_pause_menu/node = SubResource("AnimationNodeAnimation_6p8we") -states/hide_pause_menu/position = Vector2(599, -42.7336) -states/init/node = SubResource("AnimationNodeAnimation_8b66u") -states/init/position = Vector2(401, 104) -states/load_savegame/node = SubResource("AnimationNodeAnimation_ahhta") -states/load_savegame/position = Vector2(751.91, 242) -states/loading/node = SubResource("AnimationNodeAnimation_v66b5") -states/loading/position = Vector2(446, 205) -states/loading_done/node = SubResource("AnimationNodeAnimation_10f75") -states/loading_done/position = Vector2(623, 136) -states/loading_game/node = SubResource("AnimationNodeAnimation_axnce") -states/loading_game/position = Vector2(797.91, 136) -states/reveal_pause_menu/node = SubResource("AnimationNodeAnimation_pr4oj") -states/reveal_pause_menu/position = Vector2(783.91, -112.734) -states/start_game/node = SubResource("AnimationNodeAnimation_5umfs") -states/start_game/position = Vector2(698, 32) -transitions = ["Start", "init", SubResource("AnimationNodeStateMachineTransition_dxdg4"), "init", "loading", SubResource("AnimationNodeStateMachineTransition_0hpxy"), "loading", "loading_done", SubResource("AnimationNodeStateMachineTransition_ipapo"), "loading_done", "start_game", SubResource("AnimationNodeStateMachineTransition_0t1lp"), "start_game", "init", SubResource("AnimationNodeStateMachineTransition_66nmg"), "loading_done", "load_savegame", SubResource("AnimationNodeStateMachineTransition_6b86u"), "load_savegame", "loading_game", SubResource("AnimationNodeStateMachineTransition_y626i"), "loading_game", "start_game", SubResource("AnimationNodeStateMachineTransition_52bss"), "start_game", "credits_roll", SubResource("AnimationNodeStateMachineTransition_x8oth"), "credits_roll", "loading_done", SubResource("AnimationNodeStateMachineTransition_5ge3a"), "loading_done", "credits_roll", SubResource("AnimationNodeStateMachineTransition_44pd3"), "start_game", "reveal_pause_menu", SubResource("AnimationNodeStateMachineTransition_pc6pe"), "reveal_pause_menu", "hide_pause_menu", SubResource("AnimationNodeStateMachineTransition_dx61n"), "hide_pause_menu", "start_game", SubResource("AnimationNodeStateMachineTransition_lp1dx"), "hide_pause_menu", "init", SubResource("AnimationNodeStateMachineTransition_mqlnh")] -graph_offset = Vector2(90.75, -158.73401) - [sub_resource type="Shader" id="Shader_cegan"] code = "shader_type canvas_item; render_mode blend_premul_alpha; @@ -1212,30 +83,6 @@ fill = 1 fill_from = Vector2(0.538462, 0.491453) fill_to = Vector2(1.3, -0.3) -[sub_resource type="Resource" id="Resource_0odxb"] -resource_local_to_scene = true -script = ExtResource("14_cegan") - -[sub_resource type="Resource" id="Resource_lswn8"] -resource_local_to_scene = true -script = ExtResource("15_82xsv") - -[sub_resource type="Resource" id="Resource_a6jrf"] -resource_local_to_scene = true -script = ExtResource("16_getpj") - -[sub_resource type="Resource" id="Resource_xuqvo"] -resource_local_to_scene = true -script = ExtResource("17_ryguw") - -[sub_resource type="Resource" id="Resource_qsp4k"] -resource_local_to_scene = true -script = ExtResource("18_d13ii") - -[sub_resource type="Resource" id="Resource_kq58d"] -resource_local_to_scene = true -script = ExtResource("19_1u8w0") - [node name="main" type="Control"] process_mode = 3 layout_mode = 3 @@ -1249,16 +96,12 @@ youth_room_path = "uid://b3b0gyvklqn50" transition_room_path = "uid://fgp3s28h7msy" adulthood_room_path = "uid://flisupth27th" -[node name="Background" type="Panel" parent="."] -visible = false -modulate = Color(0, 0, 0, 1) +[node name="Curtain" parent="." instance=ExtResource("2_nbcxq")] +unique_name_in_owner = true +layout_mode = 1 + +[node name="Loading" parent="." instance=ExtResource("5_dxvjq")] layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -mouse_filter = 2 [node name="MainMenu" parent="." instance=ExtResource("3_ik73t")] unique_name_in_owner = true @@ -1279,60 +122,6 @@ layout_mode = 1 visible = false layout_mode = 1 -[node name="Loading" type="Control" parent="."] -layout_mode = 1 -anchors_preset = 2 -anchor_top = 1.0 -anchor_bottom = 1.0 -grow_vertical = 0 - -[node name="mask" type="Sprite2D" parent="Loading"] -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="Loading/mask"] -texture = ExtResource("6_aaaxa") - -[node name="deco" type="Sprite2D" parent="Loading/mask/frame"] -modulate = Color(1, 1, 1, 0) -rotation = -0.314159 -texture = ExtResource("7_koraw") - -[node name="LoadingLabel" type="Label" parent="Loading"] -visible = false -layout_mode = 0 -offset_left = 100.0 -offset_top = -37.0 -offset_right = 239.99982 -offset_bottom = 9.0 -text = "loading" -script = SubResource("GDScript_cegan") - -[node name="MenuAnimationPlayer" type="AnimationPlayer" parent="."] -unique_name_in_owner = true -root_node = NodePath("../Loading/mask") -libraries = { -&"": SubResource("AnimationLibrary_ogbs1") -} -autoplay = "init" - -[node name="MenuAnimationTree" type="AnimationTree" parent="MenuAnimationPlayer"] -unique_name_in_owner = true -root_node = NodePath("%MenuAnimationPlayer/../Loading/mask") -tree_root = SubResource("AnimationNodeStateMachine_uwcb5") -anim_player = NodePath("..") -parameters/conditions/load_save = false -parameters/conditions/loading_done = false -parameters/conditions/return_to_menu = false -parameters/conditions/roll_credits = false -parameters/conditions/start_game = false - -[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="MenuAnimationPlayer/MenuAnimationTree"] -bus = &"music" - [node name="PauseContainer" type="CenterContainer" parent="."] visible = false layout_mode = 1 @@ -1408,264 +197,20 @@ visible = false layout_mode = 2 text = "Skip this Story" -[node name="CreditsRoll" type="VBoxContainer" parent="."] +[node name="CreditsRoll" parent="." instance=ExtResource("11_wtpde")] +unique_name_in_owner = true visible = false modulate = Color(1, 1, 1, 0) -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 +layout_mode = 0 +anchors_preset = 0 +anchor_right = 0.0 +anchor_bottom = 0.0 offset_top = 220.0 -offset_bottom = 3476.0 -grow_horizontal = 2 -grow_vertical = 2 -alignment = 2 +offset_bottom = 220.0 +grow_horizontal = 1 +grow_vertical = 1 -[node name="Logo" type="TextureRect" parent="CreditsRoll"] -custom_minimum_size = Vector2(512, 512) -layout_mode = 2 -size_flags_horizontal = 4 -size_flags_vertical = 4 -texture = ExtResource("9_tqjky") -expand_mode = 1 - -[node name="Markdown" type="RichTextLabel" parent="CreditsRoll"] -layout_mode = 2 -bbcode_enabled = true -text = "[center] -[font_size=34]is[/font_size] -[font_size=45]made by betalars[/font_size] - - - - - - - - -published by -[font_size=34]Purple Sloth Game Collective[/font_size] - -produced with the help of -[font_size=34]Vu Dieu Linh @ polynormal games[/font_size] - - - -[font_size=28]Contributers[/font_size] -[font_size=22]Programming[/font_size] -Adrian Schmid -Nek0 -AprilThePink -and somebody that I used to know - -[font_size=22]Voice Acting[/font_size] -Jas Arianna -Newt - -[font_size=22]Soundtrack[/font_size] -STTLE - - -[font_size=28]Frame of Mind was created in Godot 4.[/font_size] - -[font_size=22]Special thanks to my friends and allies:[/font_size] -caesey, Nase, Jenny, map-c, Svenja, Milo, Francis, Christoph, Johanna, Friedrich Lüder - -[font_size=22]Thanks to the Contributers of:[/font_size] -blender -inkscape -ghostwriter -hedgedoc -gitea -Godot Steam -MarkdownLabel -Jovian-NixOS -LibreOffice - -[font_size=22]Thanks to these Community Members[/font_size] -Maxi, iFire -[font_size=34]Creative Commons Assets[/font_size] - -[font_size=28]3D-Assets[/font_size] - - [url=https://sketchfab.com/3d-models/boy-room-19035fc846034003b76e2914ba6dd7a6]Antique Dresser[/url] by [url=https://sketchfab.com/DarrenMcnerney3D]Darren McNerney 3D[/url] CC-BY - - [url=https://skfb.ly/ow6TJ]Wardrobe - Low poly[/url] by [url=https://sketchfab.com/ixMkc1]ixMkc1[/url] CC-BY - - [url=https://sketchfab.com/3d-models/simple-bean-bag-64d111cec3d842f09cbb8c68b1e49c8d]Simple Bean Bag[/url] by [url=https://sketchfab.com/AleixoAlonso]AleixoAlonso[/url] CC-BY - - [url=https://skfb.ly/ouu9C]Cobwebs[/url] by [url=https://sketchfab.com/bumstrum]DJMaesen[/url] CC-BY - - [url=https://skfb.ly/6RVFt]Laptop[/url] by [url=https://sketchfab.com/Aullwen]Aullwen[/url] CC-BY - - [url=https://skfb.ly/oqZnY]Home Speaker Bar[/url] by [url=https://sketchfab.com/re1monsen]re1monsen[/url] CC-BY - - [url=https://sketchfab.com/3d-models/designer-storage-box-2-db1275e988484908afcf44d0487aed69]Designer Storage Box 2[/url] by [url=https://sketchfab.com/Raffey]Raphael Escamilla[/url] CC-BY - - [url=https://sketchfab.com/3d-models/carpet-fluffy-435d64ef1e36457790000c6b6aa4b8b2]Carpet Fluffy[/url] by [url=https://sketchfab.com/polybean]polybEAN[/url] CC-BY - - [url=https://sketchfab.com/3d-models/backpacks-blockout-homework-e80686790d884b21b52f2308e51af9c6]backpacks blockout homework[/url] by [url=https://sketchfab.com/Fellm]Fellming[/url] CC-BY - - [url=https://sketchfab.com/3d-models/restaurant-kitchen-set-part-1-129dd2f84879477ea261b422d21491f4]Restaurant Kitchen Set[/url] by [url=https://sketchfab.com/soidev]soidev[/url], CC-BY - - [url=https://sketchfab.com/nkilstrup/collections/scandinavian-kitchen-kit-7abc790a7c744579801101d9c3655f37]Scandinavian Kitchen Kit[/url], [url=https://sketchfab.com/3d-models/house-plants-1347ac536bea469281cc07d68e076654]House Plants[/url] and [url=https://sketchfab.com/3d-models/living-room-props-cee72686f7534fdea99ab04d6177df22]Living Room Props[/url] by [url=https://sketchfab.com/nkilstrup]Nicolai Kilstrup[/url], CC-BY - - [url=https://sketchfab.com/3d-models/wooden-kitchen-3c6f8352025540feb8d7019485bf20e4]Wooden kitchen[/url] by [url=https://sketchfab.com/miha.pop12]Mieshu[/url], CC-BY - - [url=https://sketchfab.com/3d-models/baked-goods-d1ae09e3cb8343bc8790b15928452906]Baked Goods[/url] by [url=https://sketchfab.com/rigsters]rigsters[/url], CC-BY - - [url=https://polyhaven.com/a/CoffeeTable_01]Coffee Table 01[/url] by [url=https://polyhaven.com/all?a=Fernando%20Quinn]Fernando Quinn[/url], CC0 - - [url=https://polyhaven.com/a/side_table_01]Side Table 01[/url] and [url=https://polyhaven.com/a/wooden_display_shelves_01]Wooden Display Shelves 01[/url] by [url=https://www.artstation.com/jamesray]James Ray Cock[/url], CC0 - - [url=https://polyhaven.com/a/throw_pillows_01]Throw Pillows 01[/url] by [url=https://www.artstation.com/serhiikhromov]Serhii Khromov[/url], CC0 - - [url=https://polyhaven.com/a/gaming_console]Gaming Console[/url] by [url=https://www.artstation.com/sean_buckley98]Sean Buckley[/url], CC0 - - [url=https://polyhaven.com/a/painted_wooden_stool]Painted Wooden Stool[/url] by [url=https://www.artstation.com/k_sannikov]Kirill Sannikov[/url], CC0 - -[font_size=28]Textures from polyhaven.com[/font_size] -[ul][url=https://polyhaven.com/a/rough_wood]Rough Wood[/url] by [url=https://polyhaven.com/all?a=Rob%20Tuytel]Rob Tuytel[/url] CC-0 -[url=https://polyhaven.com/a/brick_wall_001]Brick Wall 001[/url] and [url=https://polyhaven.com/a/smooth_concrete_floor]Smooth Concrete Floor[/url] by [url=https://polyhaven.com/all?a=Dimitrios%20Savva]Dimitrios Savva[/url] -[url=https://polyhaven.com/a/clay_floor_001]Clay Floor 001[/url] by [url=https://polyhaven.com/all?a=Dimitrios%20Savva]Dimitrios Savva[/url] and [url=https://www.artstation.com/rico_b3d]Rico Cilliers[/url] -[/ul] - -[font_size=28]Textures from AmbientCG.com[/font_size] - - [url=https://ambientcg.com/view?id=Fabric030]Fabric 030[/url] - - [url=https://ambientcg.com/view?id=WoodSubstance009]Wood Substance 009[/url] - - [url=https://ambientcg.com/view?id=Wicker010B]Wicker 010 B[/url] - - [url=https://ambientcg.com/view?id=Terrazzo019L]Terrazzo 019 L[/url] - -[font_size=28]Wikimedia Commons[/font_size] - - [url=https://commons.wikimedia.org/wiki/File:Geb%C3%A4ude_in_Darmstadt.jpg]Gebäude in Darmstadt[/url] by [url=https://commons.wikimedia.org/wiki/User:Neq00]Neq00[/url] CC-BY-SA 4.0 - -[font_size=28]Illustrations[/font_size] - - + [url=https://www.deviantart.com/fernand0fc/art/Corporate-level-bodyguard-803579124]Corporate level bodyguard[/url], [url=https://www.deviantart.com/fernand0fc/art/Into-the-glowing-sea-834238466]Into the glowing sea[/url] and [url=https://www.deviantart.com/fernand0fc/art/Anti-Hero-555054767]Anti-Hero[/url] by [url=https://www.deviantart.com/fernand0fc]Fernand0FC[/url], CC-BY-3.0 - + [url=https://unknown-horizons.org/]Unknown Horizons[/url] Artwork, provided by a [url=https://github.com/unknown-horizons/unknown-horizons.github.io/blob/source/LICENSE]GPL-2.0 license[/url] - + [url=https://rich.itch.io/strangeadventures]Strange Adventures in Infinite Space[/url] by [url=https://rich.itch.io]Digital Eel[/url], CC-BY-NC 4.0 - + [url=https://github.com/BlindMindStudios/StarRuler2-Source]Star Ruler 2[/url], CC-BY-NC 2.0 - + [url=https://megaglest.org/]MegaGlest[/url], GPL - + [url= ]Splash Screen Neo[/url] by [url=https://inkscape.org/de/~MuhamadAliAkbar/]Muhamad Ali Akbar[/url], CC-BY-SA - + [url=https://ohmygit.org/]Oh My Git[/url] by [url=https://bleeptrack.de/]bleeptrack[/url] and [url=https://morr.cc/]blinry[/url], Blue Oak Model License - + [url=]Ghostwriter[/url] by kde - -[font_size=34]Music[/font_size] - - [url=https://azurestudios.bandcamp.com/album/foundations-i-24bit]Foundations I by Azure Studios[/url], CC-BY 3.0 - - Infinite Skies from [url=https://alkakrab.itch.io/free-10-rpg-game-ambient-tracks-music-pack-no-copyright]10 Ambient RPG Tracks[/url] by [url=https://alkakrab.itch.io/]alkakrab[/url] [i]\\\"Absolutely Free For Commercial use.\\\"[/i] - -[font_size=28]Sounds Effects[/font_size] - - [url=https://freesound.org/people/InspectorJ/sounds/346641/]Rain on Windows, Interior[/url] by [url=https://freesound.org/people/InspectorJ/]InspectorJ[/url] CC-BY 3.0 - - [url=https://freesound.org/people/MrAuralization/sounds/241294/]Rain and thunder[/url] by [url=https://freesound.org/people/MrAuralization/]MrAuralization[/url] CC-BY 3.0 - - [url=https://freesound.org/people/BlueDelta/sounds/446753/]Heavy Thunder Strike - no Rain - QUADRO[/url] by [url=https://freesound.org/people/BlueDelta/]BlueDelta[/url] CC-BY 3.0 - -[font_size=34]Fonts all OFL[/font_size] - - - Nanum Fonts by [url=https://fonts.google.com/?query=Sandoll]Sandoll[/url] - - Atkinson Hyperlegible by Braille Institute, Applied Design Works, Elliott Scott, Megan Eiswerth, Linus Boman, Theodore Petrosky\"\" -[center]" -fit_content = true -script = ExtResource("12_074og") -markdown_text = "[center] -## is -#made by betalars - - - - - - - - -published by -## Purple Sloth Game Collective - -produced with the help of -## Vu Dieu Linh @ polynormal games - - - -### Contributers -#### Programming -Adrian Schmid -Nek0 -AprilThePink -and somebody that I used to know - -#### Voice Acting -Jas Arianna -Newt - -#### Soundtrack -STTLE - - -### Frame of Mind was created in Godot 4. - -#### Special thanks to my friends and allies: -caesey, Nase, Jenny, map-c, Svenja, Milo, Francis, Christoph, Johanna, Friedrich Lüder - -#### Thanks to the Contributers of: -blender -inkscape -ghostwriter -hedgedoc -gitea -Godot Steam -MarkdownLabel -Jovian-NixOS -LibreOffice - -#### Thanks to these Community Members -Maxi, iFire -## Creative Commons Assets - -### 3D-Assets - - [Antique Dresser](https://sketchfab.com/3d-models/boy-room-19035fc846034003b76e2914ba6dd7a6) by [Darren McNerney 3D](https://sketchfab.com/DarrenMcnerney3D) CC-BY - - [Wardrobe - Low poly](https://skfb.ly/ow6TJ) by [ixMkc1](https://sketchfab.com/ixMkc1) CC-BY - - [Simple Bean Bag](https://sketchfab.com/3d-models/simple-bean-bag-64d111cec3d842f09cbb8c68b1e49c8d) by [AleixoAlonso](https://sketchfab.com/AleixoAlonso) CC-BY - - [Cobwebs](https://skfb.ly/ouu9C) by [DJMaesen](https://sketchfab.com/bumstrum) CC-BY - - [Laptop](https://skfb.ly/6RVFt) by [Aullwen](https://sketchfab.com/Aullwen) CC-BY - - [Home Speaker Bar](https://skfb.ly/oqZnY) by [re1monsen](https://sketchfab.com/re1monsen) CC-BY - - [Designer Storage Box 2](https://sketchfab.com/3d-models/designer-storage-box-2-db1275e988484908afcf44d0487aed69) by [Raphael Escamilla](https://sketchfab.com/Raffey) CC-BY - - [Carpet Fluffy](https://sketchfab.com/3d-models/carpet-fluffy-435d64ef1e36457790000c6b6aa4b8b2) by [polybEAN](https://sketchfab.com/polybean) CC-BY - - [backpacks blockout homework](https://sketchfab.com/3d-models/backpacks-blockout-homework-e80686790d884b21b52f2308e51af9c6) by [Fellming](https://sketchfab.com/Fellm) CC-BY - - [Restaurant Kitchen Set](https://sketchfab.com/3d-models/restaurant-kitchen-set-part-1-129dd2f84879477ea261b422d21491f4) by [soidev](https://sketchfab.com/soidev), CC-BY - - [Scandinavian Kitchen Kit](https://sketchfab.com/nkilstrup/collections/scandinavian-kitchen-kit-7abc790a7c744579801101d9c3655f37), [House Plants](https://sketchfab.com/3d-models/house-plants-1347ac536bea469281cc07d68e076654) and [Living Room Props](https://sketchfab.com/3d-models/living-room-props-cee72686f7534fdea99ab04d6177df22) by [Nicolai Kilstrup](https://sketchfab.com/nkilstrup), CC-BY - - [Wooden kitchen](https://sketchfab.com/3d-models/wooden-kitchen-3c6f8352025540feb8d7019485bf20e4) by [Mieshu](https://sketchfab.com/miha.pop12), CC-BY - - [Baked Goods](https://sketchfab.com/3d-models/baked-goods-d1ae09e3cb8343bc8790b15928452906) by [rigsters](https://sketchfab.com/rigsters), CC-BY - - [Coffee Table 01](https://polyhaven.com/a/CoffeeTable_01) by [Fernando Quinn](https://polyhaven.com/all?a=Fernando%20Quinn), CC0 - - [Side Table 01](https://polyhaven.com/a/side_table_01) and [Wooden Display Shelves 01](https://polyhaven.com/a/wooden_display_shelves_01) by [James Ray Cock](https://www.artstation.com/jamesray), CC0 - - [Throw Pillows 01](https://polyhaven.com/a/throw_pillows_01) by [Serhii Khromov](https://www.artstation.com/serhiikhromov), CC0 - - [Gaming Console](https://polyhaven.com/a/gaming_console) by [Sean Buckley](https://www.artstation.com/sean_buckley98), CC0 - - [Painted Wooden Stool](https://polyhaven.com/a/painted_wooden_stool) by [Kirill Sannikov](https://www.artstation.com/k_sannikov), CC0 - -### Textures from polyhaven.com -- [Rough Wood](https://polyhaven.com/a/rough_wood) by [Rob Tuytel](https://polyhaven.com/all?a=Rob%20Tuytel) CC-0 -- [Brick Wall 001](https://polyhaven.com/a/brick_wall_001) and [Smooth Concrete Floor](https://polyhaven.com/a/smooth_concrete_floor) by [Dimitrios Savva](https://polyhaven.com/all?a=Dimitrios%20Savva) -- [Clay Floor 001](https://polyhaven.com/a/clay_floor_001) by [Dimitrios Savva](https://polyhaven.com/all?a=Dimitrios%20Savva) and [Rico Cilliers](https://www.artstation.com/rico_b3d) - -### Textures from AmbientCG.com - - [Fabric 030](https://ambientcg.com/view?id=Fabric030) - - [Wood Substance 009](https://ambientcg.com/view?id=WoodSubstance009) - - [Wicker 010 B](https://ambientcg.com/view?id=Wicker010B) - - [Terrazzo 019 L](https://ambientcg.com/view?id=Terrazzo019L) - -### Wikimedia Commons - - [Gebäude in Darmstadt](https://commons.wikimedia.org/wiki/File:Geb%C3%A4ude_in_Darmstadt.jpg) by [Neq00](https://commons.wikimedia.org/wiki/User:Neq00) CC-BY-SA 4.0 - -### Illustrations - - + [Corporate level bodyguard](https://www.deviantart.com/fernand0fc/art/Corporate-level-bodyguard-803579124), [Into the glowing sea](https://www.deviantart.com/fernand0fc/art/Into-the-glowing-sea-834238466) and [Anti-Hero](https://www.deviantart.com/fernand0fc/art/Anti-Hero-555054767) by [Fernand0FC](https://www.deviantart.com/fernand0fc), CC-BY-3.0 - + [Unknown Horizons](https://unknown-horizons.org/) Artwork, provided by a [GPL-2.0 license](https://github.com/unknown-horizons/unknown-horizons.github.io/blob/source/LICENSE) - + [Strange Adventures in Infinite Space](https://rich.itch.io/strangeadventures) by [Digital Eel](https://rich.itch.io), CC-BY-NC 4.0 - + [Star Ruler 2](https://github.com/BlindMindStudios/StarRuler2-Source), CC-BY-NC 2.0 - + [MegaGlest](https://megaglest.org/), GPL - + [Splash Screen Neo]( ) by [Muhamad Ali Akbar](https://inkscape.org/de/~MuhamadAliAkbar/), CC-BY-SA - + [Oh My Git](https://ohmygit.org/) by [bleeptrack](https://bleeptrack.de/) and [blinry](https://morr.cc/), Blue Oak Model License - + [Ghostwriter]() by kde - -## Music - - [Foundations I by Azure Studios](https://azurestudios.bandcamp.com/album/foundations-i-24bit), CC-BY 3.0 - - Infinite Skies from [10 Ambient RPG Tracks](https://alkakrab.itch.io/free-10-rpg-game-ambient-tracks-music-pack-no-copyright) by [alkakrab](https://alkakrab.itch.io/) *\\\\\\\"Absolutely Free For Commercial use.\\\\\\\"* - -### Sounds Effects - - [Rain on Windows, Interior](https://freesound.org/people/InspectorJ/sounds/346641/) by [InspectorJ](https://freesound.org/people/InspectorJ/) CC-BY 3.0 - - [Rain and thunder](https://freesound.org/people/MrAuralization/sounds/241294/) by [MrAuralization](https://freesound.org/people/MrAuralization/) CC-BY 3.0 - - [Heavy Thunder Strike - no Rain - QUADRO](https://freesound.org/people/BlueDelta/sounds/446753/) by [BlueDelta](https://freesound.org/people/BlueDelta/) CC-BY 3.0 - -## Fonts all OFL - - - Nanum Fonts by [Sandoll](https://fonts.google.com/?query=Sandoll) - - Atkinson Hyperlegible by Braille Institute, Applied Design Works, Elliott Scott, Megan Eiswerth, Linus Boman, Theodore Petrosky\\\"\" -[center]" -h1 = SubResource("Resource_0odxb") -h2 = SubResource("Resource_lswn8") -h3 = SubResource("Resource_a6jrf") -h4 = SubResource("Resource_xuqvo") -h5 = SubResource("Resource_qsp4k") -h6 = SubResource("Resource_kq58d") +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +bus = &"music" [connection signal="on_read" from="Disclaimer" to="Startup Menu" method="starting"] diff --git a/src/singletons/main/main.tscn10446945.tmp b/src/singletons/main/main.tscn10446945.tmp new file mode 100644 index 0000000..eaea416 --- /dev/null +++ b/src/singletons/main/main.tscn10446945.tmp @@ -0,0 +1,121 @@ +[gd_scene load_steps=54 format=3 uid="uid://befxf8uruwnrl"] + +[ext_resource type="Script" uid="uid://k8yppfbkq0xv" path="res://singletons/main/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://cml5liawokdch" path="res://ui/curtain/curtain.tscn" id="2_nbcxq"] +[ext_resource type="PackedScene" uid="uid://b51wdql4mby47" path="res://ui/menu_main/main_menu.tscn" id="3_ik73t"] +[ext_resource type="PackedScene" uid="uid://d38f0a333kki1" path="res://ui/loading/loading.tscn" id="5_dxvjq"] +[ext_resource type="PackedScene" uid="uid://6aaxpvoepqrm" path="res://logic-scenes/disclaimer/disclaimer.tscn" id="7_t45fc"] +[ext_resource type="AudioStream" uid="uid://fej7yw25lgqy" path="res://import/menu_music/Ambient 6.ogg" id="8_tptb8"] +[ext_resource type="Script" uid="uid://0h0lrkntx0uh" path="res://ui/menu_main/pause_menu.gd" id="9_ihfph"] +[ext_resource type="Texture2D" uid="uid://ds1n0xhxqlp4b" path="res://base-environments/youth_room/shaders/universe_noise.png" id="9_l7v4b"] +[ext_resource type="Texture2D" uid="uid://bdyg065h8vcdi" path="res://base-environments/youth_room/shaders/starlight-textures.png" id="10_pipov"] +[ext_resource type="PackedScene" uid="uid://cbpcjk1qr2iiu" path="res://ui/credits_roll/credits_roll.tscn" id="11_wtpde"] +[ext_resource type="Script" uid="uid://sa15wakvpj2e" path="res://dev-util/bug_button.gd" id="12_cegan"] + +[sub_resource type="GDScript" id="GDScript_8sq0u"] +script/source = "extends Label + +func _process(_delta): + text = str(Engine.get_frames_per_second()) +" + +[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("../../MainMenu:modulate") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("../../MainMenu:visible") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("../../PauseContainer:visible") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("../../PauseContainer/TextureRect:modulate") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/8/t \ No newline at end of file diff --git a/src/ui/credits_roll/credits_roll.gd b/src/ui/credits_roll/credits_roll.gd new file mode 100644 index 0000000..cb284c6 --- /dev/null +++ b/src/ui/credits_roll/credits_roll.gd @@ -0,0 +1,43 @@ +extends Control +@onready var Handle : Control = $Handle + +@export var scroll_speed: float = 50.0 + +var original : Vector2 +var offset : Vector2 +var playing : bool + +func _ready() -> void: + print_debug("credits_roll.gd: _ready()") + original = Handle.position + play() + +func _process(delta: float) -> void: + if playing: + offset.y -= scroll_speed * delta + Handle.position = offset + +func _input(event: InputEvent) -> void: + if event.is_action_pressed("ui_menu") or event.is_action_pressed("ui_cancel") or event.is_action_pressed("ui_accept"): + stop() + +func play() -> void: + print_debug("credits_roll.gd: show()") + offset = original + Handle.position = original + playing = true + modulate.a = 0 + visible = true + var tween := create_tween() + tween.tween_property(self, "modulate:a", 1.0, 5.0) + await tween.finished + +func stop() -> void: + print_debug("credits_roll.gd: hide()") + var tween := create_tween() + tween.tween_property(self, "modulate:a", 0.0, 2.0) + await tween.finished + playing = false + visible = false + + \ No newline at end of file diff --git a/src/ui/credits_roll/credits_roll.gd.uid b/src/ui/credits_roll/credits_roll.gd.uid new file mode 100644 index 0000000..b256322 --- /dev/null +++ b/src/ui/credits_roll/credits_roll.gd.uid @@ -0,0 +1 @@ +uid://cky57x8selv1h diff --git a/src/ui/credits_roll/credits_roll.tscn b/src/ui/credits_roll/credits_roll.tscn new file mode 100644 index 0000000..3e6a873 --- /dev/null +++ b/src/ui/credits_roll/credits_roll.tscn @@ -0,0 +1,315 @@ +[gd_scene load_steps=16 format=3 uid="uid://cbpcjk1qr2iiu"] + +[ext_resource type="Texture2D" uid="uid://d3ewjumh0b0g6" path="res://ui/menu_main/logo.png" id="1_05cuh"] +[ext_resource type="Script" uid="uid://cky57x8selv1h" path="res://ui/credits_roll/credits_roll.gd" id="1_jv284"] +[ext_resource type="Script" uid="uid://dbap0gqox0ty1" path="res://addons/markdownlabel/markdownlabel.gd" id="2_jv284"] +[ext_resource type="Script" uid="uid://dcx7crs23nf4" path="res://addons/markdownlabel/header_formats/h1_format.gd" id="3_jl7ew"] +[ext_resource type="Script" uid="uid://d0sin64i4v3op" path="res://addons/markdownlabel/header_formats/h2_format.gd" id="4_upwkx"] +[ext_resource type="Script" uid="uid://dlok0dv1tq2bf" path="res://addons/markdownlabel/header_formats/h3_format.gd" id="5_dtwdr"] +[ext_resource type="Script" uid="uid://bayuh2vafablg" path="res://addons/markdownlabel/header_formats/h4_format.gd" id="6_n5lj3"] +[ext_resource type="Script" uid="uid://dfr1w7u3jgni3" path="res://addons/markdownlabel/header_formats/h5_format.gd" id="7_88oss"] +[ext_resource type="Script" uid="uid://bsi6dexoofpe6" path="res://addons/markdownlabel/header_formats/h6_format.gd" id="8_dtsm5"] + +[sub_resource type="Resource" id="Resource_0odxb"] +resource_local_to_scene = true +script = ExtResource("3_jl7ew") + +[sub_resource type="Resource" id="Resource_lswn8"] +resource_local_to_scene = true +script = ExtResource("4_upwkx") + +[sub_resource type="Resource" id="Resource_a6jrf"] +resource_local_to_scene = true +script = ExtResource("5_dtwdr") + +[sub_resource type="Resource" id="Resource_xuqvo"] +resource_local_to_scene = true +script = ExtResource("6_n5lj3") + +[sub_resource type="Resource" id="Resource_qsp4k"] +resource_local_to_scene = true +script = ExtResource("7_88oss") + +[sub_resource type="Resource" id="Resource_kq58d"] +resource_local_to_scene = true +script = ExtResource("8_dtsm5") + +[node name="CreditsRoll" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_jv284") + +[node name="Background" type="Panel" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Handle" type="Control" parent="."] +layout_mode = 1 +anchors_preset = 12 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 0 + +[node name="Credits" type="VBoxContainer" parent="Handle"] +layout_mode = 1 +anchors_preset = 10 +anchor_right = 1.0 +offset_bottom = 3640.0 +grow_horizontal = 2 + +[node name="Logo" type="TextureRect" parent="Handle/Credits"] +custom_minimum_size = Vector2(512, 512) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +texture = ExtResource("1_05cuh") +expand_mode = 1 + +[node name="Markdown" type="RichTextLabel" parent="Handle/Credits"] +layout_mode = 2 +bbcode_enabled = true +text = "[center] +[font_size=34]is[/font_size] +[font_size=45]made by betalars[/font_size] + + + + + + + + +published by +[font_size=34]Purple Sloth Game Collective[/font_size] + +produced with the help of +[font_size=34]Vu Dieu Linh @ polynormal games[/font_size] + + + +[font_size=28]Contributers[/font_size] +[font_size=22]Programming[/font_size] +Adrian Schmid +Nek0 +AprilThePink +and somebody that I used to know + +[font_size=22]Voice Acting[/font_size] +Jas Arianna +Newt + +[font_size=22]Soundtrack[/font_size] +STTLE + + +[font_size=28]Frame of Mind was created in Godot 4.[/font_size] + +[font_size=22]Special thanks to my friends and allies:[/font_size] +caesey, Nase, Jenny, map-c, Svenja, Milo, Francis, Christoph, Johanna, Friedrich Lüder + +[font_size=22]Thanks to the Contributers of:[/font_size] +blender +inkscape +ghostwriter +hedgedoc +gitea +Godot Steam +MarkdownLabel +Jovian-NixOS +LibreOffice + +[font_size=22]Thanks to these Community Members[/font_size] +Maxi, iFire +[font_size=34]Creative Commons Assets[/font_size] + +[font_size=28]3D-Assets[/font_size] + - [url=https://sketchfab.com/3d-models/boy-room-19035fc846034003b76e2914ba6dd7a6]Antique Dresser[/url] by [url=https://sketchfab.com/DarrenMcnerney3D]Darren McNerney 3D[/url] CC-BY + - [url=https://skfb.ly/ow6TJ]Wardrobe - Low poly[/url] by [url=https://sketchfab.com/ixMkc1]ixMkc1[/url] CC-BY + - [url=https://sketchfab.com/3d-models/simple-bean-bag-64d111cec3d842f09cbb8c68b1e49c8d]Simple Bean Bag[/url] by [url=https://sketchfab.com/AleixoAlonso]AleixoAlonso[/url] CC-BY + - [url=https://skfb.ly/ouu9C]Cobwebs[/url] by [url=https://sketchfab.com/bumstrum]DJMaesen[/url] CC-BY + - [url=https://skfb.ly/6RVFt]Laptop[/url] by [url=https://sketchfab.com/Aullwen]Aullwen[/url] CC-BY + - [url=https://skfb.ly/oqZnY]Home Speaker Bar[/url] by [url=https://sketchfab.com/re1monsen]re1monsen[/url] CC-BY + - [url=https://sketchfab.com/3d-models/designer-storage-box-2-db1275e988484908afcf44d0487aed69]Designer Storage Box 2[/url] by [url=https://sketchfab.com/Raffey]Raphael Escamilla[/url] CC-BY + - [url=https://sketchfab.com/3d-models/carpet-fluffy-435d64ef1e36457790000c6b6aa4b8b2]Carpet Fluffy[/url] by [url=https://sketchfab.com/polybean]polybEAN[/url] CC-BY + - [url=https://sketchfab.com/3d-models/backpacks-blockout-homework-e80686790d884b21b52f2308e51af9c6]backpacks blockout homework[/url] by [url=https://sketchfab.com/Fellm]Fellming[/url] CC-BY + - [url=https://sketchfab.com/3d-models/restaurant-kitchen-set-part-1-129dd2f84879477ea261b422d21491f4]Restaurant Kitchen Set[/url] by [url=https://sketchfab.com/soidev]soidev[/url], CC-BY + - [url=https://sketchfab.com/nkilstrup/collections/scandinavian-kitchen-kit-7abc790a7c744579801101d9c3655f37]Scandinavian Kitchen Kit[/url], [url=https://sketchfab.com/3d-models/house-plants-1347ac536bea469281cc07d68e076654]House Plants[/url] and [url=https://sketchfab.com/3d-models/living-room-props-cee72686f7534fdea99ab04d6177df22]Living Room Props[/url] by [url=https://sketchfab.com/nkilstrup]Nicolai Kilstrup[/url], CC-BY + - [url=https://sketchfab.com/3d-models/wooden-kitchen-3c6f8352025540feb8d7019485bf20e4]Wooden kitchen[/url] by [url=https://sketchfab.com/miha.pop12]Mieshu[/url], CC-BY + - [url=https://sketchfab.com/3d-models/baked-goods-d1ae09e3cb8343bc8790b15928452906]Baked Goods[/url] by [url=https://sketchfab.com/rigsters]rigsters[/url], CC-BY + - [url=https://polyhaven.com/a/CoffeeTable_01]Coffee Table 01[/url] by [url=https://polyhaven.com/all?a=Fernando%20Quinn]Fernando Quinn[/url], CC0 + - [url=https://polyhaven.com/a/side_table_01]Side Table 01[/url] and [url=https://polyhaven.com/a/wooden_display_shelves_01]Wooden Display Shelves 01[/url] by [url=https://www.artstation.com/jamesray]James Ray Cock[/url], CC0 + - [url=https://polyhaven.com/a/throw_pillows_01]Throw Pillows 01[/url] by [url=https://www.artstation.com/serhiikhromov]Serhii Khromov[/url], CC0 + - [url=https://polyhaven.com/a/gaming_console]Gaming Console[/url] by [url=https://www.artstation.com/sean_buckley98]Sean Buckley[/url], CC0 + - [url=https://polyhaven.com/a/painted_wooden_stool]Painted Wooden Stool[/url] by [url=https://www.artstation.com/k_sannikov]Kirill Sannikov[/url], CC0 + +[font_size=28]Textures from polyhaven.com[/font_size] +[ul][url=https://polyhaven.com/a/rough_wood]Rough Wood[/url] by [url=https://polyhaven.com/all?a=Rob%20Tuytel]Rob Tuytel[/url] CC-0 +[url=https://polyhaven.com/a/brick_wall_001]Brick Wall 001[/url] and [url=https://polyhaven.com/a/smooth_concrete_floor]Smooth Concrete Floor[/url] by [url=https://polyhaven.com/all?a=Dimitrios%20Savva]Dimitrios Savva[/url] +[url=https://polyhaven.com/a/clay_floor_001]Clay Floor 001[/url] by [url=https://polyhaven.com/all?a=Dimitrios%20Savva]Dimitrios Savva[/url] and [url=https://www.artstation.com/rico_b3d]Rico Cilliers[/url] +[/ul] + +[font_size=28]Textures from AmbientCG.com[/font_size] + - [url=https://ambientcg.com/view?id=Fabric030]Fabric 030[/url] + - [url=https://ambientcg.com/view?id=WoodSubstance009]Wood Substance 009[/url] + - [url=https://ambientcg.com/view?id=Wicker010B]Wicker 010 B[/url] + - [url=https://ambientcg.com/view?id=Terrazzo019L]Terrazzo 019 L[/url] + +[font_size=28]Wikimedia Commons[/font_size] + - [url=https://commons.wikimedia.org/wiki/File:Geb%C3%A4ude_in_Darmstadt.jpg]Gebäude in Darmstadt[/url] by [url=https://commons.wikimedia.org/wiki/User:Neq00]Neq00[/url] CC-BY-SA 4.0 + +[font_size=28]Illustrations[/font_size] + + + [url=https://www.deviantart.com/fernand0fc/art/Corporate-level-bodyguard-803579124]Corporate level bodyguard[/url], [url=https://www.deviantart.com/fernand0fc/art/Into-the-glowing-sea-834238466]Into the glowing sea[/url] and [url=https://www.deviantart.com/fernand0fc/art/Anti-Hero-555054767]Anti-Hero[/url] by [url=https://www.deviantart.com/fernand0fc]Fernand0FC[/url], CC-BY-3.0 + + [url=https://unknown-horizons.org/]Unknown Horizons[/url] Artwork, provided by a [url=https://github.com/unknown-horizons/unknown-horizons.github.io/blob/source/LICENSE]GPL-2.0 license[/url] + + [url=https://rich.itch.io/strangeadventures]Strange Adventures in Infinite Space[/url] by [url=https://rich.itch.io]Digital Eel[/url], CC-BY-NC 4.0 + + [url=https://github.com/BlindMindStudios/StarRuler2-Source]Star Ruler 2[/url], CC-BY-NC 2.0 + + [url=https://megaglest.org/]MegaGlest[/url], GPL + + [url= ]Splash Screen Neo[/url] by [url=https://inkscape.org/de/~MuhamadAliAkbar/]Muhamad Ali Akbar[/url], CC-BY-SA + + [url=https://ohmygit.org/]Oh My Git[/url] by [url=https://bleeptrack.de/]bleeptrack[/url] and [url=https://morr.cc/]blinry[/url], Blue Oak Model License + + [url=]Ghostwriter[/url] by kde + +[font_size=34]Music[/font_size] + - [url=https://azurestudios.bandcamp.com/album/foundations-i-24bit]Foundations I by Azure Studios[/url], CC-BY 3.0 + - Infinite Skies from [url=https://alkakrab.itch.io/free-10-rpg-game-ambient-tracks-music-pack-no-copyright]10 Ambient RPG Tracks[/url] by [url=https://alkakrab.itch.io/]alkakrab[/url] [i]\\\"Absolutely Free For Commercial use.\\\"[/i] + +[font_size=28]Sounds Effects[/font_size] + - [url=https://freesound.org/people/InspectorJ/sounds/346641/]Rain on Windows, Interior[/url] by [url=https://freesound.org/people/InspectorJ/]InspectorJ[/url] CC-BY 3.0 + - [url=https://freesound.org/people/MrAuralization/sounds/241294/]Rain and thunder[/url] by [url=https://freesound.org/people/MrAuralization/]MrAuralization[/url] CC-BY 3.0 + - [url=https://freesound.org/people/BlueDelta/sounds/446753/]Heavy Thunder Strike - no Rain - QUADRO[/url] by [url=https://freesound.org/people/BlueDelta/]BlueDelta[/url] CC-BY 3.0 + +[font_size=34]Fonts all OFL[/font_size] + + - Nanum Fonts by [url=https://fonts.google.com/?query=Sandoll]Sandoll[/url] + - Atkinson Hyperlegible by Braille Institute, Applied Design Works, Elliott Scott, Megan Eiswerth, Linus Boman, Theodore Petrosky\"\" +[center]" +fit_content = true +script = ExtResource("2_jv284") +markdown_text = "[center] +## is +#made by betalars + + + + + + + + +published by +## Purple Sloth Game Collective + +produced with the help of +## Vu Dieu Linh @ polynormal games + + + +### Contributers +#### Programming +Adrian Schmid +Nek0 +AprilThePink +and somebody that I used to know + +#### Voice Acting +Jas Arianna +Newt + +#### Soundtrack +STTLE + + +### Frame of Mind was created in Godot 4. + +#### Special thanks to my friends and allies: +caesey, Nase, Jenny, map-c, Svenja, Milo, Francis, Christoph, Johanna, Friedrich Lüder + +#### Thanks to the Contributers of: +blender +inkscape +ghostwriter +hedgedoc +gitea +Godot Steam +MarkdownLabel +Jovian-NixOS +LibreOffice + +#### Thanks to these Community Members +Maxi, iFire +## Creative Commons Assets + +### 3D-Assets + - [Antique Dresser](https://sketchfab.com/3d-models/boy-room-19035fc846034003b76e2914ba6dd7a6) by [Darren McNerney 3D](https://sketchfab.com/DarrenMcnerney3D) CC-BY + - [Wardrobe - Low poly](https://skfb.ly/ow6TJ) by [ixMkc1](https://sketchfab.com/ixMkc1) CC-BY + - [Simple Bean Bag](https://sketchfab.com/3d-models/simple-bean-bag-64d111cec3d842f09cbb8c68b1e49c8d) by [AleixoAlonso](https://sketchfab.com/AleixoAlonso) CC-BY + - [Cobwebs](https://skfb.ly/ouu9C) by [DJMaesen](https://sketchfab.com/bumstrum) CC-BY + - [Laptop](https://skfb.ly/6RVFt) by [Aullwen](https://sketchfab.com/Aullwen) CC-BY + - [Home Speaker Bar](https://skfb.ly/oqZnY) by [re1monsen](https://sketchfab.com/re1monsen) CC-BY + - [Designer Storage Box 2](https://sketchfab.com/3d-models/designer-storage-box-2-db1275e988484908afcf44d0487aed69) by [Raphael Escamilla](https://sketchfab.com/Raffey) CC-BY + - [Carpet Fluffy](https://sketchfab.com/3d-models/carpet-fluffy-435d64ef1e36457790000c6b6aa4b8b2) by [polybEAN](https://sketchfab.com/polybean) CC-BY + - [backpacks blockout homework](https://sketchfab.com/3d-models/backpacks-blockout-homework-e80686790d884b21b52f2308e51af9c6) by [Fellming](https://sketchfab.com/Fellm) CC-BY + - [Restaurant Kitchen Set](https://sketchfab.com/3d-models/restaurant-kitchen-set-part-1-129dd2f84879477ea261b422d21491f4) by [soidev](https://sketchfab.com/soidev), CC-BY + - [Scandinavian Kitchen Kit](https://sketchfab.com/nkilstrup/collections/scandinavian-kitchen-kit-7abc790a7c744579801101d9c3655f37), [House Plants](https://sketchfab.com/3d-models/house-plants-1347ac536bea469281cc07d68e076654) and [Living Room Props](https://sketchfab.com/3d-models/living-room-props-cee72686f7534fdea99ab04d6177df22) by [Nicolai Kilstrup](https://sketchfab.com/nkilstrup), CC-BY + - [Wooden kitchen](https://sketchfab.com/3d-models/wooden-kitchen-3c6f8352025540feb8d7019485bf20e4) by [Mieshu](https://sketchfab.com/miha.pop12), CC-BY + - [Baked Goods](https://sketchfab.com/3d-models/baked-goods-d1ae09e3cb8343bc8790b15928452906) by [rigsters](https://sketchfab.com/rigsters), CC-BY + - [Coffee Table 01](https://polyhaven.com/a/CoffeeTable_01) by [Fernando Quinn](https://polyhaven.com/all?a=Fernando%20Quinn), CC0 + - [Side Table 01](https://polyhaven.com/a/side_table_01) and [Wooden Display Shelves 01](https://polyhaven.com/a/wooden_display_shelves_01) by [James Ray Cock](https://www.artstation.com/jamesray), CC0 + - [Throw Pillows 01](https://polyhaven.com/a/throw_pillows_01) by [Serhii Khromov](https://www.artstation.com/serhiikhromov), CC0 + - [Gaming Console](https://polyhaven.com/a/gaming_console) by [Sean Buckley](https://www.artstation.com/sean_buckley98), CC0 + - [Painted Wooden Stool](https://polyhaven.com/a/painted_wooden_stool) by [Kirill Sannikov](https://www.artstation.com/k_sannikov), CC0 + +### Textures from polyhaven.com +- [Rough Wood](https://polyhaven.com/a/rough_wood) by [Rob Tuytel](https://polyhaven.com/all?a=Rob%20Tuytel) CC-0 +- [Brick Wall 001](https://polyhaven.com/a/brick_wall_001) and [Smooth Concrete Floor](https://polyhaven.com/a/smooth_concrete_floor) by [Dimitrios Savva](https://polyhaven.com/all?a=Dimitrios%20Savva) +- [Clay Floor 001](https://polyhaven.com/a/clay_floor_001) by [Dimitrios Savva](https://polyhaven.com/all?a=Dimitrios%20Savva) and [Rico Cilliers](https://www.artstation.com/rico_b3d) + +### Textures from AmbientCG.com + - [Fabric 030](https://ambientcg.com/view?id=Fabric030) + - [Wood Substance 009](https://ambientcg.com/view?id=WoodSubstance009) + - [Wicker 010 B](https://ambientcg.com/view?id=Wicker010B) + - [Terrazzo 019 L](https://ambientcg.com/view?id=Terrazzo019L) + +### Wikimedia Commons + - [Gebäude in Darmstadt](https://commons.wikimedia.org/wiki/File:Geb%C3%A4ude_in_Darmstadt.jpg) by [Neq00](https://commons.wikimedia.org/wiki/User:Neq00) CC-BY-SA 4.0 + +### Illustrations + + + [Corporate level bodyguard](https://www.deviantart.com/fernand0fc/art/Corporate-level-bodyguard-803579124), [Into the glowing sea](https://www.deviantart.com/fernand0fc/art/Into-the-glowing-sea-834238466) and [Anti-Hero](https://www.deviantart.com/fernand0fc/art/Anti-Hero-555054767) by [Fernand0FC](https://www.deviantart.com/fernand0fc), CC-BY-3.0 + + [Unknown Horizons](https://unknown-horizons.org/) Artwork, provided by a [GPL-2.0 license](https://github.com/unknown-horizons/unknown-horizons.github.io/blob/source/LICENSE) + + [Strange Adventures in Infinite Space](https://rich.itch.io/strangeadventures) by [Digital Eel](https://rich.itch.io), CC-BY-NC 4.0 + + [Star Ruler 2](https://github.com/BlindMindStudios/StarRuler2-Source), CC-BY-NC 2.0 + + [MegaGlest](https://megaglest.org/), GPL + + [Splash Screen Neo]( ) by [Muhamad Ali Akbar](https://inkscape.org/de/~MuhamadAliAkbar/), CC-BY-SA + + [Oh My Git](https://ohmygit.org/) by [bleeptrack](https://bleeptrack.de/) and [blinry](https://morr.cc/), Blue Oak Model License + + [Ghostwriter]() by kde + +## Music + - [Foundations I by Azure Studios](https://azurestudios.bandcamp.com/album/foundations-i-24bit), CC-BY 3.0 + - Infinite Skies from [10 Ambient RPG Tracks](https://alkakrab.itch.io/free-10-rpg-game-ambient-tracks-music-pack-no-copyright) by [alkakrab](https://alkakrab.itch.io/) *\\\\\\\"Absolutely Free For Commercial use.\\\\\\\"* + +### Sounds Effects + - [Rain on Windows, Interior](https://freesound.org/people/InspectorJ/sounds/346641/) by [InspectorJ](https://freesound.org/people/InspectorJ/) CC-BY 3.0 + - [Rain and thunder](https://freesound.org/people/MrAuralization/sounds/241294/) by [MrAuralization](https://freesound.org/people/MrAuralization/) CC-BY 3.0 + - [Heavy Thunder Strike - no Rain - QUADRO](https://freesound.org/people/BlueDelta/sounds/446753/) by [BlueDelta](https://freesound.org/people/BlueDelta/) CC-BY 3.0 + +## Fonts all OFL + + - Nanum Fonts by [Sandoll](https://fonts.google.com/?query=Sandoll) + - Atkinson Hyperlegible by Braille Institute, Applied Design Works, Elliott Scott, Megan Eiswerth, Linus Boman, Theodore Petrosky\\\"\" +[center]" +h1 = SubResource("Resource_0odxb") +h2 = SubResource("Resource_lswn8") +h3 = SubResource("Resource_a6jrf") +h4 = SubResource("Resource_xuqvo") +h5 = SubResource("Resource_qsp4k") +h6 = SubResource("Resource_kq58d") diff --git a/src/ui/curtain/curtain.gd b/src/ui/curtain/curtain.gd new file mode 100644 index 0000000..9da5edf --- /dev/null +++ b/src/ui/curtain/curtain.gd @@ -0,0 +1,20 @@ +extends Panel +class_name Curtain + +func _ready() -> void: + print_debug("curtain.gd: ready()") + show() + +func show() -> void: + visible = true + print_debug("curtain.gd: show()") + var tween := create_tween() + tween.tween_property(self, "modulate:a", 1.0, 2.0) + await tween.finished + +func hide() -> void: + print_debug("curtain.gd: hide()") + var tween := create_tween() + tween.tween_property(self, "modulate:a", 0.0, 2.0) + await tween.finished + visible = false diff --git a/src/ui/curtain/curtain.gd.uid b/src/ui/curtain/curtain.gd.uid new file mode 100644 index 0000000..91a8cdf --- /dev/null +++ b/src/ui/curtain/curtain.gd.uid @@ -0,0 +1 @@ +uid://cg7sc173lvchp diff --git a/src/ui/curtain/curtain.tscn b/src/ui/curtain/curtain.tscn new file mode 100644 index 0000000..c8ae442 --- /dev/null +++ b/src/ui/curtain/curtain.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=3 uid="uid://cml5liawokdch"] + +[ext_resource type="Script" uid="uid://cg7sc173lvchp" path="res://ui/curtain/curtain.gd" id="1_8qa50"] + +[node name="Curtain" type="Panel"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +script = ExtResource("1_8qa50") diff --git a/src/ui/loading/anim_loading_done.res b/src/ui/loading/anim_loading_done.res new file mode 100644 index 0000000..5987414 Binary files /dev/null and b/src/ui/loading/anim_loading_done.res differ diff --git a/src/ui/loading/anim_loading_done.tres b/src/ui/loading/anim_loading_done.tres new file mode 100644 index 0000000..d967349 --- /dev/null +++ b/src/ui/loading/anim_loading_done.tres @@ -0,0 +1,65 @@ +[gd_resource type="Animation" format=3 uid="uid://bmfwcyr136isp"] + +[resource] +resource_name = "loading_done" +length = 1.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("mask/frame/deco: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(".:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/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/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("LoadingLabel:visible") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("LoadingLabel:modulate") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(1.1666666, 1.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("LoadingLabel:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0.93333334, 1.5), +"transitions": PackedFloat32Array(1.6788809, 1), +"update": 0, +"values": [Vector2(170, -37), Vector2(100, -37)] +} diff --git a/src/ui/loading/anim_loading_game.res b/src/ui/loading/anim_loading_game.res new file mode 100644 index 0000000..5095e78 Binary files /dev/null and b/src/ui/loading/anim_loading_game.res differ diff --git a/src/ui/loading/anim_loading_game.tres b/src/ui/loading/anim_loading_game.tres new file mode 100644 index 0000000..103dabc --- /dev/null +++ b/src/ui/loading/anim_loading_game.tres @@ -0,0 +1,102 @@ +[gd_resource type="Animation" format=3 uid="uid://duec6i017lil8"] + +[resource] +resource_name = "loading_game" +length = 2.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("mask:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.166667, 1.76667), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("mask:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.0333333, 1.76667, 2), +"transitions": PackedFloat32Array(0.406126, 1, 1), +"update": 0, +"values": [1.5708, 0.261799, 0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("mask/frame/deco:rotation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0.0333368, 1.76667, 2), +"transitions": PackedFloat32Array(0.406126, 1, 1), +"update": 0, +"values": [-1.5708, -0.261799, 0.0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("mask/frame/deco:modulate") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.366667, 1.66667), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("../../MainMenu:modulate") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("LoadingLabel:visible") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("LoadingLabel:modulate") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0.06666672, 1.1666666), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("LoadingLabel:position") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0.93333334), +"transitions": PackedFloat32Array(1.6788809), +"update": 0, +"values": [Vector2(170, -37)] +} diff --git a/src/ui/loading/loading.tscn b/src/ui/loading/loading.tscn new file mode 100644 index 0000000..7d58ff3 --- /dev/null +++ b/src/ui/loading/loading.tscn @@ -0,0 +1,76 @@ +[gd_scene load_steps=8 format=3 uid="uid://d38f0a333kki1"] + +[ext_resource type="Texture2D" uid="uid://d031kxe5m4ihh" path="res://import/interface-elements/loading_rect_clip.png" id="1_dbd3p"] +[ext_resource type="Texture2D" uid="uid://bqf82f8dk4yun" path="res://import/interface-elements/loading_rect_frame.png" id="2_6oitr"] +[ext_resource type="Texture2D" uid="uid://dpftqdvtrkioh" path="res://import/interface-elements/loading_rect_deco.png" id="3_jqdbn"] +[ext_resource type="Animation" uid="uid://bmfwcyr136isp" path="res://ui/loading/anim_loading_done.tres" id="5_aeyqy"] +[ext_resource type="Animation" uid="uid://duec6i017lil8" path="res://ui/loading/anim_loading_game.tres" id="6_s70xq"] + +[sub_resource type="GDScript" id="GDScript_cegan"] +script/source = "extends Label + +@export var animation_speed: float = 0.2 + +var _base_text: String +func _ready() -> void: + _base_text = text + + +var _accumulate_delta: float = 0 +var _frame: int = 0 +func _process(delta: float) -> void: + _accumulate_delta += delta + if _accumulate_delta > animation_speed: + _frame += 1 + _accumulate_delta = fmod(_accumulate_delta, animation_speed) + var dots: String + match _frame % 4: + 1: dots = \".\" + 2: dots = \"..\" + 3: dots = \"...\" + _: dots = \"\" + text = \"%s %s\" % [TranslationServer.translate(_base_text), dots] +" + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_jqdbn"] +_data = { +&"anim_loading_done": ExtResource("5_aeyqy"), +&"anim_loading_game": ExtResource("6_s70xq") +} + +[node name="Loading" type="Control"] +layout_mode = 3 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +grow_vertical = 0 + +[node name="mask" type="Sprite2D" parent="."] +modulate = Color(1, 1, 1, 0) +clip_children = 1 +position = Vector2(101.4607, -58.539307) +texture = ExtResource("1_dbd3p") + +[node name="frame" type="Sprite2D" parent="mask"] +texture = ExtResource("2_6oitr") + +[node name="deco" type="Sprite2D" parent="mask/frame"] +modulate = Color(1, 1, 1, 0) +rotation = -0.261799 +texture = ExtResource("3_jqdbn") + +[node name="LoadingLabel" type="Label" parent="."] +layout_mode = 0 +offset_left = 170.0 +offset_top = -37.0 +offset_right = 310.00003 +offset_bottom = 9.0 +text = "loading" +script = SubResource("GDScript_cegan") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +unique_name_in_owner = true +libraries = { +&"LoadingSpinner": SubResource("AnimationLibrary_jqdbn") +} +autoplay = "init" diff --git a/src/ui/menu_main/main_menu.gd b/src/ui/menu_main/main_menu.gd index 2f7ee3b..0902f65 100644 --- a/src/ui/menu_main/main_menu.gd +++ b/src/ui/menu_main/main_menu.gd @@ -26,8 +26,6 @@ func execute() -> String: continue_button.disabled = false new_game_button.theme_type_variation = "" - load_game_button.disabled = not save_game_handle.has_existing_saves() - #save_game_handle.visible = save_game_handle.has_existing_saves() _activate() @@ -44,7 +42,6 @@ func _ready() -> void: continue_button.pressed.connect(_start_game) new_game_button.pressed.connect(_new_game) load_game_button.pressed.connect(_load_save_game) - load_game_button.disabled = not save_game_handle.has_existing_saves() settings_button.pressed.connect(settings_popup.show_settings) credits_button.pressed.connect(_choose.bind("credits")) #FIXME: Needs some other encoding, like path quit_button.pressed.connect(get_tree().quit) @@ -73,6 +70,8 @@ func _choose(choice: String) -> void: func _activate() -> void: + load_game_button.disabled = not save_game_handle.has_existing_saves() + for child: Control in $PanelContainer.get_children(): child.focus_mode = Control.FOCUS_ALL child.modulate = Color.WHITE diff --git a/src/ui/menu_main/main_menu.tscn b/src/ui/menu_main/main_menu.tscn index 9cc3696..1a34639 100644 --- a/src/ui/menu_main/main_menu.tscn +++ b/src/ui/menu_main/main_menu.tscn @@ -23,7 +23,7 @@ theme = ExtResource("1_2dg4n") theme_override_styles/panel = SubResource("StyleBoxEmpty_njt06") script = ExtResource("2_rm576") -[node name="TextureRect" type="TextureRect" parent="."] +[node name="Logo" type="TextureRect" parent="."] layout_mode = 1 anchors_preset = 1 anchor_left = 1.0 @@ -36,7 +36,7 @@ grow_horizontal = 0 scale = Vector2(0.4, 0.4) texture = ExtResource("3_cm266") -[node name="TextureRect2" type="TextureRect" parent="."] +[node name="LogoType" type="TextureRect" parent="."] layout_mode = 1 anchors_preset = 1 anchor_left = 1.0 @@ -121,6 +121,7 @@ script = ExtResource("4_iotk1") metadata/_custom_type_script = "uid://cxton1pffwxk4" [node name="SettingsContainer" type="CenterContainer" parent="."] +visible = false layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 @@ -135,23 +136,5 @@ layout_mode = 2 [node name="SaveGameList" parent="." instance=ExtResource("10_vhfai")] unique_name_in_owner = true -layout_mode = 1 - -[node name="CenterContainer" type="CenterContainer" parent="."] visible = false layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 - -[node name="ScrollContainer" type="ScrollContainer" parent="CenterContainer"] -clip_contents = false -custom_minimum_size = Vector2(0, 900) -layout_mode = 2 -horizontal_scroll_mode = 0 - -[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/ScrollContainer"] -layout_mode = 2 -theme_override_constants/separation = 0 diff --git a/src/ui/menu_main/save_game_list.gd b/src/ui/menu_main/save_game_list.gd index 966afb3..a7359fa 100644 --- a/src/ui/menu_main/save_game_list.gd +++ b/src/ui/menu_main/save_game_list.gd @@ -1,4 +1,5 @@ -class_name SaveGameList extends Control +class_name SaveGameList +extends Control signal _picked(save_game: SaveGame) @@ -73,7 +74,8 @@ func _rebuild_buttons() -> void: func _on_game_picked(id: int) -> void: - _picked.emit(saves[id]) + hide() + #_picked.emit(saves[id]) func get_most_recent_save() -> SaveGame: