WIP: creating a pause Menu

This commit is contained in:
betalars 2025-02-24 16:00:20 +01:00
parent d6705d665e
commit 2259317260
4 changed files with 466 additions and 13 deletions

BIN
design/pause_screen.blend (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -15,6 +15,7 @@ var has_stage: bool = false:
@export_file(".tscn") var ending_path: String @export_file(".tscn") var ending_path: String
@onready var main_menu:MainMenu = %"Main Menu" @onready var main_menu:MainMenu = %"Main Menu"
@onready var pause_menu = %PauseMenu
@onready var menu_animation: AnimationTree = %MenuAnimationTree @onready var menu_animation: AnimationTree = %MenuAnimationTree
@onready var focus_forward = %"Main Menu" @onready var focus_forward = %"Main Menu"
@ -39,6 +40,8 @@ var currently_loading_room: String = "":
func _ready(): func _ready():
currently_loading_room = youth_room_path currently_loading_room = youth_room_path
get_tree().tree_process_mode_changed.connect(pause_mode_changed)
func _process(delta: float) -> void: func _process(delta: float) -> void:
if currently_loading_room != "": if currently_loading_room != "":
if ResourceLoader.load_threaded_get_status(currently_loading_room) == 3: if ResourceLoader.load_threaded_get_status(currently_loading_room) == 3:
@ -52,6 +55,17 @@ func _process(delta: float) -> void:
State.stage_list = [self] State.stage_list = [self]
_return_to_menu() _return_to_menu()
$"Messe-Menue".show() $"Messe-Menue".show()
if Input.is_action_just_pressed("ui_menu") and in_game:
if not get_tree().paused:
get_tree().paused = true
var state_machine = menu_animation["parameters/playback"]
state_machine.travel("reveal_pause_menu")
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
else:
get_tree().paused = false
var state_machine = menu_animation["parameters/playback"]
state_machine.travel("start_game")
Input.mouse_mode = Input.MOUSE_MODE_HIDDEN
func debug_youth(): func debug_youth():
get_child(1).hide() get_child(1).hide()
@ -87,6 +101,7 @@ func load_save(save: SaveGame):
menu_animation["parameters/conditions/start_game"] = true menu_animation["parameters/conditions/start_game"] = true
State.active_save_game = save State.active_save_game = save
in_game = true
func _on_ready_to_unload(): func _on_ready_to_unload():
if get_child(0) is Node3D: if get_child(0) is Node3D:
@ -107,3 +122,6 @@ func start_demo():
load_save(SaveGame.new()) load_save(SaveGame.new())
$DemoMenue.hide() $DemoMenue.hide()
current_room.start_room() current_room.start_room()
func pause_mode_changed():
print(get_tree().paused)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=64 format=3 uid="uid://befxf8uruwnrl"] [gd_scene load_steps=87 format=3 uid="uid://befxf8uruwnrl"]
[ext_resource type="Script" path="res://main.gd" id="1_rqkns"] [ext_resource type="Script" path="res://main.gd" id="1_rqkns"]
[ext_resource type="PackedScene" uid="uid://gldtxysavetf" path="res://logic-scenes/startup/startup.tscn" id="1_v5rpm"] [ext_resource type="PackedScene" uid="uid://gldtxysavetf" path="res://logic-scenes/startup/startup.tscn" id="1_v5rpm"]
@ -9,7 +9,10 @@
[ext_resource type="PackedScene" uid="uid://6aaxpvoepqrm" path="res://disclaimer.tscn" id="7_t45fc"] [ext_resource type="PackedScene" uid="uid://6aaxpvoepqrm" path="res://disclaimer.tscn" id="7_t45fc"]
[ext_resource type="Script" path="res://logic-scenes/main menu/save_game_list.gd" id="8_jecj3"] [ext_resource type="Script" path="res://logic-scenes/main menu/save_game_list.gd" id="8_jecj3"]
[ext_resource type="AudioStream" uid="uid://fej7yw25lgqy" path="res://import/menu_music/Ambient 6.ogg" id="8_tptb8"] [ext_resource type="AudioStream" uid="uid://fej7yw25lgqy" path="res://import/menu_music/Ambient 6.ogg" id="8_tptb8"]
[ext_resource type="Script" path="res://logic-scenes/main menu/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="Script" path="res://dev-util/savegame.gd" id="10_ohds0"] [ext_resource type="Script" path="res://dev-util/savegame.gd" id="10_ohds0"]
[ext_resource type="Texture2D" uid="uid://bdyg065h8vcdi" path="res://base-environments/youth_room/shaders/starlight-textures.png" id="10_pipov"]
[ext_resource type="Script" path="res://addons/markdownlabel/markdownlabel.gd" id="10_viehl"] [ext_resource type="Script" path="res://addons/markdownlabel/markdownlabel.gd" id="10_viehl"]
[ext_resource type="Texture2D" uid="uid://bk5ja14r7r6i4" path="res://import/interface-elements/empty_save_slot.png" id="11_lul3y"] [ext_resource type="Texture2D" uid="uid://bk5ja14r7r6i4" path="res://import/interface-elements/empty_save_slot.png" id="11_lul3y"]
[ext_resource type="Script" path="res://addons/markdownlabel/header_formats/h1_format.gd" id="11_uwfii"] [ext_resource type="Script" path="res://addons/markdownlabel/header_formats/h1_format.gd" id="11_uwfii"]
@ -186,6 +189,54 @@ tracks/12/keys = {
"update": 1, "update": 1,
"values": [false] "values": [false]
} }
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("../../CenterContainer:visible")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("../../CenterContainer/TextureRect:modulate")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/15/type = "value"
tracks/15/imported = false
tracks/15/enabled = true
tracks/15/path = NodePath("../../CenterContainer/PauseMenu/VBoxContainer: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("../../CenterContainer/PauseMenu:modulate")
tracks/16/interp = 1
tracks/16/loop_wrap = true
tracks/16/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_sfr6l"] [sub_resource type="Animation" id="Animation_sfr6l"]
resource_name = "credits_roll" resource_name = "credits_roll"
@ -302,6 +353,70 @@ tracks/8/keys = {
"values": [Color(0, 0, 0, 1)] "values": [Color(0, 0, 0, 1)]
} }
[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("../../CenterContainer: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("../../CenterContainer/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("../../CenterContainer/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("../../CenterContainer/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("%Main Menu: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"] [sub_resource type="Animation" id="Animation_l5ynk"]
resource_name = "init" resource_name = "init"
length = 0.5 length = 0.5
@ -572,6 +687,69 @@ tracks/5/keys = {
"values": [true] "values": [true]
} }
[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("../../CenterContainer: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("../../CenterContainer/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("../../CenterContainer/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("../../CenterContainer/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("%Main Menu: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"] [sub_resource type="Animation" id="Animation_q7d2t"]
resource_name = "start_game" resource_name = "start_game"
length = 0.001 length = 0.001
@ -681,10 +859,12 @@ tracks/4/keys = {
_data = { _data = {
"RESET": SubResource("Animation_y6s08"), "RESET": SubResource("Animation_y6s08"),
"credits_roll": SubResource("Animation_sfr6l"), "credits_roll": SubResource("Animation_sfr6l"),
"hide_pause_menu": SubResource("Animation_lh4gu"),
"init": SubResource("Animation_l5ynk"), "init": SubResource("Animation_l5ynk"),
"loading_done": SubResource("Animation_nuxr6"), "loading_done": SubResource("Animation_nuxr6"),
"loading_game": SubResource("Animation_em5qx"), "loading_game": SubResource("Animation_em5qx"),
"loading_menu": SubResource("Animation_k667j"), "loading_menu": SubResource("Animation_k667j"),
"reveal_pause_menu": SubResource("Animation_s5m6i"),
"start_game": SubResource("Animation_q7d2t"), "start_game": SubResource("Animation_q7d2t"),
"transition_load_game": SubResource("Animation_hv4pr") "transition_load_game": SubResource("Animation_hv4pr")
} }
@ -692,6 +872,9 @@ _data = {
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_2npx0"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_2npx0"]
animation = &"credits_roll" animation = &"credits_roll"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_6p8we"]
animation = &"hide_pause_menu"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_8b66u"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_8b66u"]
animation = &"init" animation = &"init"
@ -707,6 +890,9 @@ animation = &"loading_done"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_axnce"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_axnce"]
animation = &"loading_game" animation = &"loading_game"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_pr4oj"]
animation = &"reveal_pause_menu"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_5umfs"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_5umfs"]
animation = &"start_game" animation = &"start_game"
@ -760,12 +946,25 @@ advance_mode = 2
advance_mode = 2 advance_mode = 2
advance_condition = &"roll_credits" 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"] [sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_uwcb5"]
states/End/position = Vector2(981, 105) states/End/position = Vector2(981, 105)
states/credits_roll/node = SubResource("AnimationNodeAnimation_2npx0") states/credits_roll/node = SubResource("AnimationNodeAnimation_2npx0")
states/credits_roll/position = Vector2(877.91, 32) states/credits_roll/position = Vector2(877.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/node = SubResource("AnimationNodeAnimation_8b66u")
states/init/position = Vector2(351, 105) states/init/position = Vector2(401, 100)
states/load_savegame/node = SubResource("AnimationNodeAnimation_ahhta") states/load_savegame/node = SubResource("AnimationNodeAnimation_ahhta")
states/load_savegame/position = Vector2(751.91, 242) states/load_savegame/position = Vector2(751.91, 242)
states/loading/node = SubResource("AnimationNodeAnimation_v66b5") states/loading/node = SubResource("AnimationNodeAnimation_v66b5")
@ -774,10 +973,12 @@ states/loading_done/node = SubResource("AnimationNodeAnimation_10f75")
states/loading_done/position = Vector2(623, 136) states/loading_done/position = Vector2(623, 136)
states/loading_game/node = SubResource("AnimationNodeAnimation_axnce") states/loading_game/node = SubResource("AnimationNodeAnimation_axnce")
states/loading_game/position = Vector2(797.91, 136) 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/node = SubResource("AnimationNodeAnimation_5umfs")
states/start_game/position = Vector2(721, 32) 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")] 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(-22.2504, 1.26639) graph_offset = Vector2(157.75, -185.734)
[sub_resource type="Resource" id="Resource_0ccxs"] [sub_resource type="Resource" id="Resource_0ccxs"]
script = ExtResource("10_ohds0") script = ExtResource("10_ohds0")
@ -790,6 +991,94 @@ thumbnail = ExtResource("11_lul3y")
last_saved = 1.72857e+09 last_saved = 1.72857e+09
is_save_file_valid = false is_save_file_valid = false
[sub_resource type="Resource" id="Resource_ohjec"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2025-02-07_19:06:26"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73895e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_fla7m"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2025-02-07_22:44:26"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73896e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_6v5b2"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2025-02-08_10:58:47"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73901e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_mavpj"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2025-02-08_10:59:28"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73901e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_ggdn0"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2025-02-08_15:10:04"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73902e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_7qac8"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2025-02-08_16:24:23"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73903e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_kqi28"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2025-02-08_20:32:11"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73904e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_yfsev"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2025-02-09_14:15:05"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73911e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_qi5jr"] [sub_resource type="Resource" id="Resource_qi5jr"]
resource_local_to_scene = true resource_local_to_scene = true
script = ExtResource("11_uwfii") script = ExtResource("11_uwfii")
@ -934,7 +1223,72 @@ is_underlined = false
override_font_color = false override_font_color = false
font_color = Color(1, 1, 1, 1) font_color = Color(1, 1, 1, 1)
[sub_resource type="Shader" id="Shader_duh8f"]
code = "shader_type canvas_item;
render_mode blend_premul_alpha;
uniform float nebula_brightness = 4;
uniform vec2 nebula_scale = vec2(1.5);
uniform sampler2D starlight_noise: repeat_enable;
uniform sampler2D starlight_textures;
uniform float rotation_speed = 0.02;
uniform vec2 rotation_pivot = vec2(.8);
uniform vec2 drift_compensation = vec2(0.1, -0.2);
uniform float noise_strength = 0.2;
// https://gist.github.com/ayamflow/c06bc0c8a64f985dd431bd0ac5b557cd
vec2 rotateUV(vec2 uv, vec2 pivot, float rotation)
{
return vec2(
cos(rotation) * (uv.x - pivot.x) + sin(rotation) * (uv.y - pivot.y) + pivot.x,
cos(rotation) * (uv.y - pivot.y) - sin(rotation) * (uv.x - pivot.x) + pivot.y
);
}
//clamp(, .0, 1.0
void fragment() {
COLOR *= vec4(.0,
texture(starlight_textures,fract(UV*2.0)).x * 2.0*pow(max(sin(TIME + 10.0 * texture(starlight_textures,UV).y), .0), 5.0),
texture(starlight_textures,
clamp(
UV / nebula_scale + drift_compensation + 1.0 *
texture(starlight_noise, rotateUV(
UV / nebula_scale + noise_strength * texture(starlight_noise, rotateUV(UV, -rotation_pivot, TIME*rotation_speed)).yz,
rotation_pivot, TIME*rotation_speed)
).xz,
.0, 1.0))
.z * nebula_brightness,
clamp(pow(COLOR.x * 2.5 - (texture(starlight_noise, UV*2.0+TIME*.02).x + 0.8), 1.5), .0, 1.0)
) * COLOR.w;
}
"
[sub_resource type="ShaderMaterial" id="ShaderMaterial_knlqd"]
shader = SubResource("Shader_duh8f")
shader_parameter/nebula_brightness = 2.4
shader_parameter/nebula_scale = Vector2(1.3, 1.6)
shader_parameter/rotation_speed = 0.02
shader_parameter/rotation_pivot = Vector2(0.8, 0.8)
shader_parameter/drift_compensation = Vector2(0.1, -0.2)
shader_parameter/noise_strength = 0.2
shader_parameter/starlight_noise = ExtResource("9_l7v4b")
shader_parameter/starlight_textures = ExtResource("10_pipov")
[sub_resource type="Gradient" id="Gradient_7nxov"]
interpolation_color_space = 2
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_swtmc"]
gradient = SubResource("Gradient_7nxov")
width = 2048
height = 1536
fill = 1
fill_from = Vector2(0.538462, 0.491453)
fill_to = Vector2(1.3, -0.3)
[node name="main" type="Node3D"] [node name="main" type="Node3D"]
process_mode = 3
script = ExtResource("1_rqkns") script = ExtResource("1_rqkns")
youth_room_path = "res://base-environments/youth_room/youth_room.tscn" youth_room_path = "res://base-environments/youth_room/youth_room.tscn"
@ -1011,6 +1365,7 @@ parameters/conditions/start_game = false
bus = &"music" bus = &"music"
[node name="SaveGameHandle" type="CenterContainer" parent="."] [node name="SaveGameHandle" type="CenterContainer" parent="."]
process_mode = 4
visible = false visible = false
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@ -1018,7 +1373,7 @@ anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
script = ExtResource("8_jecj3") script = ExtResource("8_jecj3")
saves = Array[ExtResource("10_ohds0")]([SubResource("Resource_0ccxs")]) saves = Array[ExtResource("10_ohds0")]([SubResource("Resource_0ccxs"), SubResource("Resource_ohjec"), SubResource("Resource_fla7m"), SubResource("Resource_6v5b2"), SubResource("Resource_mavpj"), SubResource("Resource_ggdn0"), SubResource("Resource_7qac8"), SubResource("Resource_kqi28"), SubResource("Resource_yfsev")])
[node name="CreditsRoll" type="RichTextLabel" parent="."] [node name="CreditsRoll" type="RichTextLabel" parent="."]
visible = false visible = false
@ -1030,7 +1385,7 @@ anchor_bottom = 0.5
offset_left = -645.0 offset_left = -645.0
offset_top = -340.0 offset_top = -340.0
offset_right = 645.0 offset_right = 645.0
offset_bottom = 3709.0 offset_bottom = 3739.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
size_flags_horizontal = 4 size_flags_horizontal = 4
@ -1053,7 +1408,7 @@ published by
[font_size=27]Purple Sloth Game Collective[/font_size] [font_size=27]Purple Sloth Game Collective[/font_size]
produced with the help of produced with the help of
[font_size=27]Vu Dieu Linh @ Studio Invinity[/font_size] [font_size=27]Vu Dieu Linh @ polynormal games[/font_size]
@ -1066,6 +1421,7 @@ and somebody that I used to know
[font_size=18]Voice Acting[/font_size] [font_size=18]Voice Acting[/font_size]
Jas Arianna Jas Arianna
Sarosenna
[font_size=18]Soundtrack[/font_size] [font_size=18]Soundtrack[/font_size]
STTLE STTLE
@ -1074,7 +1430,7 @@ STTLE
[font_size=22]Frame of Mind was created in Godot 4.[/font_size] [font_size=22]Frame of Mind was created in Godot 4.[/font_size]
[font_size=18]Special thanks to close friends and allies:[/font_size] [font_size=18]Special thanks to close friends and allies:[/font_size]
Jenny, map-c, Svenja, caesey, Milo, Francis, Sandro, Christoph, Johanna, Friedrich Lüder caesey, Nase, Jenny, map-c, Svenja, Milo, Francis, Sandro, Christoph, Johanna, Friedrich Lüder
[font_size=18]Thanks to the Developers of:[/font_size] [font_size=18]Thanks to the Developers of:[/font_size]
blender blender
@ -1166,7 +1522,7 @@ published by
## Purple Sloth Game Collective ## Purple Sloth Game Collective
produced with the help of produced with the help of
## Vu Dieu Linh @ Studio Invinity ## Vu Dieu Linh @ polynormal games
@ -1179,6 +1535,7 @@ and somebody that I used to know
#### Voice Acting #### Voice Acting
Jas Arianna Jas Arianna
Sarosenna
#### Soundtrack #### Soundtrack
STTLE STTLE
@ -1187,7 +1544,7 @@ STTLE
### Frame of Mind was created in Godot 4. ### Frame of Mind was created in Godot 4.
#### Special thanks to close friends and allies: #### Special thanks to close friends and allies:
Jenny, map-c, Svenja, caesey, Milo, Francis, Sandro, Christoph, Johanna, Friedrich Lüder caesey, Nase, Jenny, map-c, Svenja, Milo, Francis, Sandro, Christoph, Johanna, Friedrich Lüder
#### Thanks to the Developers of: #### Thanks to the Developers of:
blender blender
@ -1284,7 +1641,7 @@ size_flags_vertical = 4
bbcode_enabled = true bbcode_enabled = true
text = "[center] text = "[center]
[font_size=36]Thanks for Playing[/font_size] [font_size=36]Thanks for Playing[/font_size]
... while this game is still in alpha. ... the public demo version.
We are sorry you were not yet able to resolve Lisas thoughts. We are sorry you were not yet able to resolve Lisas thoughts.
But we would like to hear yours. But we would like to hear yours.
@ -1302,7 +1659,7 @@ fit_content = true
script = ExtResource("10_viehl") script = ExtResource("10_viehl")
markdown_text = "[center] markdown_text = "[center]
# Thanks for Playing # Thanks for Playing
... while this game is still in alpha. ... the public demo version.
We are sorry you were not yet able to resolve Lisas thoughts. We are sorry you were not yet able to resolve Lisas thoughts.
But we would like to hear yours. But we would like to hear yours.
@ -1445,6 +1802,75 @@ layout_mode = 2
text = "lang-disclaimer" text = "lang-disclaimer"
horizontal_alignment = 1 horizontal_alignment = 1
[node name="CenterContainer" type="CenterContainer" parent="."]
visible = false
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="TextureRect" type="TextureRect" parent="CenterContainer"]
material = SubResource("ShaderMaterial_knlqd")
layout_mode = 2
texture = SubResource("GradientTexture2D_swtmc")
[node name="PauseMenu" type="PanelContainer" parent="CenterContainer"]
unique_name_in_owner = true
layout_mode = 2
script = ExtResource("9_ihfph")
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/PauseMenu"]
modulate = Color(1, 1, 1, 0)
layout_mode = 2
[node name="Label" type="Label" parent="CenterContainer/PauseMenu/VBoxContainer"]
layout_mode = 2
theme_type_variation = &"HeaderLarge"
text = "Game Paused"
[node name="ResumeButton" type="Button" parent="CenterContainer/PauseMenu/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
text = "Resume"
[node name="ToMenuButton" type="Button" parent="CenterContainer/PauseMenu/VBoxContainer"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Return to Menu"
[node name="ToSettingsButton" type="Button" parent="CenterContainer/PauseMenu/VBoxContainer"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Open Settings"
[node name="ToDesktopButton" type="Button" parent="CenterContainer/PauseMenu/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
text = "Quit to Desktop"
[node name="HSeparator" type="HSeparator" parent="CenterContainer/PauseMenu/VBoxContainer"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
[node name="FindHelplineButton" type="Button" parent="CenterContainer/PauseMenu/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
text = "Find Help-Lines"
[node name="Label2" type="Label" parent="CenterContainer/PauseMenu/VBoxContainer"]
layout_mode = 2
text = "opens findahelpline.com"
horizontal_alignment = 1
[node name="SkipStoryButton" type="Button" parent="CenterContainer/PauseMenu/VBoxContainer"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Skip this Story"
[connection signal="room_loaded" from="." to="DemoMenue" method="_on_main_room_loaded"] [connection signal="room_loaded" from="." to="DemoMenue" method="_on_main_room_loaded"]
[connection signal="on_read" from="Disclaimer" to="Startup Menu" method="starting"] [connection signal="on_read" from="Disclaimer" to="Startup Menu" method="starting"]
[connection signal="pressed" from="DemoMenue/DemoStartButton" to="." method="start_demo"] [connection signal="pressed" from="DemoMenue/DemoStartButton" to="." method="start_demo"]

View File

@ -75,6 +75,12 @@ ui_cancel={
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"script":null)
] ]
} }
ui_menu={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194370,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
player_right={ player_right={
"deadzone": 0.5, "deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)