change: moving animations for menu outside / into tweens / subscenes
This commit is contained in:
parent
7741409668
commit
b24d8ddb6c
|
|
@ -1,6 +1,5 @@
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
# General housekeeping to set up a "normal"
|
func _ready() -> void:
|
||||||
# game experience, e.g.
|
Main.normal_boot = true # Tell the system this is a normal game start
|
||||||
# - ensure settings exist
|
|
||||||
# - ensure savegames are healthy
|
|
||||||
|
|
@ -1,14 +1,16 @@
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
|
var normal_boot : bool = false
|
||||||
|
|
||||||
@export_file(".tscn") var youth_room_path: String
|
@export_file(".tscn") var youth_room_path: String
|
||||||
@export_file(".tscn") var transition_room_path: String
|
@export_file(".tscn") var transition_room_path: String
|
||||||
@export_file(".tscn") var adulthood_room_path: String
|
@export_file(".tscn") var adulthood_room_path: String
|
||||||
@export_file(".tscn") var ending_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 main_menu: MainMenu = %MainMenu
|
||||||
@onready var pause_menu: PauseManu = %PauseMenu
|
@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 := {
|
@onready var room_paths := {
|
||||||
State.rooms.NULL: youth_room_path, # Maybe Draeven story?
|
State.rooms.NULL: youth_room_path, # Maybe Draeven story?
|
||||||
|
|
@ -19,15 +21,20 @@ extends Control
|
||||||
}
|
}
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
print_debug("main.gd: ready()")
|
print_debug("main.gd: _ready()")
|
||||||
if State.room == null:
|
await get_tree().process_frame
|
||||||
_open()
|
if normal_boot:
|
||||||
|
print_debug("main.gd: normal boot")
|
||||||
var path := await main_menu.execute()
|
var path := await main_menu.execute()
|
||||||
_close()
|
|
||||||
await _load_room(path)
|
await _load_room(path)
|
||||||
else:
|
else:
|
||||||
hide()
|
print_debug("main.gd: direct boot")
|
||||||
await _mainloop() # Debug functionality
|
credits_roll.hide()
|
||||||
|
main_menu.hide()
|
||||||
|
pause_menu.hide()
|
||||||
|
|
||||||
|
await curtain.hide()
|
||||||
|
#await _mainloop() # Debug functionality
|
||||||
|
|
||||||
|
|
||||||
func _mainloop() -> void:
|
func _mainloop() -> void:
|
||||||
|
|
@ -57,14 +64,6 @@ func _load_room(next_path: String) -> void:
|
||||||
push_error("Failed to load youth room scene.")
|
push_error("Failed to load youth room scene.")
|
||||||
return
|
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
|
#var in_game = false
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -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
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
uid://cky57x8selv1h
|
||||||
|
|
@ -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")
|
||||||
|
|
@ -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
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
uid://cg7sc173lvchp
|
||||||
|
|
@ -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")
|
||||||
Binary file not shown.
|
|
@ -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)]
|
||||||
|
}
|
||||||
Binary file not shown.
|
|
@ -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)]
|
||||||
|
}
|
||||||
|
|
@ -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"
|
||||||
|
|
@ -26,8 +26,6 @@ func execute() -> String:
|
||||||
continue_button.disabled = false
|
continue_button.disabled = false
|
||||||
new_game_button.theme_type_variation = ""
|
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()
|
#save_game_handle.visible = save_game_handle.has_existing_saves()
|
||||||
|
|
||||||
_activate()
|
_activate()
|
||||||
|
|
@ -44,7 +42,6 @@ func _ready() -> void:
|
||||||
continue_button.pressed.connect(_start_game)
|
continue_button.pressed.connect(_start_game)
|
||||||
new_game_button.pressed.connect(_new_game)
|
new_game_button.pressed.connect(_new_game)
|
||||||
load_game_button.pressed.connect(_load_save_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)
|
settings_button.pressed.connect(settings_popup.show_settings)
|
||||||
credits_button.pressed.connect(_choose.bind("credits")) #FIXME: Needs some other encoding, like path
|
credits_button.pressed.connect(_choose.bind("credits")) #FIXME: Needs some other encoding, like path
|
||||||
quit_button.pressed.connect(get_tree().quit)
|
quit_button.pressed.connect(get_tree().quit)
|
||||||
|
|
@ -73,6 +70,8 @@ func _choose(choice: String) -> void:
|
||||||
|
|
||||||
|
|
||||||
func _activate() -> void:
|
func _activate() -> void:
|
||||||
|
load_game_button.disabled = not save_game_handle.has_existing_saves()
|
||||||
|
|
||||||
for child: Control in $PanelContainer.get_children():
|
for child: Control in $PanelContainer.get_children():
|
||||||
child.focus_mode = Control.FOCUS_ALL
|
child.focus_mode = Control.FOCUS_ALL
|
||||||
child.modulate = Color.WHITE
|
child.modulate = Color.WHITE
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ theme = ExtResource("1_2dg4n")
|
||||||
theme_override_styles/panel = SubResource("StyleBoxEmpty_njt06")
|
theme_override_styles/panel = SubResource("StyleBoxEmpty_njt06")
|
||||||
script = ExtResource("2_rm576")
|
script = ExtResource("2_rm576")
|
||||||
|
|
||||||
[node name="TextureRect" type="TextureRect" parent="."]
|
[node name="Logo" type="TextureRect" parent="."]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 1
|
anchors_preset = 1
|
||||||
anchor_left = 1.0
|
anchor_left = 1.0
|
||||||
|
|
@ -36,7 +36,7 @@ grow_horizontal = 0
|
||||||
scale = Vector2(0.4, 0.4)
|
scale = Vector2(0.4, 0.4)
|
||||||
texture = ExtResource("3_cm266")
|
texture = ExtResource("3_cm266")
|
||||||
|
|
||||||
[node name="TextureRect2" type="TextureRect" parent="."]
|
[node name="LogoType" type="TextureRect" parent="."]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 1
|
anchors_preset = 1
|
||||||
anchor_left = 1.0
|
anchor_left = 1.0
|
||||||
|
|
@ -121,6 +121,7 @@ script = ExtResource("4_iotk1")
|
||||||
metadata/_custom_type_script = "uid://cxton1pffwxk4"
|
metadata/_custom_type_script = "uid://cxton1pffwxk4"
|
||||||
|
|
||||||
[node name="SettingsContainer" type="CenterContainer" parent="."]
|
[node name="SettingsContainer" type="CenterContainer" parent="."]
|
||||||
|
visible = false
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
|
@ -135,23 +136,5 @@ layout_mode = 2
|
||||||
|
|
||||||
[node name="SaveGameList" parent="." instance=ExtResource("10_vhfai")]
|
[node name="SaveGameList" parent="." instance=ExtResource("10_vhfai")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 1
|
|
||||||
|
|
||||||
[node name="CenterContainer" type="CenterContainer" parent="."]
|
|
||||||
visible = false
|
visible = false
|
||||||
layout_mode = 1
|
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
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
class_name SaveGameList extends Control
|
class_name SaveGameList
|
||||||
|
extends Control
|
||||||
|
|
||||||
signal _picked(save_game: SaveGame)
|
signal _picked(save_game: SaveGame)
|
||||||
|
|
||||||
|
|
@ -73,7 +74,8 @@ func _rebuild_buttons() -> void:
|
||||||
|
|
||||||
|
|
||||||
func _on_game_picked(id: int) -> void:
|
func _on_game_picked(id: int) -> void:
|
||||||
_picked.emit(saves[id])
|
hide()
|
||||||
|
#_picked.emit(saves[id])
|
||||||
|
|
||||||
|
|
||||||
func get_most_recent_save() -> SaveGame:
|
func get_most_recent_save() -> SaveGame:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue