WIP: menu main menu overhaul
This commit is contained in:
parent
9c9ae6ef45
commit
707b1b808f
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=40 format=3 uid="uid://cd63barv73rfx"]
|
[gd_scene load_steps=41 format=3 uid="uid://cd63barv73rfx"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://d3ewjumh0b0g6" path="res://logic-scenes/main menu/logo.png" id="1_61qpo"]
|
[ext_resource type="Texture2D" uid="uid://d3ewjumh0b0g6" path="res://logic-scenes/main menu/logo.png" id="1_61qpo"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ds1n0xhxqlp4b" path="res://base-environments/youth_room/shaders/universe_noise.png" id="1_t34p3"]
|
[ext_resource type="Texture2D" uid="uid://ds1n0xhxqlp4b" path="res://base-environments/youth_room/shaders/universe_noise.png" id="1_t34p3"]
|
||||||
|
|
@ -6,6 +6,8 @@
|
||||||
[ext_resource type="Texture2D" uid="uid://bdyg065h8vcdi" path="res://base-environments/youth_room/shaders/starlight-textures.png" id="2_s1yf2"]
|
[ext_resource type="Texture2D" uid="uid://bdyg065h8vcdi" path="res://base-environments/youth_room/shaders/starlight-textures.png" id="2_s1yf2"]
|
||||||
[ext_resource type="Texture2D" uid="uid://buo4ntxw1vofu" path="res://addons/input_prompts/icons/keyboard/w.png" id="4_8e30h"]
|
[ext_resource type="Texture2D" uid="uid://buo4ntxw1vofu" path="res://addons/input_prompts/icons/keyboard/w.png" id="4_8e30h"]
|
||||||
[ext_resource type="Script" uid="uid://bbs1u7ojno7xo" path="res://addons/input_prompts/action_prompt/action_prompt.gd" id="5_6w5b4"]
|
[ext_resource type="Script" uid="uid://bbs1u7ojno7xo" path="res://addons/input_prompts/action_prompt/action_prompt.gd" id="5_6w5b4"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dep3kuio0xnui" path="res://import/interface-elements/lower_corner.png" id="5_b7q2n"]
|
||||||
|
[ext_resource type="Script" uid="uid://cxton1pffwxk4" path="res://button_themer.gd" id="6_qhf78"]
|
||||||
[ext_resource type="Texture2D" uid="uid://yakqusko3p3h" path="res://addons/input_prompts/icons/keyboard/a.png" id="7_g425y"]
|
[ext_resource type="Texture2D" uid="uid://yakqusko3p3h" path="res://addons/input_prompts/icons/keyboard/a.png" id="7_g425y"]
|
||||||
[ext_resource type="Texture2D" uid="uid://b0kuadlp4jw6j" path="res://addons/input_prompts/icons/keyboard/d.png" id="8_kj67n"]
|
[ext_resource type="Texture2D" uid="uid://b0kuadlp4jw6j" path="res://addons/input_prompts/icons/keyboard/d.png" id="8_kj67n"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bwhf0tx67yj7a" path="res://addons/input_prompts/icons/keyboard/s.png" id="9_xo70c"]
|
[ext_resource type="Texture2D" uid="uid://bwhf0tx67yj7a" path="res://addons/input_prompts/icons/keyboard/s.png" id="9_xo70c"]
|
||||||
|
|
@ -21,7 +23,14 @@
|
||||||
[sub_resource type="GDScript" id="GDScript_t34p3"]
|
[sub_resource type="GDScript" id="GDScript_t34p3"]
|
||||||
script/source = "extends Node3D
|
script/source = "extends Node3D
|
||||||
|
|
||||||
var has_stage = false
|
var has_stage = false:
|
||||||
|
set(stage):
|
||||||
|
if stage:
|
||||||
|
if not is_node_ready():
|
||||||
|
await ready
|
||||||
|
await get_tree().process_frame
|
||||||
|
%PressStart.grab_focus()
|
||||||
|
has_stage = stage
|
||||||
|
|
||||||
var room = preload(\"res://base-environments/youth_room/youth_room.tscn\")
|
var room = preload(\"res://base-environments/youth_room/youth_room.tscn\")
|
||||||
var loaded_room: RoomTemplate
|
var loaded_room: RoomTemplate
|
||||||
|
|
@ -33,12 +42,12 @@ func _ready() -> void:
|
||||||
State.show_content_notes = false
|
State.show_content_notes = false
|
||||||
State.text_language = 1
|
State.text_language = 1
|
||||||
State.speech_language = 1
|
State.speech_language = 1
|
||||||
$Menu/VBoxContainer2/PressStart.grab_focus()
|
|
||||||
Scenes.sign_up_for_sequence(prepare_transition, Scenes.id.TRANSITION, 0)
|
Scenes.sign_up_for_sequence(prepare_transition, Scenes.id.TRANSITION, 0)
|
||||||
Scenes.sign_up_for_sequence(transition, Scenes.id.TRANSITION, 2)
|
Scenes.sign_up_for_sequence(transition, Scenes.id.TRANSITION, 2)
|
||||||
if OS.get_locale_language() == \"de\":
|
if OS.get_locale_language() == \"de\":
|
||||||
$Menu/VBoxContainer/SpeechButton.select(1)
|
$Menu/VBoxContainer/SpeechButton.select(1)
|
||||||
$Menu/VBoxContainer/SpeechButton.item_selected.emit(1)
|
$Menu/VBoxContainer/SpeechButton.item_selected.emit(1)
|
||||||
|
|
||||||
|
|
||||||
func prepare_transition(_id):
|
func prepare_transition(_id):
|
||||||
await get_tree().process_frame
|
await get_tree().process_frame
|
||||||
|
|
@ -91,9 +100,9 @@ func _on_start_button_pressed():
|
||||||
%Menu.mouse_filter = Control.MouseFilter.MOUSE_FILTER_PASS
|
%Menu.mouse_filter = Control.MouseFilter.MOUSE_FILTER_PASS
|
||||||
loaded_room.start_room()
|
loaded_room.start_room()
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
#func _process(_delta: float) -> void:
|
||||||
if Input.is_action_just_pressed(\"reset_demo\"):
|
# if Input.is_action_just_pressed(\"reset_demo\"):
|
||||||
_on_reset()
|
# _on_reset()
|
||||||
|
|
||||||
func _on_reset():
|
func _on_reset():
|
||||||
load_room()
|
load_room()
|
||||||
|
|
@ -134,7 +143,7 @@ func show_accessibility_settings():
|
||||||
if in_game:
|
if in_game:
|
||||||
%ResumeButton.grab_focus()
|
%ResumeButton.grab_focus()
|
||||||
else:
|
else:
|
||||||
$Menu/VBoxContainer2/PressStart.grab_focus()
|
%PressStart.grab_focus()
|
||||||
|
|
||||||
func toggle_pause_menu():
|
func toggle_pause_menu():
|
||||||
if not get_tree().paused:
|
if not get_tree().paused:
|
||||||
|
|
@ -215,40 +224,40 @@ fill = 1
|
||||||
fill_from = Vector2(0.538462, 0.491453)
|
fill_from = Vector2(0.538462, 0.491453)
|
||||||
fill_to = Vector2(1.3, -0.3)
|
fill_to = Vector2(1.3, -0.3)
|
||||||
|
|
||||||
[sub_resource type="InputEventKey" id="InputEventKey_mivr6"]
|
[sub_resource type="InputEventKey" id="InputEventKey_b7q2n"]
|
||||||
device = -1
|
device = -1
|
||||||
physical_keycode = 87
|
physical_keycode = 87
|
||||||
unicode = 119
|
unicode = 119
|
||||||
|
|
||||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_52c3j"]
|
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_qhf78"]
|
||||||
device = -1
|
device = -1
|
||||||
axis = 1
|
axis = 1
|
||||||
axis_value = -1.0
|
axis_value = -1.0
|
||||||
|
|
||||||
[sub_resource type="InputEventKey" id="InputEventKey_b7q2n"]
|
[sub_resource type="InputEventKey" id="InputEventKey_gatj6"]
|
||||||
device = -1
|
device = -1
|
||||||
physical_keycode = 65
|
physical_keycode = 65
|
||||||
unicode = 97
|
unicode = 97
|
||||||
|
|
||||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_qhf78"]
|
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_ol51q"]
|
||||||
device = -1
|
device = -1
|
||||||
axis_value = -1.0
|
axis_value = -1.0
|
||||||
|
|
||||||
[sub_resource type="InputEventKey" id="InputEventKey_gatj6"]
|
[sub_resource type="InputEventKey" id="InputEventKey_2rqk2"]
|
||||||
device = -1
|
device = -1
|
||||||
physical_keycode = 68
|
physical_keycode = 68
|
||||||
unicode = 100
|
unicode = 100
|
||||||
|
|
||||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_ol51q"]
|
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_w8m28"]
|
||||||
device = -1
|
device = -1
|
||||||
axis_value = 1.0
|
axis_value = 1.0
|
||||||
|
|
||||||
[sub_resource type="InputEventKey" id="InputEventKey_2rqk2"]
|
[sub_resource type="InputEventKey" id="InputEventKey_kwpdx"]
|
||||||
device = -1
|
device = -1
|
||||||
physical_keycode = 83
|
physical_keycode = 83
|
||||||
unicode = 115
|
unicode = 115
|
||||||
|
|
||||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_w8m28"]
|
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_2xua5"]
|
||||||
device = -1
|
device = -1
|
||||||
axis = 1
|
axis = 1
|
||||||
axis_value = 1.0
|
axis_value = 1.0
|
||||||
|
|
@ -366,8 +375,6 @@ func _process(_delta):
|
||||||
text = \"%d/%d\" % [Engine.get_frames_per_second(), Engine.max_fps]
|
text = \"%d/%d\" % [Engine.get_frames_per_second(), Engine.max_fps]
|
||||||
"
|
"
|
||||||
|
|
||||||
[sub_resource type="VideoStreamTheora" id="VideoStreamTheora_kt5p7"]
|
|
||||||
|
|
||||||
[node name="DemoMain" type="Node3D"]
|
[node name="DemoMain" type="Node3D"]
|
||||||
process_mode = 3
|
process_mode = 3
|
||||||
script = SubResource("GDScript_t34p3")
|
script = SubResource("GDScript_t34p3")
|
||||||
|
|
@ -437,10 +444,6 @@ text = "*Als Messe-Demo geprüft. Entspricht angestrebtem finalen Rating."
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
autowrap_mode = 2
|
autowrap_mode = 2
|
||||||
|
|
||||||
[node name="Usk12" type="Sprite2D" parent="Menu"]
|
|
||||||
position = Vector2(229, 224)
|
|
||||||
texture = ExtResource("2_ncfee")
|
|
||||||
|
|
||||||
[node name="VBoxContainer2" type="VBoxContainer" parent="Menu"]
|
[node name="VBoxContainer2" type="VBoxContainer" parent="Menu"]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 8
|
anchors_preset = 8
|
||||||
|
|
@ -464,9 +467,14 @@ texture = ExtResource("1_61qpo")
|
||||||
expand_mode = 2
|
expand_mode = 2
|
||||||
|
|
||||||
[node name="PressStart" type="Button" parent="Menu/VBoxContainer2"]
|
[node name="PressStart" type="Button" parent="Menu/VBoxContainer2"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
clip_contents = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_font_sizes/font_size = 45
|
size_flags_horizontal = 4
|
||||||
|
theme_type_variation = &"H1Button"
|
||||||
text = "Start the Demo!"
|
text = "Start the Demo!"
|
||||||
|
script = ExtResource("6_qhf78")
|
||||||
|
metadata/_custom_type_script = "uid://cxton1pffwxk4"
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="Menu"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="Menu"]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
|
@ -482,6 +490,14 @@ offset_bottom = -92.0
|
||||||
grow_horizontal = 0
|
grow_horizontal = 0
|
||||||
grow_vertical = 0
|
grow_vertical = 0
|
||||||
|
|
||||||
|
[node name="TextureRect2" type="TextureRect" parent="Menu/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
size_flags_vertical = 4
|
||||||
|
texture = ExtResource("5_b7q2n")
|
||||||
|
expand_mode = 1
|
||||||
|
stretch_mode = 4
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Menu/VBoxContainer"]
|
[node name="Label" type="Label" parent="Menu/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_type_variation = &"HeaderMedium"
|
theme_type_variation = &"HeaderMedium"
|
||||||
|
|
@ -554,7 +570,7 @@ stretch_mode = 5
|
||||||
script = ExtResource("5_6w5b4")
|
script = ExtResource("5_6w5b4")
|
||||||
action = "player_forwards"
|
action = "player_forwards"
|
||||||
icon = 4
|
icon = 4
|
||||||
events = Array[InputEvent]([SubResource("InputEventKey_mivr6"), SubResource("InputEventJoypadMotion_52c3j")])
|
events = Array[InputEvent]([SubResource("InputEventKey_b7q2n"), SubResource("InputEventJoypadMotion_qhf78")])
|
||||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||||
|
|
||||||
[node name="ActionPrompt2" type="TextureRect" parent="Menu/Control"]
|
[node name="ActionPrompt2" type="TextureRect" parent="Menu/Control"]
|
||||||
|
|
@ -569,7 +585,7 @@ stretch_mode = 5
|
||||||
script = ExtResource("5_6w5b4")
|
script = ExtResource("5_6w5b4")
|
||||||
action = "player_left"
|
action = "player_left"
|
||||||
icon = 4
|
icon = 4
|
||||||
events = Array[InputEvent]([SubResource("InputEventKey_b7q2n"), SubResource("InputEventJoypadMotion_qhf78")])
|
events = Array[InputEvent]([SubResource("InputEventKey_gatj6"), SubResource("InputEventJoypadMotion_ol51q")])
|
||||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||||
|
|
||||||
[node name="ActionPrompt4" type="TextureRect" parent="Menu/Control"]
|
[node name="ActionPrompt4" type="TextureRect" parent="Menu/Control"]
|
||||||
|
|
@ -584,7 +600,7 @@ stretch_mode = 5
|
||||||
script = ExtResource("5_6w5b4")
|
script = ExtResource("5_6w5b4")
|
||||||
action = "player_right"
|
action = "player_right"
|
||||||
icon = 4
|
icon = 4
|
||||||
events = Array[InputEvent]([SubResource("InputEventKey_gatj6"), SubResource("InputEventJoypadMotion_ol51q")])
|
events = Array[InputEvent]([SubResource("InputEventKey_2rqk2"), SubResource("InputEventJoypadMotion_w8m28")])
|
||||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||||
|
|
||||||
[node name="ActionPrompt3" type="TextureRect" parent="Menu/Control"]
|
[node name="ActionPrompt3" type="TextureRect" parent="Menu/Control"]
|
||||||
|
|
@ -599,7 +615,7 @@ stretch_mode = 5
|
||||||
script = ExtResource("5_6w5b4")
|
script = ExtResource("5_6w5b4")
|
||||||
action = "player_backwards"
|
action = "player_backwards"
|
||||||
icon = 4
|
icon = 4
|
||||||
events = Array[InputEvent]([SubResource("InputEventKey_2rqk2"), SubResource("InputEventJoypadMotion_w8m28")])
|
events = Array[InputEvent]([SubResource("InputEventKey_kwpdx"), SubResource("InputEventJoypadMotion_2xua5")])
|
||||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Menu/Control"]
|
[node name="Label" type="Label" parent="Menu/Control"]
|
||||||
|
|
@ -760,11 +776,6 @@ offset_right = 40.0
|
||||||
offset_bottom = 35.0
|
offset_bottom = 35.0
|
||||||
script = SubResource("GDScript_kt5p7")
|
script = SubResource("GDScript_kt5p7")
|
||||||
|
|
||||||
[node name="VideoStreamPlayer" type="VideoStreamPlayer" parent="."]
|
|
||||||
offset_right = 40.0
|
|
||||||
offset_bottom = 40.0
|
|
||||||
stream = SubResource("VideoStreamTheora_kt5p7")
|
|
||||||
|
|
||||||
[connection signal="pressed" from="Menu/VBoxContainer2/PressStart" to="." method="_on_start_button_pressed"]
|
[connection signal="pressed" from="Menu/VBoxContainer2/PressStart" to="." method="_on_start_button_pressed"]
|
||||||
[connection signal="toggled" from="Menu/VBoxContainer/CNBox" to="." method="_on_cn_box_toggled"]
|
[connection signal="toggled" from="Menu/VBoxContainer/CNBox" to="." method="_on_cn_box_toggled"]
|
||||||
[connection signal="toggled" from="Menu/VBoxContainer/MotionBox" to="." method="_on_motion_box_toggled"]
|
[connection signal="toggled" from="Menu/VBoxContainer/MotionBox" to="." method="_on_motion_box_toggled"]
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,15 @@
|
||||||
[gd_scene load_steps=7 format=3 uid="uid://6aaxpvoepqrm"]
|
[gd_scene load_steps=20 format=3 uid="uid://6aaxpvoepqrm"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="1_wpq8h"]
|
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="1_wpq8h"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="2_bktn7"]
|
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="2_bktn7"]
|
||||||
[ext_resource type="FontFile" uid="uid://cb66e4mqysgf8" path="res://import/fonts/title_handwriting.tres" id="2_rmsdo"]
|
[ext_resource type="Script" uid="uid://dbap0gqox0ty1" path="res://addons/markdownlabel/markdownlabel.gd" id="2_pl7dp"]
|
||||||
|
[ext_resource type="Script" uid="uid://dcx7crs23nf4" path="res://addons/markdownlabel/header_formats/h1_format.gd" id="3_cyrrf"]
|
||||||
|
[ext_resource type="Script" uid="uid://d0sin64i4v3op" path="res://addons/markdownlabel/header_formats/h2_format.gd" id="4_n0bfa"]
|
||||||
|
[ext_resource type="Script" uid="uid://dlok0dv1tq2bf" path="res://addons/markdownlabel/header_formats/h3_format.gd" id="5_vf10x"]
|
||||||
|
[ext_resource type="Script" uid="uid://bayuh2vafablg" path="res://addons/markdownlabel/header_formats/h4_format.gd" id="6_63x3b"]
|
||||||
|
[ext_resource type="Script" uid="uid://dfr1w7u3jgni3" path="res://addons/markdownlabel/header_formats/h5_format.gd" id="7_sp2lx"]
|
||||||
|
[ext_resource type="Script" uid="uid://bsi6dexoofpe6" path="res://addons/markdownlabel/header_formats/h6_format.gd" id="8_bd0uj"]
|
||||||
|
[ext_resource type="Script" uid="uid://cxton1pffwxk4" path="res://button_themer.gd" id="9_pl7dp"]
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_nkjm2"]
|
[sub_resource type="GDScript" id="GDScript_nkjm2"]
|
||||||
script/source = "extends Panel
|
script/source = "extends Panel
|
||||||
|
|
@ -15,23 +22,44 @@ func _ready():
|
||||||
func _on_start_pressed():
|
func _on_start_pressed():
|
||||||
emit_signal(\"on_read\")
|
emit_signal(\"on_read\")
|
||||||
hide()
|
hide()
|
||||||
|
mouse_filter = MOUSE_FILTER_PASS
|
||||||
"
|
"
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_tb2ju"]
|
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cyrrf"]
|
||||||
script/source = "extends Button
|
content_margin_left = 5.0
|
||||||
|
content_margin_top = 20.0
|
||||||
|
content_margin_right = 5.0
|
||||||
|
content_margin_bottom = 5.0
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_kg2u8"]
|
||||||
|
content_margin_left = 20.0
|
||||||
|
content_margin_top = 5.0
|
||||||
|
content_margin_right = 50.0
|
||||||
|
content_margin_bottom = 5.0
|
||||||
|
|
||||||
func _pressed():
|
[sub_resource type="Resource" id="Resource_4n2vh"]
|
||||||
OS.shell_open(\"https://gitlab.com/betalars/frame-of-mind/-/wikis/home\")
|
resource_local_to_scene = true
|
||||||
"
|
script = ExtResource("3_cyrrf")
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_m3ofj"]
|
[sub_resource type="Resource" id="Resource_vhiu8"]
|
||||||
script/source = "extends Button
|
resource_local_to_scene = true
|
||||||
|
script = ExtResource("4_n0bfa")
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_sualy"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
script = ExtResource("5_vf10x")
|
||||||
|
|
||||||
func _pressed():
|
[sub_resource type="Resource" id="Resource_w3hq6"]
|
||||||
OS.shell_open(\"https://gitlab.com/betalars/frame-of-mind/-/blob/main/design/contributions.md\")
|
resource_local_to_scene = true
|
||||||
"
|
script = ExtResource("6_63x3b")
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_parnl"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
script = ExtResource("7_sp2lx")
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_5sp7x"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
script = ExtResource("8_bd0uj")
|
||||||
|
|
||||||
[node name="Disclaimer" type="Panel"]
|
[node name="Disclaimer" type="Panel"]
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
|
|
@ -64,7 +92,7 @@ stretch_mode = 4
|
||||||
|
|
||||||
[node name="Panel" type="PanelContainer" parent="childhood/PanelContainer/StartFrame"]
|
[node name="Panel" type="PanelContainer" parent="childhood/PanelContainer/StartFrame"]
|
||||||
show_behind_parent = true
|
show_behind_parent = true
|
||||||
layout_mode = 2
|
layout_mode = 0
|
||||||
offset_left = 199.0
|
offset_left = 199.0
|
||||||
offset_top = -112.0
|
offset_top = -112.0
|
||||||
offset_right = 1039.0
|
offset_right = 1039.0
|
||||||
|
|
@ -78,50 +106,52 @@ layout_mode = 2
|
||||||
[node name="Label" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
|
[node name="Label" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_type_variation = &"HeaderLarge"
|
theme_type_variation = &"HeaderLarge"
|
||||||
text = "Welcome to frame of mind development"
|
theme_override_styles/normal = SubResource("StyleBoxEmpty_cyrrf")
|
||||||
|
text = "Welcome to the Frame of Mind BETA"
|
||||||
|
|
||||||
[node name="Label2" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
|
[node name="Label2" type="RichTextLabel" parent="childhood/PanelContainer/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Thank you for being interested in our game. Here are some disclaimers.
|
size_flags_vertical = 3
|
||||||
|
theme_override_styles/normal = SubResource("StyleBoxEmpty_kg2u8")
|
||||||
|
theme_override_styles/focus = SubResource("StyleBoxEmpty_kg2u8")
|
||||||
|
bbcode_enabled = true
|
||||||
|
text = "Thanks for participating in the semi-public beta! Access is limited to the amount of feedback we can reasonably process. :)
|
||||||
|
|
||||||
Right now and acessibility settings and internationalisation do not fully work.
|
While we are close to release and won't be making any groundbreaking changes anymore, you can help push us over the final stretch.
|
||||||
They will be worked on in the upcoming months.
|
|
||||||
You will also not be able to help Lisa find a better frame of mind, as the second chapter is not yet implemented. Please know that many disruptive thoughts Lisa has in the first chapter were designed to be resolved later in the game.
|
|
||||||
The game also does not support save games yet.
|
|
||||||
|
|
||||||
Frame of Mind uses a Creative Commons Non Commercial Share Alike 4.0 license. You can use the game and it's assets freely, as long as you also contribute back to the creative Commons Community. Feel free to reach out if you need a commercial License.
|
[font_size=28]The most important bits[/font_size]
|
||||||
Twokinds is created by Thomas J. Fischbach, who granted us permission to use it in a Creative Commons Project."
|
[ol]Please fill out the form that opens after you close the game!
|
||||||
autowrap_mode = 3
|
Also when you stopped playing in the middle.
|
||||||
|
We are aware of Typos and Placeholder assets in the subway and second room.
|
||||||
|
Have fun playing![/ol]"
|
||||||
justification_flags = 131
|
justification_flags = 131
|
||||||
visible_characters_behavior = 1
|
visible_characters_behavior = 1
|
||||||
|
script = ExtResource("2_pl7dp")
|
||||||
|
markdown_text = "Thanks for participating in the semi-public beta! Access is limited to the amount of feedback we can reasonably process. :)
|
||||||
|
|
||||||
|
While we are close to release and won't be making any groundbreaking changes anymore, you can help push us over the final stretch.
|
||||||
|
|
||||||
|
### The most important bits
|
||||||
|
1. Please fill out the form that opens after you close the game!
|
||||||
|
2. Also when you stopped playing in the middle.
|
||||||
|
3. We are aware of Typos and Placeholder assets in the subway and second room.
|
||||||
|
4. Have fun playing!"
|
||||||
|
h1 = SubResource("Resource_4n2vh")
|
||||||
|
h2 = SubResource("Resource_vhiu8")
|
||||||
|
h3 = SubResource("Resource_sualy")
|
||||||
|
h4 = SubResource("Resource_w3hq6")
|
||||||
|
h5 = SubResource("Resource_parnl")
|
||||||
|
h6 = SubResource("Resource_5sp7x")
|
||||||
|
metadata/_custom_type_script = "uid://dbap0gqox0ty1"
|
||||||
|
|
||||||
[node name="Start" type="Button" parent="childhood/PanelContainer/VBoxContainer"]
|
[node name="Start" type="Button" parent="childhood/PanelContainer/VBoxContainer"]
|
||||||
|
clip_contents = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
theme_override_fonts/font = ExtResource("2_rmsdo")
|
theme_type_variation = &"H1Button"
|
||||||
theme_override_font_sizes/font_size = 50
|
text = "I understand, please start the beta"
|
||||||
text = "I understand, please start the alpha"
|
script = ExtResource("9_pl7dp")
|
||||||
|
metadata/_custom_type_script = "uid://cxton1pffwxk4"
|
||||||
[node name="Label3" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
text = "The following links will take you to gilab.com"
|
|
||||||
horizontal_alignment = 1
|
|
||||||
autowrap_mode = 3
|
|
||||||
visible_characters_behavior = 1
|
|
||||||
|
|
||||||
[node name="Button3" type="Button" parent="childhood/PanelContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 4
|
|
||||||
text = "Show me the Wiki"
|
|
||||||
script = SubResource("GDScript_tb2ju")
|
|
||||||
|
|
||||||
[node name="Button2" type="Button" parent="childhood/PanelContainer/VBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 4
|
|
||||||
text = "Show me Creative Commons Projects,
|
|
||||||
that are used by the game."
|
|
||||||
script = SubResource("GDScript_m3ofj")
|
|
||||||
|
|
||||||
[node name="StartBottom" type="TextureRect" parent="childhood/PanelContainer/VBoxContainer"]
|
[node name="StartBottom" type="TextureRect" parent="childhood/PanelContainer/VBoxContainer"]
|
||||||
custom_minimum_size = Vector2(0, 64)
|
custom_minimum_size = Vector2(0, 64)
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,25 +1,9 @@
|
||||||
keys,en,de,es,ja,notes
|
keys,en,de,es,ja,notes
|
||||||
"Accessibility, Disclaimers and Content Notes","Accessibility, Disclaimers and Content Notes",Barrierefreiheit und Erwartungsmanagement,,,
|
"Accessibility, Disclaimers and Content Notes","Accessibility, Disclaimers and Content Notes",Barrierefreiheit und Erwartungsmanagement,,,
|
||||||
Accessibility,Accessibility,Barrierefreiheit,,,
|
menu_okay,Okay,O.K.,,,
|
||||||
reduce motion and flickering,reduce Motion and Flickering,reduziere Animationen und Flackern,,,
|
menu_back,Go Back,Zurück,,,
|
||||||
use Screenreader,Use Screenreader,Screen-Reader aktivieren,,,
|
menu_save_all,Save all,Alles speichern,,,
|
||||||
disable video,Disable Video,Video deaktivieren,,,
|
menu_skip_all,Skip All,Alles Überspringen,,,
|
||||||
(save compute when playing blind,Save Compute When Playing Blind,Spart Rechenleistung beim blind spielen,,,
|
|
||||||
simplified Controls,simplified Controls,Vereinfachte Steuerung,,,
|
|
||||||
Show Navigation,Show Navigation,Navigation anzeigen,,,
|
|
||||||
Font-Style,Font-Style,Schriftart,,,
|
|
||||||
messy handwriting,Messy Handwriting,Unleserliche Handschrift,,,
|
|
||||||
easy handwriting,Easy Handwriting,Einfache Handschrift,,,
|
|
||||||
serif,Serif Font,Serifenschrift,,,
|
|
||||||
hyperlegible sans,Hyper Legible Font,Extrem lesbar Serifenfrei,,,
|
|
||||||
system font,System Font,System-Schriftart,,,
|
|
||||||
subtitles,Subtitles,Untertitel,,,
|
|
||||||
spoken text,Spoken Text,Gesprochener Text,,,
|
|
||||||
closed captions,Closed Captions,Untertitel für Hörgeschädigte,,,
|
|
||||||
UI Scale,UI Scale,UI Skalierung,,,
|
|
||||||
okay,Okay,O.K.,,,
|
|
||||||
go back,Go Back,Zurück,,,
|
|
||||||
skip all,Skip All,Alles Überspringen,,,
|
|
||||||
Audio and Language,Audio and Language,Sprache und Sound,,,
|
Audio and Language,Audio and Language,Sprache und Sound,,,
|
||||||
mute Soundtrack,Mute Soundtrack,Musik aus,,,
|
mute Soundtrack,Mute Soundtrack,Musik aus,,,
|
||||||
mute Sound-Effects,Mute Sound-Effects,Effekte aus,,,
|
mute Sound-Effects,Mute Sound-Effects,Effekte aus,,,
|
||||||
|
|
@ -37,64 +21,65 @@ Find Subtitle Settings in Acessability Settings.,Find Subtitle Settings in Acess
|
||||||
use OS Language,use OS Language,Betriebssystemsprache nutzen,,,
|
use OS Language,use OS Language,Betriebssystemsprache nutzen,,,
|
||||||
English,English,Englisch,,,
|
English,English,Englisch,,,
|
||||||
German,German,Deutsch,,,
|
German,German,Deutsch,,,
|
||||||
This Game deals with Heavy Topics.,This Game deals with Heavy Topics.,In diesem Spiel geht es um schwere Themen.,,,
|
title_content_notes,Content Notes,Sensible Inhalte,,,
|
||||||
I would like to know more.,I would like to know more.,Ich würde gern mehr wissen.,,,
|
menu_cn_enable,Show the topics in advance.,Vorwarnungen zu Themen geben,,,
|
||||||
Is this game for or about me?,Is this game for or about me?,Ist dieses Spiel für oder über mich?,,,
|
menu_cn_enable_tooltip,Content Notes are shown before you pick up a menento. They are an alternative to “Trigger Warnings”,"Content Notes werden angezeigt, bevor du eine Erinnerung einsammelst. Dies ist eine Alternative zu “Triggerwarnungen”.",,,
|
||||||
"[ul]
|
menu_cn_allow_skips,Allow me to decline hearing a story.,Ich möchte Geschichten auslassen können.,,,
|
||||||
This game tells one story about one fictional character.
|
menu_cn_allow_skips_tooltip,You can choose to not hear a memory and not play with the thoughts connected to it. All memories have neutral summaries you can choose to read.,Du kannst dich entscheiden Erinnerungen nicht zu hören und ohne die damit verbundenen Gedanken zu spielen. Alle Erinnerungen haben neutral formulierte Zusammenfassungen.,,,
|
||||||
This character was designed to tell an honest and accessible story about identity and trauma.
|
menu_cn_allow_returns,Allow me to discard thoughts.,Ich möchte Gedanken wegwerfen können.,,,
|
||||||
This is not the game for you if you are looking for escapism.
|
menu_cn_allow_returns_tooltip,You can choose to erase thoughts by returning them to their memento. ,"Du kannst Gedanken los werden, in dem du sie zu ihrem Memento zurückbringst.",,,
|
||||||
This is not therapy.
|
menu_cn_disclaimer,This game deals with heavy topics.,In diesem Spiel geht es um schwere Themen.,,,
|
||||||
You might feel understood if experiences you've had are close to the characters.
|
menu_cn_summary,These options provide accessiblity and allow you to play as you like. Hover on each option to learn more.,"Diese Optionen machen das Spiel zugänglicher, weil du entscheiden kannst, wie du spielen möchtest. Hover to learn more.",,,
|
||||||
It might help you understand a friend.
|
menu_cn_learn_more,I would like to know more.,Ich würde gern mehr wissen.,,,
|
||||||
It will tell you things a group of peers, that reflected about their similar, but specific experiences, want more people to know about.
|
menu_cn_warm_title,I would like some reassuring words.,Ich brauche ermutigende Worte.,,,
|
||||||
This is made by betalars, who has many overlapping experiences with this character. They made sure to consult people, who can speak from their own experiences about subjects, where betalars could not.
|
menu_cn_warm,"This is a game about acceptance and understanding. Some play this game to understand themselves, some play it to understand a friend, some play it to understand this character I wrote and very few play it to understand me. Whatever feels right is up to you.
|
||||||
[/ul]","[ul]
|
|
||||||
This game tells one story about one fictional character.
|
Please understand also that I know this game might hurt and that I have faith you can grow from it.
|
||||||
This character was designed to tell an honest and accessible story about identity and trauma.
|
And yes, I am being intentually misleading because life is messy and you have the wits to see trough it yourself.","In diesem Spiel geht es um Akzeptanz und Empathie. Manche spielen es um sich selbst zu verstehen, manche spielen es um ein\*e Freund\*in zu verstehen, manche versuchen diesen Charakter zu verstehen, den ich geschrieben habe und sehr wenige versuchen sogar mich zu verstehen. Du musst selbst entscheiden, was davon richtig ist.
|
||||||
This is not the game for you if you are looking for escapism.
|
|
||||||
This is not therapy.
|
Was du allerdings über mich verstehen solltest ist ich weiß, dass dieses Spiel dir weh tun kann und, dass ich Vertrauen habe, dass du daraus Wachsen kannst.
|
||||||
You might feel understood if experiences you've had are close to the characters.
|
|
||||||
It might help you understand a friend.
|
Und ja, ich bin teilweise absichtlich verwirrend. Leben ist verwirrend und du hast das Zeug, dass du es selbst entwirrst.",,,leave the [ul] and [/ul] please avoid using gendered words for betalars if possible (they are non-binary)
|
||||||
It will tell you things a group of peers, that reflected about their similar, but specific experiences, want more people to know about.
|
menu_cn_harsh_title,Be frank with me.,Sei einfach dierekt.,,,
|
||||||
This is made by betalars, who has many overlapping experiences with this character. They made sure to consult people, who can speak from their own experiences about subjects, where betalars could not.
|
menu_cn_harsh,"This game has Content Notes for a reason. Its main character has gone trough some shit and has internalized a lot of it. Life did not give them a good hand and they now have to deal with it. That is the point.
|
||||||
[/ul]","[ul]
|
|
||||||
In diesem Spiel wird eine Geschichte eines fiktionalen Charakters erzählt.
|
This is no escapism and shouldn’t be a substitute for therapy.
|
||||||
Der Charakter wurde geschrieben, um eine zugängliche und ehrliche Geschichte über Trauma zu erzählen.
|
It is meant to be a challge in empathy and radical acceptance. And if you are mad at me for the thoughts I gave my character, I’m afraid you failed that challenge.
|
||||||
Dieses Spiel bietet keinen Eskapismus.
|
|
||||||
Dieses Spiel ist keine Therapie.
|
And I’ve seen how hard this game can hit at times and I am fine with that because believe me life hits harder.","Das Spiel wirkt zahm, aber es hat nicht ohne Grund content Notes. Dieser Charakter hat ziemliche Scheiße erlebt und hat die Scheiße auch gut internalisiert. Das Leben gibt vielen Leuten einfach eine miese Hand, und sie müssen damit klar kommen. Darum geht es.
|
||||||
Vielleicht fühlst du dich verstanden, wenn deine Erfahrungen dem Charakter ähneln.
|
|
||||||
Vielleicht hilft es dir, jemand befreundetes zu verstehen.
|
Das Spiel bietet kein Eskarpismus und es sollte auch nicht als Therapie dienen.
|
||||||
Dieses Spiel wurde von einer Gruppe an Leuten geschaffen, die sehr spezifische Erfahrungen, die sie gemeinsam gemacht haben, teilen wollten.
|
Was es bestenfalls ist: eine Übung in Empathie und radikaler Akzeptanz. Und falls du wütend auf mich bist für die Gedanken, die ich meiner Figur gegeben habe, bist du an dieser Übung leider gescheitert.
|
||||||
Dieses Spiel ist von betalars. An vielen Stellen wurde hier aus eigener Erfahrung geschrieben und da, wo keine eigenen Erfahrungen da waren, wurden Betroffene einbezogen.
|
|
||||||
[/ul]",,,leave the [ul] and [/ul] please avoid using gendered words for betalars if possible (they are non-binary)
|
Und ich habe gesehen, dass dieses Spiel manche ziemlich doll mitnimmt. Aber das Leben haut noch ganz anders rein.",,,
|
||||||
What may be difficult about the premise?,What may be difficult about the premise?,Warum könnte die Prämisse schwierig sein?,,,
|
menu_cn_somber_title,"What is this about?, in neutral words. (Content Notes)",Worum geht es im Spiel (Content Notes),,,
|
||||||
"In this game, you will encounter situations that are problematic and will have a negative impact on the Mental Health of the character you are playing as. This game will establish hurtful assumptions this character develops about themselves and you may not resolve all of them right away. You will have some agency, but it is limited by the games narrative and also chance. You are encouraged and will be able to resolve hurtful assumptions later in the game.","In this game, you will encounter situations that are problematic and will have a negative impact on the Mental Health of the character you are playing as. This game will establish hurtful assumptions this character develops about themselves and you may not resolve all of them right away. You will have some agency, but it is limited by the games narrative and also chance. You are encouraged and will be able to resolve hurtful assumptions later in the game.","Dieses Spiel wird Erfahrungen thematisieren, die sich negativ auf den gespielten Charakter auswirken. Das Spiel wird schädliche Annahmen etablieren, die der Charakter über sich hat und nicht immer sofort auflösen. Du kannst darauf Einfluss nehmen, aber deine Möglichkeiten sind durch Spielmechanik und Narrative beschränkt. Du sollst und kannst vieles später aufarbeiten.",,,
|
menu_cn_somber,"This game tells an honest and acessible story about neurodivergence and trauma. It shares lived experiences of many neurodivergent people, including this games main developer.
|
||||||
What are the game's topics? (Content Notes),What are the game's topics? (Content Notes),Worum geht es im Spiel (Content Warnungen),,,
|
|
||||||
"This game discusses Mental Health and Sex-Positivity. It also includes a character, who is trans but you will get to know them while they are unaware about their trans identity going by their birthname. Besides social Transistioning, this game also deals with topics including Mysoginy, Sanism, Body Issues, Eating Disorders, Bullying, Martial Arts, Relationships and Rape, but not trough physical violence. Comic violence is mentioned while talking about a fictional franchise in universe.","This game discusses Mental Health and Sex-Positivity. It also includes a character, who is trans but you will get to know them while they are unaware about their trans identity going by their birthname. Besides social Transistioning, this game also deals with topics including Mysoginy, Sanism, Body Issues, Eating Disorders, Bullying, Martial Arts, Relationships and Rape, but not trough physical violence. Comic violence is mentioned while talking about a fictional franchise in universe.","In diesem Spiel geht es um mentale Gesundheit und Sex-Positivität. Es enthält einen trans Charakter, der sich darüber nicht im klaren ist und daher auch zunächst noch keinen eigenen Namen hat. Neben Sozialer Transition thematisiert das Spiel Mysoginie, Diskriminierung wegen mentalen Behinderungen, Probleme mit dem Körperbild, Essstörungen, Mobbing, Kampfkunst, Beziehungen und Vergewaltigungen, jedoch nicht durch körperliche Gewalt. Comic Gewalt wird erwähnt in einer im Spiel fiktionalen Geschichte.",,,"The Rape being discussed in this game is non-consensual sex, but also non-voilent."
|
This game has a lot of toxic thoughts you have to deal with and depending on your choices and also luck, you won’t be able to resolve everything. It takes acceptance to complete the game the intended way.
|
||||||
|
|
||||||
|
This game discusses bullying, alienation, (internalized) mysoginy, sanisn, body issues (disphoria), birth-names, eating issues, burnout and trauma. The main character will share a memory of non-consensual sex that they blame themselves for. If you want to resolve that blame, don’t jump on the first train when moving on.","Dieses Spiel erzählt eine ehrliche und zugängliche Geschichte über Trauma und Aufwachsen als neurodivergente Personen. Es teilt echte Lebensgeschichten, auch die des Developers.
|
||||||
|
|
||||||
|
Dieses Spiel hat toxische Gedanken, mit denen du umgehen musst und abhängig von deinen Entscheidungen und von Glück wirst du nicht alles auflösen können. Akzeptanz gehört zu den Fähigkeiten, die das Spiel herausfordern möchte.
|
||||||
|
|
||||||
|
In der Geschichte geht es um Mobbing, (internalisierte) Mysogonie, Isolation, Diskriminierung wegen Psyche, Essstörungen, Burnout und Trauma. Das Spiel erzählt auch eine Erinnerung an nicht einvernehmlichen Sex, an dem sich Schuld gegeben wird. Wenn du diese Schuldgefühle auflösen möchtest, nimm nicht die erste Bahn, wenn du fortfährst.",,,"The Rape being discussed in this game is non-consensual sex, but also non-voilent."
|
||||||
Mental Health Accessibility Options,Mental Health Accessibility Options,Barrierefreiheit für psychische Störungen,,,
|
Mental Health Accessibility Options,Mental Health Accessibility Options,Barrierefreiheit für psychische Störungen,,,
|
||||||
"[ul]
|
,,,,,
|
||||||
You can always Pause using Escape or Spacebar
|
|
||||||
You can always choose to just get a neutral summary of scenes or skip them entirely
|
|
||||||
[/ul]","[ul]
|
|
||||||
You can always pause using escape or spacebar.
|
|
||||||
You can always choose to just get a neutral summary of scenes or skip them entirely.
|
|
||||||
[/ul]","[ul]
|
|
||||||
Du kannst immer mit Pause oder Escape pausieren.
|
|
||||||
Du kannst dir wünschen, dass du bei schwierige Szenen überspringen kannst und eine neutrale Zusammenfassung davon bekommst.",,,
|
|
||||||
show content notes during the game,show content notes during the game,Inhaltswarnungen im Spiel anzeigen,,,
|
show content notes during the game,show content notes during the game,Inhaltswarnungen im Spiel anzeigen,,,
|
||||||
allow me to skip scenes,allow me to skip scenes,Überspringen von Szenen ermöglichen,,,
|
allow me to skip scenes,allow me to skip scenes,Überspringen von Szenen ermöglichen,,,
|
||||||
"[center][i]I assure you I did my best,
|
"[center][i]I assure you I did my best,
|
||||||
But I am only human and this is just one game.[/i][/center]","[center][i]I assure you I did my best,
|
But I am only human and this is just one game.[/i][/center]","[center][i]I assure you I did my best,
|
||||||
But I am only human and this is just one game.[/i][/center]","[center][i]Ich verspreche ich habe mein Bestes getan,
|
But I am only human and this is just one game.[/i][/center]","[center][i]Ich verspreche ich habe mein Bestes getan,
|
||||||
Aber ich bin nur ein Mensch und kein Spiel wird je
|
Aber ich bin nur ein Mensch und das ist nur ein Spiel.[/i][/center]",,,"This is intentionally phrased as “only one game” instead of “only a game”, hinting at it being meaningful, but limited in what it can convey on its own."
|
||||||
ein Leben vollumfänglich zeigen können.[/i][/center]",,,"This is intentionally phrased as “only one game” instead of “only a game”, hinting at it being meaningful, but limited in what it can convey on its own."
|
menu_new_game,new Game,neues Spiel,,,
|
||||||
new Game,new Game,neues Spiel,,,
|
menu_continue,continue,weiter spielen,,,
|
||||||
continue,continue,weiter spielen,,,
|
menu_load,load Save,Spiel laden,,,
|
||||||
load,load,Spiel laden,,,
|
menu_open_settings,settings,Einstellungen,,,
|
||||||
settings,settings,Einstellungen,,,
|
menu_title_accessibility,Accessability Settings,Optionen für Barrierefreiheit,,,
|
||||||
Video,Video,Grafik,,,In the context of a settings menu selection
|
menu_title_audio,Audio Configuration,Audioeinstellungen,,,
|
||||||
Gameplay,Gameplay,Spieloptionen,,,In the context of a settings menu selection
|
menu_title_video,Video Settings,Grafik,,,In the context of a settings menu selection
|
||||||
|
menu_title_gameplay,Gameplay Settings,Spieloptionen,,,In the context of a settings menu selection
|
||||||
|
menu_save_continue,Save and continue,Speichern und weiter,,,
|
||||||
|
menu_save,Save,Speichern,,,
|
||||||
Content Notes,Content Notes,Sensible Inhalte,,,In the context of a settings menu selection
|
Content Notes,Content Notes,Sensible Inhalte,,,In the context of a settings menu selection
|
||||||
Video Settings,Video Settings,Grafikeinstellungen,,,In the context of a settings menu selection
|
Video Settings,Video Settings,Grafikeinstellungen,,,In the context of a settings menu selection
|
||||||
General,General,Allgemeines,,,In the context of a video settings menu
|
General,General,Allgemeines,,,In the context of a video settings menu
|
||||||
|
|
@ -598,7 +583,25 @@ MementoLabel_Therapy,,,,,
|
||||||
MementoLabel_TherapyCN,,,,,
|
MementoLabel_TherapyCN,,,,,
|
||||||
MementoLabel_Burnout,,,,,
|
MementoLabel_Burnout,,,,,
|
||||||
MementoLabel_BurnoutCN,,,,,
|
MementoLabel_BurnoutCN,,,,,
|
||||||
Menu_A11y_disclaimer,Greyed-out items do not work yet.,Ausgegraute Optionen funktionieren noch nicht.,,,
|
menu_a11y_title,Accessibility,Barrierefreiheit,,,
|
||||||
Menu_A11y_fonts,Font-Style,Schriftart,,,
|
menu_a11y_disclaimer,Greyed-out items do not work yet.,Ausgegraute Optionen funktionieren noch nicht.,,,
|
||||||
Menu_A11y_ subtitles,Subtitles,Untertitel,,,
|
menu_a11y_fonts,Font-Style,Schriftart,,,
|
||||||
Menu_A11y_scale,UI Scale,UI-Skalierung,,,
|
menu_a11y_subtitles,Subtitles,Untertitel,,,
|
||||||
|
menu_a11y_scale,UI Scale,UI-Skalierung,,,
|
||||||
|
menu_a11y_motion,reduce Motion and Flickering,reduziere Animationen und Flackern,,,
|
||||||
|
menu_a11y_screenreader,Use Screenreader (very borked as of now),Screen-Reader aktivieren (derzeit noch ziemlich kaputt),,,
|
||||||
|
menu_a11y_disable_video,Disable Video,Video deaktivieren,,,
|
||||||
|
menu_a11y_disable_video_tooltip,In case you are not using your graphics cards anyway.,Falls du deine Grafikkarte eh nicht nutzt.,,,
|
||||||
|
menu_a11y_hyperacoustics_filter,Reduce audio noise,Geräusche dämpfen,,,
|
||||||
|
Show Navigation,Show Navigation,Navigation anzeigen,,,
|
||||||
|
Font-Style,Font-Style,Schriftart,,,
|
||||||
|
messy handwriting,Messy Handwriting,Unleserliche Handschrift,,,
|
||||||
|
easy handwriting,Easy Handwriting,Einfache Handschrift,,,
|
||||||
|
serif,Serif Font,Serifenschrift,,,
|
||||||
|
hyperlegible sans,Hyper Legible Font,Extrem lesbar Serifenfrei,,,
|
||||||
|
system font,System Font,System-Schriftart,,,
|
||||||
|
subtitles,Subtitles,Untertitel,,,
|
||||||
|
spoken text,Spoken Text,Gesprochener Text,,,
|
||||||
|
closed captions,Closed Captions,Untertitel für Hörgeschädigte,,,
|
||||||
|
UI Scale,UI Scale,UI Skalierung,,,
|
||||||
|
menu_a11y_statement,Open Information on Accessibility,Informationen zu Barrierefreiheit öffnen,,,
|
||||||
|
|
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,14 @@
|
||||||
|
shader_type spatial;
|
||||||
|
render_mode depth_test_disabled;
|
||||||
|
|
||||||
|
uniform sampler2D default_texture: hint_default_white;
|
||||||
|
|
||||||
|
void vertex() {
|
||||||
|
// Called for every vertex the material is visible on.
|
||||||
|
}
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
ALBEDO = texture(default_texture, UV).xyz;
|
||||||
|
ALPHA = texture(default_texture, UV).w;
|
||||||
|
EMISSION = COLOR.xyz * pow(ALBEDO, vec3(2.2));
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
uid://ci37nlh06b5y2
|
||||||
|
|
@ -37,24 +37,37 @@ var is_active:bool = false:
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
if is_in_beginning:
|
if is_in_beginning:
|
||||||
%SaveButton.text = "save and continue"
|
%SaveButton.text = "menu_save_continue"
|
||||||
back_button.show()
|
back_button.text = ""
|
||||||
else:
|
else:
|
||||||
%SaveButton.text = "save and exit"
|
%SaveButton.text = "menu_save"
|
||||||
back_button.hide()
|
back_button.hide()
|
||||||
|
|
||||||
update_ui_from_state()
|
update_ui_from_state()
|
||||||
|
|
||||||
reduce_motion_check.pressed.connect(func(value): State.reduce_motion = value)
|
reduce_motion_check.pressed.connect(func(value): State.reduce_motion = value)
|
||||||
|
reduce_motion_check.pressed.connect(changed.emit)
|
||||||
screenreader_check.pressed.connect(func(value): State.screen_reader_enabled = value)
|
screenreader_check.pressed.connect(func(value): State.screen_reader_enabled = value)
|
||||||
|
screenreader_check.pressed.connect(changed.emit)
|
||||||
disable_rendering_check.pressed.connect(func(value): State.rendering_disabled = value)
|
disable_rendering_check.pressed.connect(func(value): State.rendering_disabled = value)
|
||||||
|
disable_rendering_check.pressed.connect(changed.emit)
|
||||||
simplify_controls_check.pressed.connect(func(value): State.use_simplified_navigation = value)
|
simplify_controls_check.pressed.connect(func(value): State.use_simplified_navigation = value)
|
||||||
|
simplify_controls_check.pressed.connect(changed.emit)
|
||||||
hyperacoustics_check.pressed.connect(func(value): State.enable_hyperacoustic_filter = value)
|
hyperacoustics_check.pressed.connect(func(value): State.enable_hyperacoustic_filter = value)
|
||||||
|
hyperacoustics_check.pressed.connect(changed.emit)
|
||||||
font_picker.item_selected.connect(func(value): State.font_style = value)
|
font_picker.item_selected.connect(func(value): State.font_style = value)
|
||||||
|
font_picker.item_selected.connect(changed.emit)
|
||||||
subtitle_picker.item_selected.connect(func(value): State.subtitles = value)
|
subtitle_picker.item_selected.connect(func(value): State.subtitles = value)
|
||||||
|
subtitle_picker.item_selected.connect(changed.emit)
|
||||||
scale_slider.drag_ended.connect(_on_scale_slider_dragged)
|
scale_slider.drag_ended.connect(_on_scale_slider_dragged)
|
||||||
|
scale_slider.drag_ended.connect(changed.emit)
|
||||||
save_button.pressed.connect(_on_save_button_pressed)
|
save_button.pressed.connect(_on_save_button_pressed)
|
||||||
|
save_button.pressed.connect(changed.emit)
|
||||||
|
changed.connect(_on_changed)
|
||||||
|
|
||||||
|
var has_unsaved_changes
|
||||||
|
func _on_changed():
|
||||||
|
has_unsaved_changes = true
|
||||||
|
|
||||||
func _on_scale_slider_dragged(update:bool):
|
func _on_scale_slider_dragged(update:bool):
|
||||||
if update:
|
if update:
|
||||||
|
|
@ -73,6 +86,7 @@ func update_ui_from_state():
|
||||||
func _on_save_button_pressed() -> void:
|
func _on_save_button_pressed() -> void:
|
||||||
is_active = false
|
is_active = false
|
||||||
State.save_settings()
|
State.save_settings()
|
||||||
|
has_unsaved_changes = false
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if event.is_action_pressed("ui_cancel") and is_active:
|
if event.is_action_pressed("ui_cancel") and is_active:
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,20 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://b3wlecqvelh22"]
|
[gd_scene load_steps=5 format=3 uid="uid://b3wlecqvelh22"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cbax2lv4pstqk" path="res://logic-scenes/main menu/acessability_settings.gd" id="1_x3lym"]
|
[ext_resource type="Script" uid="uid://cbax2lv4pstqk" path="res://logic-scenes/main menu/acessability_settings.gd" id="1_x3lym"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="2_24dtk"]
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_v567h"]
|
[sub_resource type="GDScript" id="GDScript_v567h"]
|
||||||
script/source = "extends CheckBox
|
script/source = "extends CheckBox
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
grab_focus()
|
grab_focus()
|
||||||
|
"
|
||||||
|
|
||||||
|
[sub_resource type="GDScript" id="GDScript_72hl5"]
|
||||||
|
script/source = "extends Button
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
pressed.connect(func(): OS.shell_open(\"https://store.steampowered.com/news/app/2515480/view/534358622649452263\"))
|
||||||
"
|
"
|
||||||
|
|
||||||
[node name="Accessibility" type="VBoxContainer"]
|
[node name="Accessibility" type="VBoxContainer"]
|
||||||
|
|
@ -16,11 +24,11 @@ metadata/_tab_index = 0
|
||||||
[node name="Label" type="Label" parent="."]
|
[node name="Label" type="Label" parent="."]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_type_variation = &"HeaderLarge"
|
theme_type_variation = &"HeaderLarge"
|
||||||
text = "Accessibility"
|
text = "menu_a11y_title"
|
||||||
|
|
||||||
[node name="Label4" type="Label" parent="."]
|
[node name="Label4" type="Label" parent="."]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Menu_A11y_disclaimer"
|
text = "menu_a11y_disclaimer"
|
||||||
|
|
||||||
[node name="Container2" type="VBoxContainer" parent="."]
|
[node name="Container2" type="VBoxContainer" parent="."]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
@ -28,37 +36,34 @@ layout_mode = 2
|
||||||
[node name="ReduceMotion" type="CheckBox" parent="Container2"]
|
[node name="ReduceMotion" type="CheckBox" parent="Container2"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "reduce motion and flickering"
|
size_flags_horizontal = 0
|
||||||
|
text = "menu_a11y_motion"
|
||||||
|
|
||||||
[node name="Screenreader" type="CheckBox" parent="Container2"]
|
[node name="Screenreader" type="CheckBox" parent="Container2"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
disabled = true
|
size_flags_horizontal = 0
|
||||||
text = "use Screenreader"
|
text = "use Screenreader"
|
||||||
script = SubResource("GDScript_v567h")
|
script = SubResource("GDScript_v567h")
|
||||||
|
|
||||||
[node name="margin2" type="MarginContainer" parent="Container2"]
|
[node name="margin2" type="MarginContainer" parent="Container2"]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="DisableRendering" type="CheckBox" parent="Container2/margin2"]
|
[node name="DisableRendering" type="CheckBox" parent="Container2/margin2"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
modulate = Color(1, 1, 1, 0)
|
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 0
|
||||||
disabled = true
|
disabled = true
|
||||||
text = "disable video"
|
text = "disable video"
|
||||||
|
|
||||||
[node name="SimplyifyControls" type="CheckBox" parent="Container2"]
|
[node name="SimplyifyControls" type="CheckBox" parent="Container2"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 0
|
||||||
disabled = true
|
disabled = true
|
||||||
text = "simplified Controls"
|
text = "simplified Controls"
|
||||||
|
|
||||||
[node name="HyperacusticsFilter" type="CheckBox" parent="Container2"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
layout_mode = 2
|
|
||||||
tooltip_text = "Applies an audio filter that removes high pitched noises."
|
|
||||||
text = "Hyperacoustics Filter"
|
|
||||||
|
|
||||||
[node name="margin" type="MarginContainer" parent="Container2"]
|
[node name="margin" type="MarginContainer" parent="Container2"]
|
||||||
visible = false
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
@ -69,13 +74,20 @@ layout_mode = 2
|
||||||
disabled = true
|
disabled = true
|
||||||
text = "show Navigation Buttons"
|
text = "show Navigation Buttons"
|
||||||
|
|
||||||
|
[node name="HyperacusticsFilter" type="CheckBox" parent="Container2"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 0
|
||||||
|
tooltip_text = "Applies an audio filter that removes high pitched noises."
|
||||||
|
text = "menu_a11y_hyperacoustics_filter"
|
||||||
|
|
||||||
[node name="GridContainer" type="GridContainer" parent="Container2"]
|
[node name="GridContainer" type="GridContainer" parent="Container2"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
columns = 3
|
columns = 3
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Container2/GridContainer"]
|
[node name="Label" type="Label" parent="Container2/GridContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Menu_A11y_fonts"
|
text = "menu_a11y_fonts"
|
||||||
|
|
||||||
[node name="VSeparator" type="VSeparator" parent="Container2/GridContainer"]
|
[node name="VSeparator" type="VSeparator" parent="Container2/GridContainer"]
|
||||||
custom_minimum_size = Vector2(30, 0)
|
custom_minimum_size = Vector2(30, 0)
|
||||||
|
|
@ -99,7 +111,7 @@ popup/item_3/id = 4
|
||||||
|
|
||||||
[node name="Label2" type="Label" parent="Container2/GridContainer"]
|
[node name="Label2" type="Label" parent="Container2/GridContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Menu_A11y_ subtitles"
|
text = "menu_a11y_subtitles"
|
||||||
|
|
||||||
[node name="VSeparator2" type="VSeparator" parent="Container2/GridContainer"]
|
[node name="VSeparator2" type="VSeparator" parent="Container2/GridContainer"]
|
||||||
custom_minimum_size = Vector2(30, 0)
|
custom_minimum_size = Vector2(30, 0)
|
||||||
|
|
@ -120,8 +132,9 @@ popup/item_2/text = "closed captions"
|
||||||
popup/item_2/id = 2
|
popup/item_2/id = 2
|
||||||
|
|
||||||
[node name="Label3" type="Label" parent="Container2/GridContainer"]
|
[node name="Label3" type="Label" parent="Container2/GridContainer"]
|
||||||
|
modulate = Color(0.65012825, 0.6501283, 0.65012825, 1)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Menu_A11y_scale"
|
text = "menu_a11y_scale"
|
||||||
|
|
||||||
[node name="VSeparator3" type="VSeparator" parent="Container2/GridContainer"]
|
[node name="VSeparator3" type="VSeparator" parent="Container2/GridContainer"]
|
||||||
custom_minimum_size = Vector2(30, 0)
|
custom_minimum_size = Vector2(30, 0)
|
||||||
|
|
@ -132,10 +145,15 @@ unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
min_value = 0.5
|
min_value = 0.5
|
||||||
max_value = 3.0
|
max_value = 1.5
|
||||||
step = 0.0
|
step = 0.0
|
||||||
value = 1.0
|
value = 1.0
|
||||||
editable = false
|
|
||||||
|
[node name="Button" type="Button" parent="Container2"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
text = "menu_a11y_statement"
|
||||||
|
script = SubResource("GDScript_72hl5")
|
||||||
|
|
||||||
[node name="navbuttons" type="HSplitContainer" parent="."]
|
[node name="navbuttons" type="HSplitContainer" parent="."]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
@ -153,3 +171,12 @@ text = "go back"
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "save and continue"
|
text = "save and continue"
|
||||||
|
|
||||||
|
[node name="card" parent="." instance=ExtResource("2_24dtk")]
|
||||||
|
process_mode = 4
|
||||||
|
position = Vector2(837, 159)
|
||||||
|
rotation = 0.105957024
|
||||||
|
collision_layer = 0
|
||||||
|
collision_mask = 0
|
||||||
|
input_pickable = false
|
||||||
|
text = "I never put in much effort for Homework"
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ extends VBoxContainer
|
||||||
signal changed
|
signal changed
|
||||||
signal leave_stage
|
signal leave_stage
|
||||||
|
|
||||||
|
var has_unsaved_changes:= false
|
||||||
|
|
||||||
var has_stage:bool = false:
|
var has_stage:bool = false:
|
||||||
set(stage):
|
set(stage):
|
||||||
has_stage = stage
|
has_stage = stage
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
extends VBoxContainer
|
extends VBoxContainer
|
||||||
|
|
||||||
signal changed
|
signal changed
|
||||||
|
var has_unsaved_changes: bool = false
|
||||||
signal leave_stage
|
signal leave_stage
|
||||||
|
|
||||||
var has_stage:bool = false:
|
var has_stage:bool = false:
|
||||||
|
|
@ -25,7 +26,11 @@ func _ready() -> void:
|
||||||
update_ui_from_state()
|
update_ui_from_state()
|
||||||
|
|
||||||
content_note_box.pressed.connect(func(value): State.show_content_notes = value)
|
content_note_box.pressed.connect(func(value): State.show_content_notes = value)
|
||||||
|
content_note_box.pressed.connect(changed.emit)
|
||||||
allow_skip_button.pressed.connect(func(value): State.allow_skipping = value)
|
allow_skip_button.pressed.connect(func(value): State.allow_skipping = value)
|
||||||
|
allow_skip_button.pressed.connect(changed.emit)
|
||||||
|
|
||||||
|
changed.connect(func(): has_unsaved_changes = true)
|
||||||
|
|
||||||
%SaveButton.pressed.connect(_on_exit_button_pressed)
|
%SaveButton.pressed.connect(_on_exit_button_pressed)
|
||||||
%ExpandButton.pressed.connect(
|
%ExpandButton.pressed.connect(
|
||||||
|
|
@ -41,6 +46,7 @@ func update_ui_from_state():
|
||||||
func _on_exit_button_pressed() -> void:
|
func _on_exit_button_pressed() -> void:
|
||||||
leave_stage.emit()
|
leave_stage.emit()
|
||||||
State.save_settings()
|
State.save_settings()
|
||||||
|
has_unsaved_changes = false
|
||||||
State.leave_stage(self)
|
State.leave_stage(self)
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,37 @@
|
||||||
[gd_scene load_steps=9 format=3 uid="uid://chal0ioagspx0"]
|
[gd_scene load_steps=22 format=3 uid="uid://chal0ioagspx0"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://wybb38po3pbo" path="res://logic-scenes/main menu/content_settings.gd" id="1_wnuvg"]
|
[ext_resource type="Script" uid="uid://wybb38po3pbo" path="res://logic-scenes/main menu/content_settings.gd" id="1_wnuvg"]
|
||||||
|
[ext_resource type="Script" uid="uid://dbap0gqox0ty1" path="res://addons/markdownlabel/markdownlabel.gd" id="2_b7ja7"]
|
||||||
|
[ext_resource type="Script" uid="uid://dcx7crs23nf4" path="res://addons/markdownlabel/header_formats/h1_format.gd" id="3_00t14"]
|
||||||
|
[ext_resource type="Script" uid="uid://d0sin64i4v3op" path="res://addons/markdownlabel/header_formats/h2_format.gd" id="4_336xo"]
|
||||||
|
[ext_resource type="Script" uid="uid://dlok0dv1tq2bf" path="res://addons/markdownlabel/header_formats/h3_format.gd" id="5_ltaew"]
|
||||||
|
[ext_resource type="Script" uid="uid://bayuh2vafablg" path="res://addons/markdownlabel/header_formats/h4_format.gd" id="6_j26fy"]
|
||||||
|
[ext_resource type="Script" uid="uid://dfr1w7u3jgni3" path="res://addons/markdownlabel/header_formats/h5_format.gd" id="7_1chpl"]
|
||||||
|
[ext_resource type="Script" uid="uid://bsi6dexoofpe6" path="res://addons/markdownlabel/header_formats/h6_format.gd" id="8_vydfk"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_832w5"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
script = ExtResource("3_00t14")
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_ar11w"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
script = ExtResource("4_336xo")
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_r5hak"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
script = ExtResource("5_ltaew")
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_tpe3b"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
script = ExtResource("6_j26fy")
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_y1yi1"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
script = ExtResource("7_1chpl")
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_5g2ol"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
script = ExtResource("8_vydfk")
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_odolw"]
|
[sub_resource type="Animation" id="Animation_odolw"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
|
|
@ -41,7 +72,7 @@ tracks/0/keys = {
|
||||||
"times": PackedFloat32Array(0, 1),
|
"times": PackedFloat32Array(0, 1),
|
||||||
"transitions": PackedFloat32Array(0.392292, 2.63902),
|
"transitions": PackedFloat32Array(0.392292, 2.63902),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Vector2(0, 0), Vector2(0, 400)]
|
"values": [Vector2(0, 0), Vector2(0, 512)]
|
||||||
}
|
}
|
||||||
tracks/1/type = "value"
|
tracks/1/type = "value"
|
||||||
tracks/1/imported = false
|
tracks/1/imported = false
|
||||||
|
|
@ -85,32 +116,70 @@ pressed = true
|
||||||
events = [SubResource("InputEventAction_gy6yb")]
|
events = [SubResource("InputEventAction_gy6yb")]
|
||||||
|
|
||||||
[node name="Content Notes" type="VBoxContainer"]
|
[node name="Content Notes" type="VBoxContainer"]
|
||||||
custom_minimum_size = Vector2(512, 0)
|
custom_minimum_size = Vector2(800, 0)
|
||||||
script = ExtResource("1_wnuvg")
|
script = ExtResource("1_wnuvg")
|
||||||
metadata/_tab_index = 1
|
metadata/_tab_index = 1
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="."]
|
[node name="Label" type="Label" parent="."]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_type_variation = &"HeaderLarge"
|
theme_type_variation = &"HeaderLarge"
|
||||||
text = "Content Notes"
|
text = "title_content_notes"
|
||||||
horizontal_alignment = 1
|
|
||||||
|
|
||||||
[node name="Label2" type="Label" parent="."]
|
[node name="Label2" type="Label" parent="."]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "This Game deals with Heavy Topics."
|
text = "menu_cn_disclaimer"
|
||||||
horizontal_alignment = 1
|
|
||||||
|
[node name="HSplitContainer" type="HSplitContainer" parent="."]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 0
|
||||||
|
|
||||||
|
[node name="ContentNoteButton" type="CheckBox" parent="HSplitContainer/VBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
tooltip_text = "menu_cn_enable_tooltip"
|
||||||
|
text = "menu_cn_enable"
|
||||||
|
|
||||||
|
[node name="AllowSkipButton" type="CheckBox" parent="HSplitContainer/VBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
tooltip_text = "menu_cn_allow_skips_tooltip"
|
||||||
|
text = "menu_cn_allow_skips"
|
||||||
|
|
||||||
|
[node name="ReturnThoughtsButton" type="CheckBox" parent="HSplitContainer/VBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
tooltip_text = "menu_cn_allow_returns_tooltip"
|
||||||
|
text = "menu_cn_allow_returns"
|
||||||
|
|
||||||
|
[node name="RichTextLabel2" type="RichTextLabel" parent="HSplitContainer"]
|
||||||
|
custom_minimum_size = Vector2(512, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
bbcode_enabled = true
|
||||||
|
text = "menu[i]cn[/i]summary"
|
||||||
|
fit_content = true
|
||||||
|
script = ExtResource("2_b7ja7")
|
||||||
|
markdown_text = "menu_cn_summary"
|
||||||
|
h1 = SubResource("Resource_832w5")
|
||||||
|
h2 = SubResource("Resource_ar11w")
|
||||||
|
h3 = SubResource("Resource_r5hak")
|
||||||
|
h4 = SubResource("Resource_tpe3b")
|
||||||
|
h5 = SubResource("Resource_y1yi1")
|
||||||
|
h6 = SubResource("Resource_5g2ol")
|
||||||
|
metadata/_custom_type_script = "uid://dbap0gqox0ty1"
|
||||||
|
|
||||||
[node name="ExpandButton" type="Button" parent="."]
|
[node name="ExpandButton" type="Button" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "I would like to know more."
|
text = "menu_cn_learn_more"
|
||||||
|
|
||||||
[node name="ScrollContainer" type="ScrollContainer" parent="."]
|
[node name="ScrollContainer" type="ScrollContainer" parent="."]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
follow_focus = true
|
follow_focus = true
|
||||||
scroll_vertical = 50
|
scroll_vertical = 50
|
||||||
horizontal_scroll_mode = 0
|
horizontal_scroll_mode = 0
|
||||||
vertical_scroll_mode = 2
|
|
||||||
|
|
||||||
[node name="Reveal" type="AnimationPlayer" parent="ScrollContainer"]
|
[node name="Reveal" type="AnimationPlayer" parent="ScrollContainer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|
@ -130,7 +199,7 @@ layout_mode = 2
|
||||||
focus_neighbor_bottom = NodePath("../../../../SaveButton")
|
focus_neighbor_bottom = NodePath("../../../../SaveButton")
|
||||||
toggle_mode = true
|
toggle_mode = true
|
||||||
button_group = SubResource("ButtonGroup_v7ly6")
|
button_group = SubResource("ButtonGroup_v7ly6")
|
||||||
text = "Is this game for or about me?"
|
text = "menu_cn_warm_title"
|
||||||
script = SubResource("GDScript_rhtho")
|
script = SubResource("GDScript_rhtho")
|
||||||
|
|
||||||
[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer1"]
|
[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer1"]
|
||||||
|
|
@ -138,16 +207,7 @@ visible = false
|
||||||
custom_minimum_size = Vector2(512, 0)
|
custom_minimum_size = Vector2(512, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "[ul]
|
text = "menu_cn_warm"
|
||||||
This game tells one story about one fictional character.
|
|
||||||
This character was designed to tell an honest and accessible story about identity and trauma.
|
|
||||||
This is not the game for you if you are looking for escapism.
|
|
||||||
This is not therapy.
|
|
||||||
You might feel understood if experiences you've had are close to the characters.
|
|
||||||
It might help you understand a friend.
|
|
||||||
It will tell you things a group of peers, that reflected about their similar, but specific experiences, want more people to know about.
|
|
||||||
This is made by betalars, who has many overlapping experiences with this character. They made sure to consult people, who can speak from their own experiences about subjects, where betalars could not.
|
|
||||||
[/ul]"
|
|
||||||
fit_content = true
|
fit_content = true
|
||||||
|
|
||||||
[node name="VBoxContainer2" type="VBoxContainer" parent="ScrollContainer/Content Notes"]
|
[node name="VBoxContainer2" type="VBoxContainer" parent="ScrollContainer/Content Notes"]
|
||||||
|
|
@ -157,15 +217,14 @@ layout_mode = 2
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
toggle_mode = true
|
toggle_mode = true
|
||||||
button_group = SubResource("ButtonGroup_v7ly6")
|
button_group = SubResource("ButtonGroup_v7ly6")
|
||||||
text = "What may be difficult about the premise?"
|
text = "menu_cn_harsh_title"
|
||||||
script = SubResource("GDScript_rhtho")
|
script = SubResource("GDScript_rhtho")
|
||||||
|
|
||||||
[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer2"]
|
[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer2"]
|
||||||
visible = false
|
|
||||||
custom_minimum_size = Vector2(512, 0)
|
custom_minimum_size = Vector2(512, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "In this game, you will encounter situations that are problematic and will have a negative impact on the Mental Health of the character you are playing as. This game will establish hurtful assumptions this character develops about themselves and you may not resolve all of them right away. You will have some agency, but it is limited by the games narrative and also chance. You are encouraged and will be able to resolve hurtful assumptions later in the game."
|
text = "menu_cn_harsh"
|
||||||
fit_content = true
|
fit_content = true
|
||||||
|
|
||||||
[node name="VBoxContainer3" type="VBoxContainer" parent="ScrollContainer/Content Notes"]
|
[node name="VBoxContainer3" type="VBoxContainer" parent="ScrollContainer/Content Notes"]
|
||||||
|
|
@ -175,7 +234,7 @@ layout_mode = 2
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
toggle_mode = true
|
toggle_mode = true
|
||||||
button_group = SubResource("ButtonGroup_v7ly6")
|
button_group = SubResource("ButtonGroup_v7ly6")
|
||||||
text = "What are the game's topics? (Content Notes)"
|
text = "menu_cn_somber_title"
|
||||||
script = SubResource("GDScript_rhtho")
|
script = SubResource("GDScript_rhtho")
|
||||||
|
|
||||||
[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer3"]
|
[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer3"]
|
||||||
|
|
@ -183,42 +242,28 @@ visible = false
|
||||||
custom_minimum_size = Vector2(512, 0)
|
custom_minimum_size = Vector2(512, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "This game discusses Mental Health and Sex-Positivity. It also includes a character, who is trans but you will get to know them while they are unaware about their trans identity going by their birthname. Besides social Transistioning, this game also deals with topics including Mysoginy, Sanism, Body Issues, Eating Disorders, Bullying, Martial Arts, Relationships and Rape, but not trough physical violence. Comic violence is mentioned while talking about a fictional franchise in universe."
|
text = "menu_cn_somber"
|
||||||
fit_content = true
|
fit_content = true
|
||||||
|
|
||||||
[node name="VBoxContainer4" type="VBoxContainer" parent="ScrollContainer/Content Notes"]
|
[node name="VBoxContainer4" type="VBoxContainer" parent="ScrollContainer/Content Notes"]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="ScrollContainer/Content Notes/VBoxContainer4"]
|
[node name="Button" type="Button" parent="ScrollContainer/Content Notes/VBoxContainer4"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
toggle_mode = true
|
toggle_mode = true
|
||||||
button_group = SubResource("ButtonGroup_v7ly6")
|
button_group = SubResource("ButtonGroup_v7ly6")
|
||||||
text = "Mental Health Accessibility Options"
|
text = "menu_cn_details"
|
||||||
script = SubResource("GDScript_rhtho")
|
script = SubResource("GDScript_rhtho")
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer/Content Notes/VBoxContainer4"]
|
[node name="RichTextLabel2" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer4"]
|
||||||
layout_mode = 2
|
visible = false
|
||||||
|
|
||||||
[node name="RichTextLabel2" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer4/VBoxContainer"]
|
|
||||||
custom_minimum_size = Vector2(512, 0)
|
custom_minimum_size = Vector2(512, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "[ul]
|
text = "menu_cn_details"
|
||||||
You can always Pause using Escape or Spacebar
|
|
||||||
You can always choose to just get a neutral summary of scenes or skip them entirely
|
|
||||||
[/ul]"
|
|
||||||
fit_content = true
|
fit_content = true
|
||||||
|
|
||||||
[node name="ContentNoteButton" type="CheckBox" parent="ScrollContainer/Content Notes/VBoxContainer4/VBoxContainer"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
layout_mode = 2
|
|
||||||
text = "show content notes during the game"
|
|
||||||
|
|
||||||
[node name="AllowSkipButton" type="CheckBox" parent="ScrollContainer/Content Notes/VBoxContainer4/VBoxContainer"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
layout_mode = 2
|
|
||||||
text = "allow me to skip scenes"
|
|
||||||
|
|
||||||
[node name="SaveButton" type="Button" parent="."]
|
[node name="SaveButton" type="Button" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
|
||||||
|
|
@ -7,25 +7,29 @@ var has_stage:bool = false:
|
||||||
set(stage):
|
set(stage):
|
||||||
has_stage = stage
|
has_stage = stage
|
||||||
if is_node_ready() and has_stage:
|
if is_node_ready() and has_stage:
|
||||||
y_switch.grab_focus()
|
y_switch_gamepad.grab_focus()
|
||||||
|
|
||||||
var current_music_decay:float = 0
|
var current_music_decay:float = 0
|
||||||
|
|
||||||
@onready var y_switch: CheckBox = %InvertY
|
@onready var y_switch_gamepad: CheckBox = %InvertYGamepad
|
||||||
|
@onready var y_switch_mouse: CheckBox = %InvertYMouse
|
||||||
@onready var input_sensitivity_slider: HSlider = %InputSensitivitySlider
|
@onready var input_sensitivity_slider: HSlider = %InputSensitivitySlider
|
||||||
|
@onready var fov_slider: HSlider = %FOVSlider
|
||||||
@onready var stream_overlay_picker: OptionButton = %StreamOverlayPicker
|
@onready var stream_overlay_picker: OptionButton = %StreamOverlayPicker
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
update_ui_from_state()
|
update_ui_from_state()
|
||||||
|
|
||||||
y_switch.toggled.connect(func(value): State.inverty_y_axis = value)
|
y_switch_gamepad.toggled.connect(func(value): State.inverty_y_axis = value)
|
||||||
|
y_switch_mouse.toggled.connect(func(value): State.inverty_y_mouse = value)
|
||||||
input_sensitivity_slider.value_changed.connect(func(value): State.input_sensitivity = value)
|
input_sensitivity_slider.value_changed.connect(func(value): State.input_sensitivity = value)
|
||||||
stream_overlay_picker.item_selected.connect(func(value): State.stream_overlay = value)
|
stream_overlay_picker.item_selected.connect(func(value): State.stream_overlay = value)
|
||||||
|
fov_slider.value_changed.connect(func(value): State.input_sensitivity = value)
|
||||||
|
|
||||||
%SaveButton.pressed.connect(_on_exit_button_pressed)
|
%SaveButton.pressed.connect(_on_exit_button_pressed)
|
||||||
|
|
||||||
func update_ui_from_state():
|
func update_ui_from_state():
|
||||||
y_switch.button_pressed = State.inverty_y_axis
|
y_switch_gamepad.button_pressed = State.inverty_y_axis
|
||||||
input_sensitivity_slider.value = State.input_sensitivity
|
input_sensitivity_slider.value = State.input_sensitivity
|
||||||
stream_overlay_picker.select(State.stream_overlay_position)
|
stream_overlay_picker.select(State.stream_overlay_position)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,11 +27,23 @@ text = "Gameplay Settings"
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="InvertY" type="CheckBox" parent="VBoxContainer"]
|
[node name="InvertYGamepad" type="CheckBox" parent="VBoxContainer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
tooltip_text = "All Game Music is safe to stream."
|
tooltip_text = "gameplay_invert_y_tooltop"
|
||||||
text = "invert Y (gamepad)"
|
text = "gameplay_invert_y_gamepad"
|
||||||
|
|
||||||
|
[node name="InvertYMouse" type="CheckBox" parent="VBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
tooltip_text = "gameplay_invert_y_tooltop"
|
||||||
|
text = "gameplay_invert_y_mouse"
|
||||||
|
|
||||||
|
[node name="SimplifyControls" type="CheckBox" parent="VBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
tooltip_text = "gameplay_simplify_tooltop"
|
||||||
|
text = "gameplay_simplified"
|
||||||
|
|
||||||
[node name="GridContainer" type="GridContainer" parent="VBoxContainer"]
|
[node name="GridContainer" type="GridContainer" parent="VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
@ -51,6 +63,21 @@ step = 0.05
|
||||||
value = 0.5
|
value = 0.5
|
||||||
ticks_on_borders = true
|
ticks_on_borders = true
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="VBoxContainer/GridContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Field of View"
|
||||||
|
|
||||||
|
[node name="FOVSlider" type="HSlider" parent="VBoxContainer/GridContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 4
|
||||||
|
min_value = 40.0
|
||||||
|
max_value = 110.0
|
||||||
|
step = 0.05
|
||||||
|
value = 75.0
|
||||||
|
ticks_on_borders = true
|
||||||
|
|
||||||
[node name="Label3" type="Label" parent="VBoxContainer/GridContainer"]
|
[node name="Label3" type="Label" parent="VBoxContainer/GridContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Stream Overlay"
|
text = "Stream Overlay"
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,24 @@ var has_stage: bool = false:
|
||||||
set(value):
|
set(value):
|
||||||
has_stage = value
|
has_stage = value
|
||||||
if is_node_ready():
|
if is_node_ready():
|
||||||
if has_stage: new_game_button.grab_focus()
|
if save_game_handle.get_most_recent_save().current_room == 0:
|
||||||
new_game_button.disabled = not has_stage
|
continue_button.visible = false
|
||||||
continue_button.disabled = not has_stage or save_game_handle.get_most_recent_save().current_room == 0
|
continue_button.disabled = true
|
||||||
load_game_button.disabled = not has_stage or not save_game_handle.has_existing_saves()
|
new_game_button.theme_type_variation = "H1Button"
|
||||||
settings_button.disabled = not has_stage
|
else:
|
||||||
credits_button.disabled = not has_stage
|
continue_button.visible = true
|
||||||
quit_button.disabled = not has_stage
|
continue_button.disabled = not has_stage
|
||||||
|
new_game_button.theme_type_variation = ""
|
||||||
|
load_game_button.disabled = not save_game_handle.has_existing_saves()
|
||||||
|
for child: Control in $PanelContainer.get_children():
|
||||||
|
child.focus_mode = FOCUS_ALL if has_stage else FOCUS_NONE
|
||||||
|
child.modulate = Color.WHITE if has_stage else Color.WEB_GRAY
|
||||||
|
child.mouse_filter = Control.MOUSE_FILTER_STOP if has_stage else Control.MOUSE_FILTER_IGNORE
|
||||||
|
if has_stage:
|
||||||
|
if continue_button.visible:
|
||||||
|
continue_button.grab_focus()
|
||||||
|
else:
|
||||||
|
new_game_button.grab_focus()
|
||||||
|
|
||||||
signal start_game(savegame: SaveGame)
|
signal start_game(savegame: SaveGame)
|
||||||
signal open_settings(new_game: bool)
|
signal open_settings(new_game: bool)
|
||||||
|
|
@ -19,7 +30,7 @@ signal roll_credits
|
||||||
@onready var new_game_button: Button = $PanelContainer/NewGameButton
|
@onready var new_game_button: Button = $PanelContainer/NewGameButton
|
||||||
@onready var continue_button: Button = $PanelContainer/ContinueGameButton
|
@onready var continue_button: Button = $PanelContainer/ContinueGameButton
|
||||||
@onready var load_game_button: Button = $PanelContainer/LoadGameButton
|
@onready var load_game_button: Button = $PanelContainer/LoadGameButton
|
||||||
@onready var settings_button: MenuButton = $PanelContainer/SettingsButton
|
@onready var settings_button: Button = $PanelContainer/SettingsButton
|
||||||
@onready var settings_popup: SettingsPopup = %SettingsPopup
|
@onready var settings_popup: SettingsPopup = %SettingsPopup
|
||||||
@onready var credits_button: Button = $PanelContainer/CreditsButton
|
@onready var credits_button: Button = $PanelContainer/CreditsButton
|
||||||
@onready var quit_button: Button = $PanelContainer/QuitButton
|
@onready var quit_button: Button = $PanelContainer/QuitButton
|
||||||
|
|
@ -34,12 +45,15 @@ var await_new_game: bool = false
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
save_game_handle.picked.connect(_on_save_picked)
|
save_game_handle.picked.connect(_on_save_picked)
|
||||||
continue_button.disabled = save_game_handle.get_most_recent_save().current_room == 0
|
if save_game_handle.get_most_recent_save().current_room == 0:
|
||||||
|
continue_button.disabled = true
|
||||||
|
continue_button.visible = false
|
||||||
|
new_game_button.theme_type_variation = "H1Button"
|
||||||
continue_button.pressed.connect(func(): start_game.emit(save_game_handle.get_most_recent_save()))
|
continue_button.pressed.connect(func(): start_game.emit(save_game_handle.get_most_recent_save()))
|
||||||
new_game_button.pressed.connect(func(): save_game_handle.pick_save_slot(true))
|
new_game_button.pressed.connect(func(): save_game_handle.pick_save_slot(true))
|
||||||
load_game_button.pressed.connect(func(): save_game_handle.pick_save_slot(false))
|
load_game_button.pressed.connect(func(): save_game_handle.pick_save_slot(false))
|
||||||
load_game_button.disabled = not save_game_handle.has_existing_saves()
|
load_game_button.disabled = not save_game_handle.has_existing_saves()
|
||||||
settings_button.get_popup().index_pressed.connect(settings_popup.show_settings)
|
settings_button.pressed.connect(settings_popup.show_settings)
|
||||||
quit_button.pressed.connect(get_tree().quit)
|
quit_button.pressed.connect(get_tree().quit)
|
||||||
|
|
||||||
State.take_stage(self)
|
State.take_stage(self)
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ var has_stage:bool = false:
|
||||||
if is_node_ready():
|
if is_node_ready():
|
||||||
if has_stage:
|
if has_stage:
|
||||||
steam_optout.grab_focus()
|
steam_optout.grab_focus()
|
||||||
|
|
||||||
|
|
||||||
var current_music_decay:float = 0
|
var current_music_decay:float = 0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ extends VBoxContainer
|
||||||
# This is a hack so values changing to the default to not create a recursion.
|
# This is a hack so values changing to the default to not create a recursion.
|
||||||
signal changed
|
signal changed
|
||||||
signal leave_stage
|
signal leave_stage
|
||||||
|
var has_unsaved_changes:= false
|
||||||
|
|
||||||
var has_stage:bool = false:
|
var has_stage:bool = false:
|
||||||
set(stage):
|
set(stage):
|
||||||
|
|
@ -49,6 +50,12 @@ var fps_enabled: bool:
|
||||||
|
|
||||||
@onready var fps_selector: SpinBox = %MaxFps
|
@onready var fps_selector: SpinBox = %MaxFps
|
||||||
|
|
||||||
|
@export var enable_hdr: bool = false:
|
||||||
|
set(value):
|
||||||
|
enable_hdr = value
|
||||||
|
if not ignore_changes: changed.emit()
|
||||||
|
@onready var hdr_selector: SpinBox = %MaxFps
|
||||||
|
|
||||||
@export_enum("low", "medium", "high", "ultra") var lighting_quality: int = 3:
|
@export_enum("low", "medium", "high", "ultra") var lighting_quality: int = 3:
|
||||||
set(value):
|
set(value):
|
||||||
lighting_quality = value
|
lighting_quality = value
|
||||||
|
|
@ -186,8 +193,11 @@ func _on_exit_button_pressed() -> void:
|
||||||
|
|
||||||
func _on_confirm_button_pressed() -> void:
|
func _on_confirm_button_pressed() -> void:
|
||||||
ProjectSettings.set_setting("display/window/size/mode", window_mode)
|
ProjectSettings.set_setting("display/window/size/mode", window_mode)
|
||||||
|
DisplayServer.window_set_mode(window_mode)
|
||||||
ProjectSettings.set_setting("rendering/scaling_3d/scale", render_scale)
|
ProjectSettings.set_setting("rendering/scaling_3d/scale", render_scale)
|
||||||
|
RenderingServer.viewport_set_scaling_3d_scale(get_tree().root.get_viewport_rid(), render_scale)
|
||||||
ProjectSettings.set_setting("rendering/scaling_3d/mode", upscale_mode)
|
ProjectSettings.set_setting("rendering/scaling_3d/mode", upscale_mode)
|
||||||
|
RenderingServer.viewport_set_scaling_3d_scale(get_tree().root.get_viewport_rid(), upscale_mode)
|
||||||
ProjectSettings.set_setting("application/run/max_fps", max_fps if fps_enabled else 0)
|
ProjectSettings.set_setting("application/run/max_fps", max_fps if fps_enabled else 0)
|
||||||
match lighting_quality:
|
match lighting_quality:
|
||||||
0:
|
0:
|
||||||
|
|
|
||||||
|
|
@ -208,6 +208,25 @@ text = "Graphic Fidelity"
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="Label4" type="Label" parent="GridContainer"]
|
[node name="Label4" type="Label" parent="GridContainer"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
text = "video_hdr"
|
||||||
|
|
||||||
|
[node name="EnableHDR" type="OptionButton" parent="GridContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
tooltip_text = "hdr_tooltip \"HDR increases the vibrance of colors for a more immersive experience. It is automatically enabled if your device supports it. If you cannot manually HDR, your device may not be supported. You can manually disable HDR if you prefer to play without."
|
||||||
|
selected = 0
|
||||||
|
item_count = 3
|
||||||
|
popup/item_0/text = "hdr_automatic"
|
||||||
|
popup/item_0/id = 0
|
||||||
|
popup/item_1/text = "hdr_enabled"
|
||||||
|
popup/item_1/id = 1
|
||||||
|
popup/item_2/text = "hdr_disabled"
|
||||||
|
popup/item_2/id = 2
|
||||||
|
|
||||||
|
[node name="Label5" type="Label" parent="GridContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Lighting Quality"
|
text = "Lighting Quality"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -180,10 +180,13 @@ func _handle_rotation(delta:float):
|
||||||
|
|
||||||
var input_speed = Vector2( Input.get_action_strength("look_right")-Input.get_action_strength("look_left"), Input.get_action_strength("look_up")-Input.get_action_strength("look_down")) * gamepad_response
|
var input_speed = Vector2( Input.get_action_strength("look_right")-Input.get_action_strength("look_left"), Input.get_action_strength("look_up")-Input.get_action_strength("look_down")) * gamepad_response
|
||||||
|
|
||||||
|
# secretly, inverted y axis is the default
|
||||||
|
if not State.inverty_y_axis: input_speed *= Vector2(1, -1)
|
||||||
|
|
||||||
if current_mouse_rotation.length()>0:
|
if current_mouse_rotation.length()>0:
|
||||||
input_speed = current_mouse_rotation
|
input_speed = current_mouse_rotation
|
||||||
current_mouse_rotation = Vector2.ZERO
|
current_mouse_rotation = Vector2.ZERO
|
||||||
|
|
||||||
rotation_speed = rotation_speed * (1-mouse_jerk*smoothness) + input_speed * mouse_jerk * smoothness
|
rotation_speed = rotation_speed * (1-mouse_jerk*smoothness) + input_speed * mouse_jerk * smoothness
|
||||||
|
|
||||||
if rotation_speed.y > 0 and pitch.rotation_degrees.x < 0:
|
if rotation_speed.y > 0 and pitch.rotation_degrees.x < 0:
|
||||||
|
|
@ -191,8 +194,9 @@ func _handle_rotation(delta:float):
|
||||||
elif rotation_speed.y < 0 and pitch.rotation_degrees.x > 0 :
|
elif rotation_speed.y < 0 and pitch.rotation_degrees.x > 0 :
|
||||||
rotation_speed.y *= 1-pow(pitch.rotation_degrees.x/max_angle, 4)
|
rotation_speed.y *= 1-pow(pitch.rotation_degrees.x/max_angle, 4)
|
||||||
|
|
||||||
yaw.rotate_y(deg_to_rad(-rotation_speed.x * delta * mouse_sensitivity.x))
|
|
||||||
pitch.rotate_x(deg_to_rad(-rotation_speed.y * delta * mouse_sensitivity.y))
|
yaw.rotate_y(deg_to_rad(-rotation_speed.x * delta * mouse_sensitivity.x * State.input_sensitivity))
|
||||||
|
pitch.rotate_x(deg_to_rad(-rotation_speed.y * delta * mouse_sensitivity.y * State.input_sensitivity))
|
||||||
|
|
||||||
func _handle_jitter(delta):
|
func _handle_jitter(delta):
|
||||||
loc_noise_spot += Vector3(delta * camera_jitter_speed * location_jitter_speed)
|
loc_noise_spot += Vector3(delta * camera_jitter_speed * location_jitter_speed)
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,16 @@
|
||||||
[gd_scene load_steps=9 format=3 uid="uid://gldtxysavetf"]
|
[gd_scene load_steps=7 format=3 uid="uid://gldtxysavetf"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="1_8giso"]
|
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="1_8giso"]
|
||||||
[ext_resource type="Theme" uid="uid://dla4kae5kbwdh" path="res://logic-scenes/themes/system.theme" id="1_ot7jp"]
|
[ext_resource type="Script" uid="uid://0tb763w0vfv7" path="res://tab_container.gd" id="2_lw8rc"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b3wlecqvelh22" path="res://logic-scenes/main menu/acessability_settings.tscn" id="3_2p4fc"]
|
||||||
[ext_resource type="PackedScene" uid="uid://chal0ioagspx0" path="res://logic-scenes/main menu/content_settings.tscn" id="3_fso6q"]
|
[ext_resource type="PackedScene" uid="uid://chal0ioagspx0" path="res://logic-scenes/main menu/content_settings.tscn" id="3_fso6q"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_s5ssh"]
|
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_s5ssh"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="5_7c77g"]
|
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_a78qq"]
|
[sub_resource type="GDScript" id="GDScript_a78qq"]
|
||||||
script/source = "extends Panel
|
script/source = "extends Panel
|
||||||
|
|
||||||
|
@export var is_in_startup: bool
|
||||||
|
|
||||||
@onready var show_navigation_buttons = $\"CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/margin/show nav ui\"
|
@onready var show_navigation_buttons = $\"CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/margin/show nav ui\"
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
|
|
@ -17,7 +19,8 @@ func _ready():
|
||||||
TranslationServer.set_locale(\"de\")
|
TranslationServer.set_locale(\"de\")
|
||||||
|
|
||||||
func starting():
|
func starting():
|
||||||
$\"CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/navbuttons/Next\".grab_focus()
|
pass
|
||||||
|
#$\"CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/navbuttons/Next\".grab_focus()
|
||||||
|
|
||||||
func _on_reduce_motion_toggled(toggled_on):
|
func _on_reduce_motion_toggled(toggled_on):
|
||||||
State.reduce_motion = toggled_on
|
State.reduce_motion = toggled_on
|
||||||
|
|
@ -104,78 +107,12 @@ func hide():
|
||||||
self.visible = false
|
self.visible = false
|
||||||
"
|
"
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_ia432"]
|
|
||||||
script/source = "extends TabContainer
|
|
||||||
|
|
||||||
var focus_list: Array
|
|
||||||
|
|
||||||
#FIXME when accessability setting is implemented properly
|
|
||||||
@onready var disable_rendering = false
|
|
||||||
@onready var simplified_controls = false
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
for child in get_children():
|
|
||||||
focus_list.append(_find_selectable_in(child))
|
|
||||||
|
|
||||||
func _find_selectable_in(parent:Control):
|
|
||||||
if parent.focus_mode != FOCUS_NONE:
|
|
||||||
return parent
|
|
||||||
if parent.get_child_count() == 0:
|
|
||||||
return self
|
|
||||||
else:
|
|
||||||
for child in parent.get_children():
|
|
||||||
var ret = _find_selectable_in(child)
|
|
||||||
if not ret == self:
|
|
||||||
return ret
|
|
||||||
|
|
||||||
func _unhandled_input(event):
|
|
||||||
|
|
||||||
if event.is_action_type():
|
|
||||||
if event.is_action_pressed(\"ui_left\"): previous()
|
|
||||||
elif event.is_action_pressed(\"ui_right\"): next()
|
|
||||||
|
|
||||||
func next():
|
|
||||||
if current_tab < get_tab_count()-1:
|
|
||||||
if !Input.is_action_just_released(\"mouse_left\"):
|
|
||||||
if not get_viewport().gui_get_focus_owner() == null:
|
|
||||||
focus_list[current_tab] = get_viewport().gui_get_focus_owner()
|
|
||||||
current_tab += 1
|
|
||||||
focus_list[current_tab].grab_focus()
|
|
||||||
else:
|
|
||||||
current_tab += 1
|
|
||||||
|
|
||||||
func previous():
|
|
||||||
if current_tab > 0:
|
|
||||||
if !Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT):
|
|
||||||
if not get_viewport().gui_get_focus_owner() == null:
|
|
||||||
focus_list[current_tab] = get_viewport().gui_get_focus_owner()
|
|
||||||
current_tab -= 1
|
|
||||||
focus_list[current_tab].grab_focus()
|
|
||||||
else:
|
|
||||||
current_tab -= 1
|
|
||||||
|
|
||||||
func _on_screenreader_toggled(button_pressed):
|
|
||||||
State.screen_reader = button_pressed # this is how you reach the global state
|
|
||||||
disable_rendering.disabled = not button_pressed # if screenreader was toggled - disabled = false
|
|
||||||
simplified_controls.button_pressed = button_pressed
|
|
||||||
State.simplified_navigation = button_pressed
|
|
||||||
|
|
||||||
"
|
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_v567h"]
|
|
||||||
script/source = "extends CheckBox
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
grab_focus()
|
|
||||||
"
|
|
||||||
|
|
||||||
[node name="Startup Menu" type="Panel"]
|
[node name="Startup Menu" type="Panel"]
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
theme = ExtResource("1_ot7jp")
|
|
||||||
script = SubResource("GDScript_a78qq")
|
script = SubResource("GDScript_a78qq")
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="."]
|
[node name="Label" type="Label" parent="."]
|
||||||
|
|
@ -188,6 +125,7 @@ offset_top = 23.0
|
||||||
offset_right = 283.5
|
offset_right = 283.5
|
||||||
offset_bottom = 61.0
|
offset_bottom = 61.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
|
theme_type_variation = &"HeaderLarge"
|
||||||
text = "Accessibility, Disclaimers and Content Notes"
|
text = "Accessibility, Disclaimers and Content Notes"
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
|
@ -204,160 +142,27 @@ layout_mode = 2
|
||||||
|
|
||||||
[node name="StartFrame" type="TextureRect" parent="CenterContainer/PanelContainer"]
|
[node name="StartFrame" type="TextureRect" parent="CenterContainer/PanelContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 8
|
||||||
texture = ExtResource("1_8giso")
|
texture = ExtResource("1_8giso")
|
||||||
expand_mode = 2
|
expand_mode = 2
|
||||||
stretch_mode = 4
|
stretch_mode = 4
|
||||||
|
|
||||||
[node name="Panel" type="PanelContainer" parent="CenterContainer/PanelContainer/StartFrame"]
|
|
||||||
show_behind_parent = true
|
|
||||||
layout_mode = 2
|
|
||||||
offset_left = 199.0
|
|
||||||
offset_top = -112.0
|
|
||||||
offset_right = 913.0
|
|
||||||
offset_bottom = 602.0
|
|
||||||
rotation = 0.459022
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/PanelContainer"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/PanelContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="TabContainer" type="TabContainer" parent="CenterContainer/PanelContainer/VBoxContainer"]
|
[node name="TabContainer" type="TabContainer" parent="CenterContainer/PanelContainer/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
current_tab = 0
|
current_tab = 1
|
||||||
tabs_visible = false
|
tabs_visible = false
|
||||||
use_hidden_tabs_for_min_size = true
|
use_hidden_tabs_for_min_size = true
|
||||||
script = SubResource("GDScript_ia432")
|
script = ExtResource("2_lw8rc")
|
||||||
|
|
||||||
[node name="physical Accessibility" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer"]
|
[node name="Accessibility" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer" instance=ExtResource("3_2p4fc")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
metadata/_tab_index = 0
|
is_in_beginning = true
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility"]
|
|
||||||
layout_mode = 2
|
|
||||||
theme_type_variation = &"HeaderLarge"
|
|
||||||
text = "Accessibility"
|
|
||||||
|
|
||||||
[node name="Label4" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Greyed-out items do not work yet."
|
|
||||||
|
|
||||||
[node name="Container2" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="reduce motion" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "reduce motion"
|
|
||||||
|
|
||||||
[node name="Screenreader" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"]
|
|
||||||
layout_mode = 2
|
|
||||||
disabled = true
|
|
||||||
text = "use Screenreader"
|
|
||||||
script = SubResource("GDScript_v567h")
|
|
||||||
|
|
||||||
[node name="margin2" type="MarginContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="disable rendering" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/margin2"]
|
|
||||||
layout_mode = 2
|
|
||||||
disabled = true
|
|
||||||
text = "disable video"
|
|
||||||
|
|
||||||
[node name="simplified controls" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"]
|
|
||||||
layout_mode = 2
|
|
||||||
disabled = true
|
|
||||||
text = "simplified Controls"
|
|
||||||
|
|
||||||
[node name="margin" type="MarginContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"]
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="show nav ui" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/margin"]
|
|
||||||
layout_mode = 2
|
|
||||||
disabled = true
|
|
||||||
text = "show Navigation Buttons"
|
|
||||||
|
|
||||||
[node name="GridContainer" type="GridContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"]
|
|
||||||
layout_mode = 2
|
|
||||||
columns = 3
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Font-Style:"
|
|
||||||
|
|
||||||
[node name="VSeparator" type="VSeparator" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
|
||||||
custom_minimum_size = Vector2(30, 60)
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="font settings" type="OptionButton" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_vertical = 4
|
|
||||||
selected = 1
|
|
||||||
item_count = 5
|
|
||||||
popup/item_0/text = "messy handwriting"
|
|
||||||
popup/item_0/id = 0
|
|
||||||
popup/item_0/disabled = true
|
|
||||||
popup/item_1/text = "easy handwriting"
|
|
||||||
popup/item_1/id = 1
|
|
||||||
popup/item_2/text = "serif"
|
|
||||||
popup/item_2/id = 2
|
|
||||||
popup/item_3/text = "hyperlegible sans"
|
|
||||||
popup/item_3/id = 3
|
|
||||||
popup/item_4/text = "system font"
|
|
||||||
popup/item_4/id = 4
|
|
||||||
|
|
||||||
[node name="Label2" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Subtitles:"
|
|
||||||
|
|
||||||
[node name="VSeparator2" type="VSeparator" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
|
||||||
custom_minimum_size = Vector2(30, 60)
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="ItemList2" type="OptionButton" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_vertical = 4
|
|
||||||
disabled = true
|
|
||||||
selected = 1
|
|
||||||
item_count = 3
|
|
||||||
popup/item_0/text = "none"
|
|
||||||
popup/item_0/id = 0
|
|
||||||
popup/item_1/text = "spoken text"
|
|
||||||
popup/item_1/id = 1
|
|
||||||
popup/item_2/text = "closed captions"
|
|
||||||
popup/item_2/id = 2
|
|
||||||
|
|
||||||
[node name="Label3" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "UI scale:"
|
|
||||||
|
|
||||||
[node name="VSeparator3" type="VSeparator" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
|
||||||
custom_minimum_size = Vector2(30, 60)
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="HSlider" type="HSlider" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
|
||||||
custom_minimum_size = Vector2(0, 60)
|
|
||||||
layout_mode = 2
|
|
||||||
min_value = 0.5
|
|
||||||
max_value = 3.0
|
|
||||||
step = 0.0
|
|
||||||
value = 1.0
|
|
||||||
editable = false
|
|
||||||
|
|
||||||
[node name="navbuttons" type="VSplitContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 4
|
|
||||||
size_flags_vertical = 10
|
|
||||||
dragger_visibility = 1
|
|
||||||
|
|
||||||
[node name="Next" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/navbuttons"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "okay"
|
|
||||||
|
|
||||||
[node name="previous" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/navbuttons"]
|
|
||||||
layout_mode = 2
|
|
||||||
disabled = true
|
|
||||||
text = "go back"
|
|
||||||
|
|
||||||
[node name="Content Notes" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer" instance=ExtResource("3_fso6q")]
|
[node name="Content Notes" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer" instance=ExtResource("3_fso6q")]
|
||||||
visible = false
|
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="Managing Expectations" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer"]
|
[node name="Managing Expectations" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer"]
|
||||||
|
|
@ -387,18 +192,18 @@ size_flags_vertical = 10
|
||||||
|
|
||||||
[node name="Next" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons"]
|
[node name="Next" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "okay"
|
text = "menu_okay"
|
||||||
|
|
||||||
[node name="previous" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons"]
|
[node name="previous" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "go back"
|
text = "menu_back"
|
||||||
|
|
||||||
[node name="StartBottom" type="TextureRect" parent="CenterContainer/PanelContainer/VBoxContainer"]
|
[node name="StartBottom" type="TextureRect" parent="CenterContainer/PanelContainer/VBoxContainer"]
|
||||||
custom_minimum_size = Vector2(0, 32)
|
custom_minimum_size = Vector2(0, 32)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
texture = ExtResource("3_s5ssh")
|
texture = ExtResource("3_s5ssh")
|
||||||
expand_mode = 2
|
expand_mode = 2
|
||||||
stretch_mode = 4
|
stretch_mode = 5
|
||||||
|
|
||||||
[node name="continue" type="Button" parent="."]
|
[node name="continue" type="Button" parent="."]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
|
@ -415,10 +220,9 @@ grow_horizontal = 2
|
||||||
grow_vertical = 0
|
grow_vertical = 0
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
size_flags_vertical = 8
|
size_flags_vertical = 8
|
||||||
text = "skip all"
|
text = "menu_skip_all"
|
||||||
|
|
||||||
[node name="CheckBox" type="CheckBox" parent="continue"]
|
[node name="CheckBox" type="CheckBox" parent="continue"]
|
||||||
visible = false
|
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 8
|
anchors_preset = 8
|
||||||
anchor_left = 0.5
|
anchor_left = 0.5
|
||||||
|
|
@ -433,23 +237,6 @@ grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
text = "I stream this game, please show content notes."
|
text = "I stream this game, please show content notes."
|
||||||
|
|
||||||
[node name="card" parent="." instance=ExtResource("5_7c77g")]
|
|
||||||
process_mode = 4
|
|
||||||
position = Vector2(1491, 598)
|
|
||||||
collision_layer = 0
|
|
||||||
collision_mask = 0
|
|
||||||
input_pickable = false
|
|
||||||
text = "I never put in much effort for Homework"
|
|
||||||
|
|
||||||
[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/reduce motion" to="." method="_on_reduce_motion_toggled"]
|
|
||||||
[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/Screenreader" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="_on_screenreader_toggled"]
|
|
||||||
[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/margin2/disable rendering" to="." method="_on_disable_rendering_toggled"]
|
|
||||||
[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/simplified controls" to="." method="_on_simplified_controls_toggled"]
|
|
||||||
[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/margin/show nav ui" to="." method="_on_show_nav_ui_toggled"]
|
|
||||||
[connection signal="item_selected" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer/font settings" to="." method="_on_font_style_selected"]
|
|
||||||
[connection signal="item_selected" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer/ItemList2" to="." method="_on_subtitle_option_selected"]
|
|
||||||
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/navbuttons/Next" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="next"]
|
|
||||||
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"]
|
|
||||||
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons/Next" to="." method="hide"]
|
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons/Next" to="." method="hide"]
|
||||||
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"]
|
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"]
|
||||||
[connection signal="pressed" from="continue" to="." method="hide"]
|
[connection signal="pressed" from="continue" to="." method="hide"]
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,8 @@ func _ready():
|
||||||
currently_loading_room = get_room_path_from_id(main_menu.save_game_handle.get_most_recent_save().current_room)
|
currently_loading_room = get_room_path_from_id(main_menu.save_game_handle.get_most_recent_save().current_room)
|
||||||
main_menu.start_game.connect(load_save)
|
main_menu.start_game.connect(load_save)
|
||||||
get_tree().tree_process_mode_changed.connect(pause_mode_changed)
|
get_tree().tree_process_mode_changed.connect(pause_mode_changed)
|
||||||
|
await get_tree().process_frame
|
||||||
|
State.pass_stage_to(main_menu)
|
||||||
|
|
||||||
func _process(_delta: float) -> void:
|
func _process(_delta: float) -> void:
|
||||||
if currently_loading_room != "":
|
if currently_loading_room != "":
|
||||||
|
|
|
||||||
496
src/main.tscn
496
src/main.tscn
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=67 format=3 uid="uid://befxf8uruwnrl"]
|
[gd_scene load_steps=68 format=3 uid="uid://befxf8uruwnrl"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://k8yppfbkq0xv" path="res://main.gd" id="1_rqkns"]
|
[ext_resource type="Script" uid="uid://k8yppfbkq0xv" 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"]
|
||||||
|
|
@ -11,14 +11,14 @@
|
||||||
[ext_resource type="Script" uid="uid://0h0lrkntx0uh" path="res://logic-scenes/main menu/pause_menu.gd" id="9_ihfph"]
|
[ext_resource type="Script" uid="uid://0h0lrkntx0uh" 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="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="Texture2D" uid="uid://bdyg065h8vcdi" path="res://base-environments/youth_room/shaders/starlight-textures.png" id="10_pipov"]
|
||||||
[ext_resource type="Script" uid="uid://dr7xhgd53cvmf" path="res://addons/markdownlabel/markdownlabel.gd" id="12_074og"]
|
[ext_resource type="Script" uid="uid://dbap0gqox0ty1" path="res://addons/markdownlabel/markdownlabel.gd" id="12_074og"]
|
||||||
[ext_resource type="Script" uid="uid://sa15wakvpj2e" path="res://dev-util/bug_button.gd" id="12_cegan"]
|
[ext_resource type="Script" uid="uid://sa15wakvpj2e" path="res://dev-util/bug_button.gd" id="12_cegan"]
|
||||||
[ext_resource type="Script" uid="uid://2nt1uho85s8f" path="res://addons/markdownlabel/header_formats/h1_format.gd" id="13_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://c0sorgri1jvgp" path="res://addons/markdownlabel/header_formats/h2_format.gd" id="14_82xsv"]
|
[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://bxp6pmnguqayg" path="res://addons/markdownlabel/header_formats/h3_format.gd" id="15_getpj"]
|
[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://cevgeq5lemi6u" path="res://addons/markdownlabel/header_formats/h4_format.gd" id="16_ryguw"]
|
[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://be2s7l2uixmfl" path="res://addons/markdownlabel/header_formats/h5_format.gd" id="17_d13ii"]
|
[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://ladew4bsypon" path="res://addons/markdownlabel/header_formats/h6_format.gd" id="18_1u8w0"]
|
[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"]
|
[sub_resource type="GDScript" id="GDScript_8sq0u"]
|
||||||
script/source = "extends Label
|
script/source = "extends Label
|
||||||
|
|
@ -27,6 +27,33 @@ func _process(_delta):
|
||||||
text = str(Engine.get_frames_per_second())
|
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"]
|
[sub_resource type="Animation" id="Animation_y6s08"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
|
|
@ -233,6 +260,42 @@ tracks/16/keys = {
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Vector2(0, 220)]
|
"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"]
|
[sub_resource type="Animation" id="Animation_sfr6l"]
|
||||||
resource_name = "credits_roll"
|
resource_name = "credits_roll"
|
||||||
|
|
@ -504,6 +567,42 @@ tracks/4/keys = {
|
||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [true]
|
"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"]
|
[sub_resource type="Animation" id="Animation_em5qx"]
|
||||||
resource_name = "loading_game"
|
resource_name = "loading_game"
|
||||||
|
|
@ -593,6 +692,42 @@ tracks/6/keys = {
|
||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [true]
|
"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"]
|
[sub_resource type="Animation" id="Animation_k667j"]
|
||||||
resource_name = "loading_menu"
|
resource_name = "loading_menu"
|
||||||
|
|
@ -670,6 +805,42 @@ tracks/5/keys = {
|
||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [true]
|
"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"]
|
[sub_resource type="Animation" id="Animation_s5m6i"]
|
||||||
resource_name = "reveal_pause_menu"
|
resource_name = "reveal_pause_menu"
|
||||||
|
|
@ -736,7 +907,7 @@ tracks/4/keys = {
|
||||||
|
|
||||||
[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.5
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
|
|
@ -761,6 +932,18 @@ tracks/1/keys = {
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Color(1, 1, 1, 0)]
|
"values": [Color(1, 1, 1, 0)]
|
||||||
}
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("%Main Menu: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"]
|
[sub_resource type="Animation" id="Animation_hv4pr"]
|
||||||
resource_name = "transition_load_game"
|
resource_name = "transition_load_game"
|
||||||
|
|
@ -950,7 +1133,7 @@ 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(698, 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"), "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")]
|
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(-596.25, -100.734)
|
graph_offset = Vector2(-524.25, -260.734)
|
||||||
|
|
||||||
[sub_resource type="Shader" id="Shader_cegan"]
|
[sub_resource type="Shader" id="Shader_cegan"]
|
||||||
code = "shader_type canvas_item;
|
code = "shader_type canvas_item;
|
||||||
|
|
@ -1018,63 +1201,27 @@ fill_to = Vector2(1.3, -0.3)
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_0odxb"]
|
[sub_resource type="Resource" id="Resource_0odxb"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
script = ExtResource("13_cegan")
|
script = ExtResource("14_cegan")
|
||||||
font_size = 2.285
|
|
||||||
is_bold = false
|
|
||||||
is_italic = false
|
|
||||||
is_underlined = false
|
|
||||||
override_font_color = false
|
|
||||||
font_color = Color(1, 1, 1, 1)
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_lswn8"]
|
[sub_resource type="Resource" id="Resource_lswn8"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
script = ExtResource("14_82xsv")
|
script = ExtResource("15_82xsv")
|
||||||
font_size = 1.714
|
|
||||||
is_bold = false
|
|
||||||
is_italic = false
|
|
||||||
is_underlined = false
|
|
||||||
override_font_color = false
|
|
||||||
font_color = Color(1, 1, 1, 1)
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_a6jrf"]
|
[sub_resource type="Resource" id="Resource_a6jrf"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
script = ExtResource("15_getpj")
|
script = ExtResource("16_getpj")
|
||||||
font_size = 1.428
|
|
||||||
is_bold = false
|
|
||||||
is_italic = false
|
|
||||||
is_underlined = false
|
|
||||||
override_font_color = false
|
|
||||||
font_color = Color(1, 1, 1, 1)
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_xuqvo"]
|
[sub_resource type="Resource" id="Resource_xuqvo"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
script = ExtResource("16_ryguw")
|
script = ExtResource("17_ryguw")
|
||||||
font_size = 1.142
|
|
||||||
is_bold = false
|
|
||||||
is_italic = false
|
|
||||||
is_underlined = false
|
|
||||||
override_font_color = false
|
|
||||||
font_color = Color(1, 1, 1, 1)
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_qsp4k"]
|
[sub_resource type="Resource" id="Resource_qsp4k"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
script = ExtResource("17_d13ii")
|
script = ExtResource("18_d13ii")
|
||||||
font_size = 1.0
|
|
||||||
is_bold = false
|
|
||||||
is_italic = false
|
|
||||||
is_underlined = false
|
|
||||||
override_font_color = false
|
|
||||||
font_color = Color(1, 1, 1, 1)
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_kq58d"]
|
[sub_resource type="Resource" id="Resource_kq58d"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
script = ExtResource("18_1u8w0")
|
script = ExtResource("19_1u8w0")
|
||||||
font_size = 0.857
|
|
||||||
is_bold = false
|
|
||||||
is_italic = false
|
|
||||||
is_underlined = false
|
|
||||||
override_font_color = false
|
|
||||||
font_color = Color(1, 1, 1, 1)
|
|
||||||
|
|
||||||
[node name="main" type="Node3D"]
|
[node name="main" type="Node3D"]
|
||||||
process_mode = 3
|
process_mode = 3
|
||||||
|
|
@ -1131,6 +1278,16 @@ modulate = Color(1, 1, 1, 0)
|
||||||
rotation = -0.314159
|
rotation = -0.314159
|
||||||
texture = ExtResource("7_koraw")
|
texture = ExtResource("7_koraw")
|
||||||
|
|
||||||
|
[node name="LoadingLabel" type="Label" parent="Control"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 100.0
|
||||||
|
offset_top = -37.0
|
||||||
|
offset_right = 239.99991
|
||||||
|
offset_bottom = 9.0
|
||||||
|
text = "loading"
|
||||||
|
script = SubResource("GDScript_cegan")
|
||||||
|
|
||||||
[node name="MenuAnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="MenuAnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
root_node = NodePath("../Control/mask")
|
root_node = NodePath("../Control/mask")
|
||||||
|
|
@ -1142,6 +1299,9 @@ autoplay = "init"
|
||||||
[node name="MenuAnimationTree" type="AnimationTree" parent="MenuAnimationPlayer"]
|
[node name="MenuAnimationTree" type="AnimationTree" parent="MenuAnimationPlayer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
root_node = NodePath("%MenuAnimationPlayer/../Control/mask")
|
root_node = NodePath("%MenuAnimationPlayer/../Control/mask")
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_ogbs1")
|
||||||
|
}
|
||||||
tree_root = SubResource("AnimationNodeStateMachine_uwcb5")
|
tree_root = SubResource("AnimationNodeStateMachine_uwcb5")
|
||||||
anim_player = NodePath("..")
|
anim_player = NodePath("..")
|
||||||
parameters/conditions/load_save = false
|
parameters/conditions/load_save = false
|
||||||
|
|
@ -1232,245 +1392,15 @@ visible = false
|
||||||
modulate = Color(1, 1, 1, 0)
|
modulate = Color(1, 1, 1, 0)
|
||||||
offset_top = 220.0
|
offset_top = 220.0
|
||||||
offset_right = 1926.0
|
offset_right = 1926.0
|
||||||
offset_bottom = 4392.0
|
offset_bottom = 5260.0
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
text = "[center]
|
|
||||||
[img=512]res://logic-scenes/main menu/logo.png[/img]
|
|
||||||
[img][/img]
|
|
||||||
[font_size=27]is[/font_size]
|
|
||||||
[font_size=36]made by betalars[/font_size]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
published by
|
|
||||||
[font_size=27]Purple Sloth Game Collective[/font_size]
|
|
||||||
|
|
||||||
produced with the help of
|
|
||||||
[font_size=27]Vu Dieu Linh @ polynormal games[/font_size]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[font_size=22]Contributers[/font_size]
|
|
||||||
[font_size=18]Programming[/font_size]
|
|
||||||
Adrian Schmid
|
|
||||||
Nek0
|
|
||||||
AprilThePink
|
|
||||||
and somebody that I used to know
|
|
||||||
|
|
||||||
[font_size=18]Voice Acting[/font_size]
|
|
||||||
Jas Arianna
|
|
||||||
Sarosenna
|
|
||||||
|
|
||||||
[font_size=18]Soundtrack[/font_size]
|
|
||||||
STTLE
|
|
||||||
|
|
||||||
|
|
||||||
[font_size=22]Frame of Mind was created in Godot 4.[/font_size]
|
|
||||||
|
|
||||||
[font_size=18]Special thanks to my friends and allies:[/font_size]
|
|
||||||
caesey, Nase, Jenny, map-c, Svenja, Milo, Francis, Christoph, Johanna, Friedrich Lüder
|
|
||||||
|
|
||||||
[font_size=18]Thanks to the Contributers of:[/font_size]
|
|
||||||
blender
|
|
||||||
inkscape
|
|
||||||
ghostwriter
|
|
||||||
hedgedoc
|
|
||||||
gitea
|
|
||||||
Godot Steam
|
|
||||||
MarkdownLabel
|
|
||||||
Jovian-NixOS
|
|
||||||
LibreOffice
|
|
||||||
|
|
||||||
[font_size=18]Thanks to these Community Members[/font_size]
|
|
||||||
Maxi, iFire
|
|
||||||
[font_size=27]Creative Commons Assets[/font_size]
|
|
||||||
|
|
||||||
[font_size=22]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=22]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=22]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=22]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=22]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=27]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=22]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=27]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\""
|
|
||||||
fit_content = true
|
fit_content = true
|
||||||
script = ExtResource("12_074og")
|
script = ExtResource("12_074og")
|
||||||
markdown_text = "[center]
|
|
||||||
[img=512]res://logic-scenes/main menu/logo.png[/img]
|
|
||||||
![This is an image]()
|
|
||||||
## 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
|
|
||||||
Sarosenna
|
|
||||||
|
|
||||||
#### 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\""
|
|
||||||
h1 = SubResource("Resource_0odxb")
|
h1 = SubResource("Resource_0odxb")
|
||||||
h2 = SubResource("Resource_lswn8")
|
h2 = SubResource("Resource_lswn8")
|
||||||
h3 = SubResource("Resource_a6jrf")
|
h3 = SubResource("Resource_a6jrf")
|
||||||
h4 = SubResource("Resource_xuqvo")
|
h4 = SubResource("Resource_xuqvo")
|
||||||
h5 = SubResource("Resource_qsp4k")
|
h5 = SubResource("Resource_qsp4k")
|
||||||
h6 = SubResource("Resource_kq58d")
|
h6 = SubResource("Resource_kq58d")
|
||||||
metadata/_custom_type_script = "uid://dr7xhgd53cvmf"
|
|
||||||
|
|
||||||
[connection signal="on_read" from="Disclaimer" to="Startup Menu" method="starting"]
|
[connection signal="on_read" from="Disclaimer" to="Startup Menu" method="starting"]
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,18 @@
|
||||||
[gd_scene load_steps=18 format=3 uid="uid://b51wdql4mby47"]
|
[gd_scene load_steps=22 format=3 uid="uid://b51wdql4mby47"]
|
||||||
|
|
||||||
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/handwriting.theme" id="1_2dg4n"]
|
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/handwriting.theme" id="1_2dg4n"]
|
||||||
[ext_resource type="Script" uid="uid://c3o65t2rwpbtn" path="res://logic-scenes/main menu/main_menu.gd" id="2_rm576"]
|
[ext_resource type="Script" uid="uid://c3o65t2rwpbtn" path="res://logic-scenes/main menu/main_menu.gd" id="2_rm576"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dedg31cqac3n0" path="res://import/interface-elements/frame-of-mind-logo.png" id="3_cm266"]
|
||||||
[ext_resource type="PackedScene" uid="uid://gmxenhavh1lp" path="res://logic-scenes/main menu/video_settings.tscn" id="3_f0dcd"]
|
[ext_resource type="PackedScene" uid="uid://gmxenhavh1lp" path="res://logic-scenes/main menu/video_settings.tscn" id="3_f0dcd"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d3ewjumh0b0g6" path="res://logic-scenes/main menu/logo.png" id="3_xb2np"]
|
[ext_resource type="Texture2D" uid="uid://bu6o68w763512" path="res://import/interface-elements/game-of-thoughts.png" id="4_g8g3n"]
|
||||||
|
[ext_resource type="Script" uid="uid://cxton1pffwxk4" path="res://button_themer.gd" id="4_iotk1"]
|
||||||
[ext_resource type="Script" uid="uid://sa15wakvpj2e" path="res://dev-util/bug_button.gd" id="4_j5v2v"]
|
[ext_resource type="Script" uid="uid://sa15wakvpj2e" path="res://dev-util/bug_button.gd" id="4_j5v2v"]
|
||||||
[ext_resource type="Script" uid="uid://byiih47fi6740" path="res://dev-util/settings_popup.gd" id="4_k8jo0"]
|
[ext_resource type="Script" uid="uid://byiih47fi6740" path="res://dev-util/settings_popup.gd" id="4_k8jo0"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dfhkfocy8axb8" path="res://logic-scenes/main menu/audio_settings.tscn" id="4_o07mg"]
|
[ext_resource type="PackedScene" uid="uid://dfhkfocy8axb8" path="res://logic-scenes/main menu/audio_settings.tscn" id="4_o07mg"]
|
||||||
|
[ext_resource type="Script" uid="uid://dqq0wq3dvbnjs" path="res://dev-util/i18n_texture_rect.gd" id="5_8u0te"]
|
||||||
[ext_resource type="Script" uid="uid://0tb763w0vfv7" path="res://tab_container.gd" id="5_lhfti"]
|
[ext_resource type="Script" uid="uid://0tb763w0vfv7" path="res://tab_container.gd" id="5_lhfti"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b3wlecqvelh22" path="res://logic-scenes/main menu/acessability_settings.tscn" id="6_875a3"]
|
[ext_resource type="PackedScene" uid="uid://b3wlecqvelh22" path="res://logic-scenes/main menu/acessability_settings.tscn" id="6_875a3"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bv1o2xo71wvp6" path="res://import/interface-elements/gedanken-spiel.png" id="6_g8g3n"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dxwqkxq6qjk7i" path="res://logic-scenes/main menu/gameplay_settings.tscn" id="6_p7ypt"]
|
[ext_resource type="PackedScene" uid="uid://dxwqkxq6qjk7i" path="res://logic-scenes/main menu/gameplay_settings.tscn" id="6_p7ypt"]
|
||||||
[ext_resource type="PackedScene" uid="uid://chal0ioagspx0" path="res://logic-scenes/main menu/content_settings.tscn" id="7_pnd48"]
|
[ext_resource type="PackedScene" uid="uid://chal0ioagspx0" path="res://logic-scenes/main menu/content_settings.tscn" id="7_pnd48"]
|
||||||
[ext_resource type="Script" uid="uid://dugfwcvp7i01k" path="res://logic-scenes/main menu/save_game_list.gd" id="8_o0cpj"]
|
[ext_resource type="Script" uid="uid://dugfwcvp7i01k" path="res://logic-scenes/main menu/save_game_list.gd" id="8_o0cpj"]
|
||||||
|
|
@ -261,19 +265,36 @@ script = ExtResource("2_rm576")
|
||||||
|
|
||||||
[node name="TextureRect" type="TextureRect" parent="."]
|
[node name="TextureRect" type="TextureRect" parent="."]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = -1
|
anchors_preset = 1
|
||||||
anchor_left = 1.0
|
anchor_left = 1.0
|
||||||
anchor_top = 1.0
|
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
offset_left = -371.0
|
||||||
offset_left = -437.0
|
offset_top = -49.0
|
||||||
offset_top = -434.0
|
offset_right = 653.0
|
||||||
offset_right = 587.0
|
offset_bottom = 975.0
|
||||||
offset_bottom = 590.0
|
|
||||||
grow_horizontal = 0
|
grow_horizontal = 0
|
||||||
grow_vertical = 0
|
|
||||||
scale = Vector2(0.4, 0.4)
|
scale = Vector2(0.4, 0.4)
|
||||||
texture = ExtResource("3_xb2np")
|
texture = ExtResource("3_cm266")
|
||||||
|
|
||||||
|
[node name="TextureRect2" type="TextureRect" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 1
|
||||||
|
anchor_left = 1.0
|
||||||
|
anchor_right = 1.0
|
||||||
|
offset_left = -658.0
|
||||||
|
offset_top = 31.0
|
||||||
|
offset_right = 97.0
|
||||||
|
offset_bottom = 420.99997
|
||||||
|
grow_horizontal = 0
|
||||||
|
scale = Vector2(0.4, 0.4)
|
||||||
|
texture = ExtResource("4_g8g3n")
|
||||||
|
expand_mode = 2
|
||||||
|
stretch_mode = 4
|
||||||
|
script = ExtResource("5_8u0te")
|
||||||
|
textures = Dictionary[String, Texture]({
|
||||||
|
"de": ExtResource("6_g8g3n"),
|
||||||
|
"en": ExtResource("4_g8g3n")
|
||||||
|
})
|
||||||
|
|
||||||
[node name="PanelContainer" type="VBoxContainer" parent="."]
|
[node name="PanelContainer" type="VBoxContainer" parent="."]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
|
@ -282,83 +303,94 @@ offset_top = 70.0
|
||||||
offset_right = 319.0
|
offset_right = 319.0
|
||||||
offset_bottom = 270.0
|
offset_bottom = 270.0
|
||||||
|
|
||||||
[node name="NewGameButton" type="Button" parent="PanelContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
text = "new Game"
|
|
||||||
|
|
||||||
[node name="ContinueGameButton" type="Button" parent="PanelContainer"]
|
[node name="ContinueGameButton" type="Button" parent="PanelContainer"]
|
||||||
|
clip_contents = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "continue"
|
size_flags_horizontal = 0
|
||||||
|
theme_type_variation = &"H1Button"
|
||||||
|
text = "menu_continue"
|
||||||
|
script = ExtResource("4_iotk1")
|
||||||
|
metadata/_custom_type_script = "uid://cxton1pffwxk4"
|
||||||
|
|
||||||
|
[node name="NewGameButton" type="Button" parent="PanelContainer"]
|
||||||
|
clip_contents = true
|
||||||
|
layout_mode = 2
|
||||||
|
text = "menu_new_game"
|
||||||
|
alignment = 0
|
||||||
|
script = ExtResource("4_iotk1")
|
||||||
|
metadata/_custom_type_script = "uid://cxton1pffwxk4"
|
||||||
|
|
||||||
[node name="LoadGameButton" type="Button" parent="PanelContainer"]
|
[node name="LoadGameButton" type="Button" parent="PanelContainer"]
|
||||||
|
clip_contents = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "load"
|
text = "menu_load"
|
||||||
|
alignment = 0
|
||||||
|
script = ExtResource("4_iotk1")
|
||||||
|
metadata/_custom_type_script = "uid://cxton1pffwxk4"
|
||||||
|
|
||||||
[node name="SettingsButton" type="MenuButton" parent="PanelContainer"]
|
[node name="SettingsButton" type="Button" parent="PanelContainer"]
|
||||||
|
clip_contents = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "settings"
|
text = "menu_open_settings"
|
||||||
flat = false
|
alignment = 0
|
||||||
item_count = 5
|
script = ExtResource("4_iotk1")
|
||||||
popup/item_0/text = "Accessibility"
|
metadata/_custom_type_script = "uid://cxton1pffwxk4"
|
||||||
popup/item_0/id = 0
|
|
||||||
popup/item_1/text = "Video"
|
|
||||||
popup/item_1/id = 1
|
|
||||||
popup/item_2/text = "Audio"
|
|
||||||
popup/item_2/id = 2
|
|
||||||
popup/item_3/text = "Gameplay"
|
|
||||||
popup/item_3/id = 3
|
|
||||||
popup/item_4/text = "Content Notes"
|
|
||||||
popup/item_4/id = 4
|
|
||||||
|
|
||||||
[node name="CreditsButton" type="Button" parent="PanelContainer"]
|
[node name="CreditsButton" type="Button" parent="PanelContainer"]
|
||||||
|
clip_contents = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
tooltip_text = "Plays the Game Credits"
|
tooltip_text = "Plays the Game Credits"
|
||||||
text = "Attribution"
|
text = "Attribution"
|
||||||
|
alignment = 0
|
||||||
|
script = ExtResource("4_iotk1")
|
||||||
|
metadata/_custom_type_script = "uid://cxton1pffwxk4"
|
||||||
|
|
||||||
[node name="BugButton" type="Button" parent="PanelContainer"]
|
[node name="BugButton" type="Button" parent="PanelContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "BugButton"
|
text = "BugButton"
|
||||||
|
alignment = 0
|
||||||
script = ExtResource("4_j5v2v")
|
script = ExtResource("4_j5v2v")
|
||||||
metadata/_custom_type_script = "uid://sa15wakvpj2e"
|
metadata/_custom_type_script = "uid://sa15wakvpj2e"
|
||||||
|
|
||||||
[node name="QuitButton" type="Button" parent="PanelContainer"]
|
[node name="QuitButton" type="Button" parent="PanelContainer"]
|
||||||
|
clip_contents = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "quit"
|
text = "quit"
|
||||||
|
alignment = 0
|
||||||
|
script = ExtResource("4_iotk1")
|
||||||
|
metadata/_custom_type_script = "uid://cxton1pffwxk4"
|
||||||
|
|
||||||
[node name="SettingsPopup" type="PanelContainer" parent="."]
|
[node name="CenterContainer2" type="CenterContainer" parent="."]
|
||||||
|
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="SettingsPopup" type="PanelContainer" parent="CenterContainer2"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
self_modulate = Color(1, 1, 1, 0)
|
self_modulate = Color(1, 1, 1, 0)
|
||||||
layout_mode = 1
|
layout_mode = 2
|
||||||
anchors_preset = 8
|
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_right = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
offset_left = -474.0
|
|
||||||
offset_top = -438.0
|
|
||||||
offset_right = 293.0
|
|
||||||
offset_bottom = 335.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
scale = Vector2(1, 0.57)
|
|
||||||
script = ExtResource("4_k8jo0")
|
script = ExtResource("4_k8jo0")
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="SettingsPopup"]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="CenterContainer2/SettingsPopup"]
|
||||||
root_node = NodePath("../TabContainer/Video Settings")
|
root_node = NodePath("../TabContainer/Video Settings")
|
||||||
libraries = {
|
libraries = {
|
||||||
&"": SubResource("AnimationLibrary_lmxul")
|
&"": SubResource("AnimationLibrary_lmxul")
|
||||||
}
|
}
|
||||||
autoplay = "RESET"
|
autoplay = "RESET"
|
||||||
|
|
||||||
[node name="Decoration" type="Control" parent="SettingsPopup"]
|
[node name="Decoration" type="Control" parent="CenterContainer2/SettingsPopup"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
|
|
||||||
[node name="decoration" type="PanelContainer" parent="SettingsPopup/Decoration"]
|
[node name="decoration" type="PanelContainer" parent="CenterContainer2/SettingsPopup/Decoration"]
|
||||||
modulate = Color(1, 1, 1, 0)
|
modulate = Color(1, 1, 1, 0)
|
||||||
layout_mode = 2
|
layout_mode = 0
|
||||||
offset_left = -374.0
|
offset_left = -374.0
|
||||||
offset_top = -378.5
|
offset_top = -378.5
|
||||||
offset_right = 365.0
|
offset_right = 365.0
|
||||||
|
|
@ -368,41 +400,77 @@ grow_vertical = 2
|
||||||
rotation = 1.26885
|
rotation = 1.26885
|
||||||
pivot_offset = Vector2(374, 378.5)
|
pivot_offset = Vector2(374, 378.5)
|
||||||
|
|
||||||
[node name="TabContainer" type="TabContainer" parent="SettingsPopup"]
|
[node name="TabContainer" type="TabContainer" parent="CenterContainer2/SettingsPopup"]
|
||||||
modulate = Color(1, 1, 1, 0)
|
modulate = Color(1, 1, 1, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
current_tab = 2
|
current_tab = 4
|
||||||
use_hidden_tabs_for_min_size = true
|
use_hidden_tabs_for_min_size = true
|
||||||
script = ExtResource("5_lhfti")
|
script = ExtResource("5_lhfti")
|
||||||
|
|
||||||
[node name="Accessibility" parent="SettingsPopup/TabContainer" instance=ExtResource("6_875a3")]
|
[node name="Accessibility" parent="CenterContainer2/SettingsPopup/TabContainer" instance=ExtResource("6_875a3")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="Video Settings" parent="SettingsPopup/TabContainer" instance=ExtResource("3_f0dcd")]
|
[node name="Video Settings" parent="CenterContainer2/SettingsPopup/TabContainer" instance=ExtResource("3_f0dcd")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
metadata/_tab_index = 1
|
metadata/_tab_index = 1
|
||||||
|
|
||||||
[node name="Audio Settings" parent="SettingsPopup/TabContainer" instance=ExtResource("4_o07mg")]
|
[node name="Audio Settings" parent="CenterContainer2/SettingsPopup/TabContainer" instance=ExtResource("4_o07mg")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
metadata/_tab_index = 2
|
metadata/_tab_index = 2
|
||||||
|
|
||||||
[node name="Gameplay Settings" parent="SettingsPopup/TabContainer" instance=ExtResource("6_p7ypt")]
|
[node name="Gameplay Settings" parent="CenterContainer2/SettingsPopup/TabContainer" instance=ExtResource("6_p7ypt")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
metadata/_tab_index = 3
|
metadata/_tab_index = 3
|
||||||
|
|
||||||
[node name="Content Notes" parent="SettingsPopup/TabContainer" instance=ExtResource("7_pnd48")]
|
[node name="Content Notes" parent="CenterContainer2/SettingsPopup/TabContainer" instance=ExtResource("7_pnd48")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
visible = false
|
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
metadata/_tab_index = 4
|
metadata/_tab_index = 4
|
||||||
|
|
||||||
|
[node name="Popup" type="Popup" parent="CenterContainer2"]
|
||||||
|
oversampling_override = 1.0
|
||||||
|
initial_position = 2
|
||||||
|
size = Vector2i(879, 132)
|
||||||
|
visible = true
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer2/Popup"]
|
||||||
|
offset_left = 113.0
|
||||||
|
offset_right = 153.0
|
||||||
|
offset_bottom = 40.0
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="CenterContainer2/Popup/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Settings have been modified.
|
||||||
|
Do you really want to leave without saving?"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer2/Popup/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="ConfirmExit" type="Button" parent="CenterContainer2/Popup/VBoxContainer/HBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
text = "leave"
|
||||||
|
|
||||||
|
[node name="ConfirmSave" type="Button" parent="CenterContainer2/Popup/VBoxContainer/HBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
text = "save"
|
||||||
|
|
||||||
|
[node name="ConfirmAbort" type="Button" parent="CenterContainer2/Popup/VBoxContainer/HBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
text = "abort"
|
||||||
|
|
||||||
[node name="SaveGameHandle" type="CenterContainer" parent="."]
|
[node name="SaveGameHandle" type="CenterContainer" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ config_version=5
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="Frame of Mind"
|
config/name="Frame of Mind"
|
||||||
run/main_scene="uid://cd63barv73rfx"
|
run/main_scene="uid://befxf8uruwnrl"
|
||||||
config/use_custom_user_dir=true
|
config/use_custom_user_dir=true
|
||||||
config/features=PackedStringArray("4.5", "Forward Plus")
|
config/features=PackedStringArray("4.5", "Forward Plus")
|
||||||
boot_splash/bg_color=Color(0.0313726, 0.0117647, 0.129412, 1)
|
boot_splash/bg_color=Color(0.0313726, 0.0117647, 0.129412, 1)
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ var settings_initialised
|
||||||
screen_reader_enabled = value
|
screen_reader_enabled = value
|
||||||
if settings_initialised:
|
if settings_initialised:
|
||||||
settings_changed.emit()
|
settings_changed.emit()
|
||||||
|
|
||||||
@export var rendering_disabled: bool = false:
|
@export var rendering_disabled: bool = false:
|
||||||
set(value):
|
set(value):
|
||||||
rendering_disabled = value
|
rendering_disabled = value
|
||||||
|
|
@ -54,7 +55,8 @@ var settings_initialised
|
||||||
@export var ui_scaling: float = 1:
|
@export var ui_scaling: float = 1:
|
||||||
set(value):
|
set(value):
|
||||||
ui_scaling = value
|
ui_scaling = value
|
||||||
ProjectSettings.set_setting("gui/theme/default_theme_scale", value)
|
ProjectSettings.set_setting("display/window/stretch/scale", value)
|
||||||
|
get_tree().root.content_scale_factor = value
|
||||||
@export var show_content_notes: bool = false:
|
@export var show_content_notes: bool = false:
|
||||||
set(value):
|
set(value):
|
||||||
show_content_notes = value
|
show_content_notes = value
|
||||||
|
|
@ -128,8 +130,10 @@ var current_main_theme:Theme = preload("res://logic-scenes/themes/handwriting.th
|
||||||
speech_language = value
|
speech_language = value
|
||||||
|
|
||||||
@export_group("Gameplay Settings")
|
@export_group("Gameplay Settings")
|
||||||
@export var input_sensitivity: float
|
@export var input_sensitivity: float = 1.0
|
||||||
@export var inverty_y_axis: bool
|
@export var fov: float = 35.0
|
||||||
|
@export var inverty_y_axis: bool = false
|
||||||
|
@export var inverty_y_mouse: bool = false
|
||||||
@export_enum("off", "top_left", "top_right", "bottom_left", "bottom_right") var stream_overlay_position: int
|
@export_enum("off", "top_left", "top_right", "bottom_left", "bottom_right") var stream_overlay_position: int
|
||||||
|
|
||||||
# for passing VFX settings not contained by project settings to scene environemnt
|
# for passing VFX settings not contained by project settings to scene environemnt
|
||||||
|
|
@ -200,6 +204,8 @@ func save_settings():
|
||||||
"gameplay": {
|
"gameplay": {
|
||||||
"input_sensitivity": input_sensitivity,
|
"input_sensitivity": input_sensitivity,
|
||||||
"inverty_y_axis": inverty_y_axis,
|
"inverty_y_axis": inverty_y_axis,
|
||||||
|
"inverty_y_mouse": inverty_y_mouse,
|
||||||
|
"fov": fov,
|
||||||
"stream_overlay_position": stream_overlay_position
|
"stream_overlay_position": stream_overlay_position
|
||||||
},
|
},
|
||||||
"privacy": {
|
"privacy": {
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ var pass_to_actor
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
for child in get_children():
|
for child in get_children():
|
||||||
if "leave_stage" in child:
|
if "leave_stage" in child:
|
||||||
child.leave_stage.connect(get_parent().vanish)
|
child.leave_stage.connect(_on_stage_left)
|
||||||
tab_changed.connect(_on_tab_changed)
|
tab_changed.connect(_on_tab_changed)
|
||||||
pass_to_actor = get_child(current_tab)
|
pass_to_actor = get_child(current_tab)
|
||||||
|
|
||||||
|
|
@ -19,3 +19,15 @@ func _on_tab_changed(tab_id: int):
|
||||||
State.pass_stage_to(get_child(tab_id))
|
State.pass_stage_to(get_child(tab_id))
|
||||||
|
|
||||||
pass_to_actor = get_child(tab_id)
|
pass_to_actor = get_child(tab_id)
|
||||||
|
|
||||||
|
func _on_stage_left():
|
||||||
|
await get_tree().process_frame
|
||||||
|
if not pass_to_actor.has_stage:
|
||||||
|
var unsaved := false
|
||||||
|
for child in get_children():
|
||||||
|
if child.has_unsaved_changes:
|
||||||
|
unsaved = true
|
||||||
|
if unsaved:
|
||||||
|
get_parent().vanish()
|
||||||
|
else:
|
||||||
|
get_parent().ask_confirmation()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue