Dialogue system; ask user if they want to teleport to next floor

This commit is contained in:
2024-09-08 23:04:27 -07:00
parent 1dfc61f003
commit 07295da93c
61 changed files with 3002 additions and 85 deletions

View File

@@ -0,0 +1,112 @@
[gd_scene load_steps=12 format=3 uid="uid://73jm5qjy52vq"]
[ext_resource type="Script" path="res://src/ui/dialogue/DialogueBalloon.cs" id="1_36de5"]
[ext_resource type="PackedScene" uid="uid://ckvgyvclnwggo" path="res://addons/dialogue_manager/dialogue_label.tscn" id="2_a8ve6"]
[ext_resource type="FontFile" uid="uid://cb41qqmxqurj8" path="res://src/ui/fonts/FT88-Bold.ttf" id="2_fn8n4"]
[ext_resource type="Script" path="res://addons/dialogue_manager/dialogue_reponses_menu.gd" id="3_72ixx"]
[ext_resource type="Script" path="res://src/ui/dialogue/ResponseExample.cs" id="5_0xrfp"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_hrxr4"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1f7pn"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_kknbg"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_osqma"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_sb66p"]
[sub_resource type="Theme" id="Theme_qq3yp"]
default_font = ExtResource("2_fn8n4")
default_font_size = 20
Button/styles/disabled = SubResource("StyleBoxEmpty_hrxr4")
Button/styles/focus = SubResource("StyleBoxEmpty_1f7pn")
Button/styles/hover = SubResource("StyleBoxEmpty_kknbg")
Button/styles/normal = SubResource("StyleBoxEmpty_osqma")
MarginContainer/constants/margin_bottom = 15
MarginContainer/constants/margin_left = 30
MarginContainer/constants/margin_right = 30
MarginContainer/constants/margin_top = 15
Panel/styles/panel = SubResource("StyleBoxEmpty_sb66p")
[node name="ExampleBalloon" type="CanvasLayer"]
layer = 100
script = ExtResource("1_36de5")
[node name="Balloon" type="Control" parent="."]
unique_name_in_owner = true
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = SubResource("Theme_qq3yp")
[node name="Panel" type="Panel" parent="Balloon"]
clip_children = 2
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 21.0
offset_top = -183.0
offset_right = -19.0
offset_bottom = -19.0
grow_horizontal = 2
grow_vertical = 0
[node name="Dialogue" type="MarginContainer" parent="Balloon/Panel"]
layout_mode = 2
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="Balloon/Panel/Dialogue"]
layout_mode = 2
[node name="CharacterLabel" type="RichTextLabel" parent="Balloon/Panel/Dialogue/VBoxContainer"]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0.501961)
layout_mode = 2
mouse_filter = 1
bbcode_enabled = true
text = "Character"
fit_content = true
scroll_active = false
[node name="DialogueLabel" parent="Balloon/Panel/Dialogue/VBoxContainer" instance=ExtResource("2_a8ve6")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
text = "Dialogue..."
[node name="Responses" type="CenterContainer" parent="Balloon"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="ResponsesMenu" type="VBoxContainer" parent="Balloon/Responses" node_paths=PackedStringArray("response_template")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 8
theme_override_constants/separation = 2
script = ExtResource("3_72ixx")
response_template = NodePath("ResponseExample")
[node name="ResponseExample" type="Button" parent="Balloon/Responses/ResponsesMenu"]
layout_mode = 2
text = "Response example"
script = ExtResource("5_0xrfp")
[node name="ResponseExample2" type="Button" parent="Balloon/Responses/ResponsesMenu"]
layout_mode = 2
text = "Response example"
[connection signal="gui_input" from="Balloon" to="." method="_on_balloon_gui_input"]
[connection signal="response_selected" from="Balloon/Responses/ResponsesMenu" to="." method="_on_responses_menu_response_selected"]

View File

@@ -0,0 +1,219 @@
using Godot;
using Godot.Collections;
namespace DialogueManagerRuntime
{
public partial class DialogueBalloon : CanvasLayer
{
[Export] public string NextAction = "ui_accept";
[Export] public string SkipAction = "ui_cancel";
Control balloon;
RichTextLabel characterLabel;
RichTextLabel dialogueLabel;
VBoxContainer responsesMenu;
Resource resource;
Array<Variant> temporaryGameStates = new Array<Variant>();
bool isWaitingForInput = false;
bool willHideBalloon = false;
DialogueLine dialogueLine;
DialogueLine DialogueLine
{
get => dialogueLine;
set
{
isWaitingForInput = false;
balloon.FocusMode = Control.FocusModeEnum.All;
balloon.GrabFocus();
if (value == null)
{
QueueFree();
return;
}
dialogueLine = value;
UpdateDialogue();
}
}
public override void _Ready()
{
balloon = GetNode<Control>("%Balloon");
characterLabel = GetNode<RichTextLabel>("%CharacterLabel");
dialogueLabel = GetNode<RichTextLabel>("%DialogueLabel");
responsesMenu = GetNode<VBoxContainer>("%ResponsesMenu");
balloon.Hide();
balloon.GuiInput += (@event) =>
{
if ((bool)dialogueLabel.Get("is_typing"))
{
bool mouseWasClicked = @event is InputEventMouseButton && (@event as InputEventMouseButton).ButtonIndex == MouseButton.Left && @event.IsPressed();
bool skipButtonWasPressed = @event.IsActionPressed(SkipAction);
if (mouseWasClicked || skipButtonWasPressed)
{
GetViewport().SetInputAsHandled();
dialogueLabel.Call("skip_typing");
return;
}
}
if (!isWaitingForInput) return;
if (dialogueLine.Responses.Count > 0) return;
GetViewport().SetInputAsHandled();
if (@event is InputEventMouseButton && @event.IsPressed() && (@event as InputEventMouseButton).ButtonIndex == MouseButton.Left)
{
Next(dialogueLine.NextId);
}
else if (@event.IsActionPressed(NextAction) && GetViewport().GuiGetFocusOwner() == balloon)
{
Next(dialogueLine.NextId);
}
};
if (string.IsNullOrEmpty((string)responsesMenu.Get("next_action")))
{
responsesMenu.Set("next_action", NextAction);
}
responsesMenu.Connect("response_selected", Callable.From((DialogueResponse response) =>
{
Next(response.NextId);
}));
DialogueManager.Mutated += OnMutated;
}
public override void _ExitTree()
{
DialogueManager.Mutated -= OnMutated;
}
public override void _UnhandledInput(InputEvent @event)
{
// Only the balloon is allowed to handle input while it's showing
GetViewport().SetInputAsHandled();
}
public override async void _Notification(int what)
{
// Detect a change of locale and update the current dialogue line to show the new language
if (what == NotificationTranslationChanged)
{
float visibleRatio = dialogueLabel.VisibleRatio;
DialogueLine = await DialogueManager.GetNextDialogueLine(resource, DialogueLine.Id, temporaryGameStates);
if (visibleRatio < 1.0f)
{
dialogueLabel.Call("skip_typing");
}
}
}
public async void Start(Resource dialogueResource, string title, Array<Variant> extraGameStates = null)
{
temporaryGameStates = extraGameStates ?? new Array<Variant>();
isWaitingForInput = false;
resource = dialogueResource;
DialogueLine = await DialogueManager.GetNextDialogueLine(resource, title, temporaryGameStates);
}
public async void Next(string nextId)
{
DialogueLine = await DialogueManager.GetNextDialogueLine(resource, nextId, temporaryGameStates);
}
#region Helpers
private async void UpdateDialogue()
{
if (!IsNodeReady())
{
await ToSignal(this, SignalName.Ready);
}
// Set up the character name
characterLabel.Visible = !string.IsNullOrEmpty(dialogueLine.Character);
characterLabel.Text = Tr(dialogueLine.Character, "dialogue");
// Set up the dialogue
dialogueLabel.Hide();
dialogueLabel.Set("dialogue_line", dialogueLine);
// Set up the responses
responsesMenu.Hide();
responsesMenu.Set("responses", dialogueLine.Responses);
// Type out the text
balloon.Show();
willHideBalloon = false;
dialogueLabel.Show();
if (!string.IsNullOrEmpty(dialogueLine.Text))
{
dialogueLabel.Call("type_out");
await ToSignal(dialogueLabel, "finished_typing");
}
// Wait for input
if (dialogueLine.Responses.Count > 0)
{
balloon.FocusMode = Control.FocusModeEnum.None;
responsesMenu.Show();
}
else if (!string.IsNullOrEmpty(dialogueLine.Time))
{
float time = 0f;
if (!float.TryParse(dialogueLine.Time, out time))
{
time = dialogueLine.Text.Length * 0.02f;
}
await ToSignal(GetTree().CreateTimer(time), "timeout");
Next(dialogueLine.NextId);
}
else
{
isWaitingForInput = true;
balloon.FocusMode = Control.FocusModeEnum.All;
balloon.GrabFocus();
}
}
#endregion
#region signals
private void OnMutated(Dictionary _mutation)
{
isWaitingForInput = false;
willHideBalloon = true;
GetTree().CreateTimer(0.1f).Timeout += () =>
{
if (willHideBalloon)
{
willHideBalloon = false;
balloon.Hide();
}
};
}
#endregion
}
}

View File

@@ -0,0 +1,174 @@
[gd_scene load_steps=20 format=3 uid="uid://drrynjlwqt8wi"]
[ext_resource type="Script" path="res://addons/dialogue_manager/example_balloon/ExampleBalloon.cs" id="1_okfmu"]
[ext_resource type="FontFile" uid="uid://dit3vylt7hmmx" path="res://src/ui/fonts/FT88-Regular.ttf" id="2_c4c1f"]
[ext_resource type="PackedScene" uid="uid://ckvgyvclnwggo" path="res://addons/dialogue_manager/dialogue_label.tscn" id="2_jm6sr"]
[ext_resource type="FontFile" uid="uid://cb41qqmxqurj8" path="res://src/ui/fonts/FT88-Bold.ttf" id="3_bc8ok"]
[ext_resource type="Script" path="res://addons/dialogue_manager/dialogue_reponses_menu.gd" id="3_yiii3"]
[ext_resource type="FontFile" uid="uid://bohbd123672ea" path="res://src/ui/fonts/FT88-Italic.ttf" id="5_2dxvx"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_spyqn"]
bg_color = Color(0, 0, 0, 0)
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color(0.329412, 0.329412, 0.329412, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ri4m3"]
bg_color = Color(0.121569, 0.121569, 0.121569, 0)
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color(1, 1, 1, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_e0njw"]
bg_color = Color(0, 0, 0, 0)
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color(0.6, 0.6, 0.6, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
expand_margin_left = 5.0
expand_margin_top = 5.0
expand_margin_right = 5.0
expand_margin_bottom = 5.0
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_uy0d5"]
bg_color = Color(0, 0, 0, 1)
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color(0.741176, 0.8, 0.737255, 0)
border_blend = true
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[sub_resource type="Theme" id="Theme_qq3yp"]
default_font = ExtResource("2_c4c1f")
default_font_size = 20
Button/styles/disabled = SubResource("StyleBoxFlat_spyqn")
Button/styles/focus = SubResource("StyleBoxFlat_ri4m3")
Button/styles/hover = SubResource("StyleBoxFlat_e0njw")
Button/styles/normal = SubResource("StyleBoxFlat_e0njw")
MarginContainer/constants/margin_bottom = 15
MarginContainer/constants/margin_left = 30
MarginContainer/constants/margin_right = 30
MarginContainer/constants/margin_top = 15
Panel/styles/panel = SubResource("StyleBoxFlat_uy0d5")
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_8reha"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cb5sp"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_0trte"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_yxgtq"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_vtj1a"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_c2c5i"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wv0ko"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_dboi3"]
[node name="DialogueBalloon" type="CanvasLayer"]
layer = 100
script = ExtResource("1_okfmu")
[node name="Balloon" type="Control" parent="."]
unique_name_in_owner = true
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = SubResource("Theme_qq3yp")
[node name="Dialogue" type="MarginContainer" parent="Balloon"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 21.0
offset_top = 897.0
offset_right = 21.0
offset_bottom = 897.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="Balloon/Dialogue"]
layout_mode = 2
[node name="CharacterLabel" type="RichTextLabel" parent="Balloon/Dialogue/VBoxContainer"]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0.501961)
layout_mode = 2
mouse_filter = 1
theme_override_colors/default_color = Color(0.737255, 0.705882, 0.690196, 1)
theme_override_fonts/normal_font = ExtResource("3_bc8ok")
theme_override_styles/fill = SubResource("StyleBoxEmpty_8reha")
theme_override_styles/background = SubResource("StyleBoxEmpty_cb5sp")
theme_override_styles/focus = SubResource("StyleBoxEmpty_0trte")
theme_override_styles/normal = SubResource("StyleBoxEmpty_yxgtq")
bbcode_enabled = true
text = "Character"
fit_content = true
scroll_active = false
[node name="DialogueLabel" parent="Balloon/Dialogue/VBoxContainer" instance=ExtResource("2_jm6sr")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/normal_font = ExtResource("2_c4c1f")
theme_override_fonts/italics_font = ExtResource("5_2dxvx")
theme_override_fonts/bold_font = ExtResource("3_bc8ok")
theme_override_styles/fill = SubResource("StyleBoxEmpty_vtj1a")
theme_override_styles/background = SubResource("StyleBoxEmpty_c2c5i")
theme_override_styles/focus = SubResource("StyleBoxEmpty_wv0ko")
theme_override_styles/normal = SubResource("StyleBoxEmpty_dboi3")
text = "Dialogue..."
[node name="CenterContainer" type="CenterContainer" parent="Balloon"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Responses" type="MarginContainer" parent="Balloon/CenterContainer"]
layout_mode = 2
[node name="ResponsesMenu" type="VBoxContainer" parent="Balloon/CenterContainer/Responses" node_paths=PackedStringArray("response_template")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 8
theme_override_constants/separation = 2
script = ExtResource("3_yiii3")
response_template = NodePath("ResponseExample")
[node name="ResponseExample" type="Button" parent="Balloon/CenterContainer/Responses/ResponsesMenu"]
layout_mode = 2
text = "Response example"
[connection signal="gui_input" from="Balloon" to="." method="_on_balloon_gui_input"]
[connection signal="response_selected" from="Balloon/CenterContainer/Responses/ResponsesMenu" to="." method="_on_responses_menu_response_selected"]

View File

@@ -0,0 +1,6 @@
~ floor_exit
Proceed to the next floor?
- Yes
do Exit()
- No
=> END

View File

@@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_12"
type="Resource"
uid="uid://6bhfbvi6jbms"
path="res://.godot/imported/FloorExit.dialogue-d2fbe7fb8dbc88a2f9b0dc79a5124041.tres"
[deps]
source_file="res://src/ui/dialogue/FloorExit.dialogue"
dest_files=["res://.godot/imported/FloorExit.dialogue-d2fbe7fb8dbc88a2f9b0dc79a5124041.tres"]
[params]
defaults=true

View File

@@ -0,0 +1,11 @@
using Godot;
using System;
public partial class ResponseExample : Button
{
public override void _Ready()
{
Set("theme_override_colors/font_color", new Color("bcb4b0"));
Set("theme_override_colors/font_focus_color", new Color("fff200"));
}
}

BIN
src/ui/fonts/FT88-Bold.ttf Normal file

Binary file not shown.

View File

@@ -0,0 +1,34 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://cb41qqmxqurj8"
path="res://.godot/imported/FT88-Bold.ttf-8048d5645d94ef79fb5ce0a2440ace77.fontdata"
[deps]
source_file="res://src/ui/fonts/FT88-Bold.ttf"
dest_files=["res://.godot/imported/FT88-Bold.ttf-8048d5645d94ef79fb5ce0a2440ace77.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

View File

@@ -0,0 +1,34 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://bohbd123672ea"
path="res://.godot/imported/FT88-Italic.ttf-60dc5d8522bbf018628773e8057dd0ca.fontdata"
[deps]
source_file="res://src/ui/fonts/FT88-Italic.ttf"
dest_files=["res://.godot/imported/FT88-Italic.ttf-60dc5d8522bbf018628773e8057dd0ca.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

View File

@@ -0,0 +1,34 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://dit3vylt7hmmx"
path="res://.godot/imported/FT88-Regular.ttf-0f2e9f2a66e4aa9c15dbcc62a912fdde.fontdata"
[deps]
source_file="res://src/ui/fonts/FT88-Regular.ttf"
dest_files=["res://.godot/imported/FT88-Regular.ttf-0f2e9f2a66e4aa9c15dbcc62a912fdde.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

BIN
src/ui/fonts/FT88-Serif.ttf Normal file

Binary file not shown.

View File

@@ -0,0 +1,34 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://q8uova06hnon"
path="res://.godot/imported/FT88-Serif.ttf-2107f72327313ffd9defb0a5e614fb14.fontdata"
[deps]
source_file="res://src/ui/fonts/FT88-Serif.ttf"
dest_files=["res://.godot/imported/FT88-Serif.ttf-2107f72327313ffd9defb0a5e614fb14.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

View File

@@ -0,0 +1,40 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://dp1k143v7cppw"
path="res://.godot/imported/Lust_Sans_Regular.otf-2d4d46b654c743da665ff51feb634231.fontdata"
[deps]
source_file="res://src/ui/fonts/Lust_Sans_Regular.otf"
dest_files=["res://.godot/imported/Lust_Sans_Regular.otf-2d4d46b654c743da665ff51feb634231.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=false
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=false
force_autohinter=false
hinting=0
subpixel_positioning=4
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=false
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0),
"variation_embolden": 0.0
}]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

View File

@@ -0,0 +1,40 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://cm8j5vcdop5x0"
path="res://.godot/imported/Mrs-Eaves-OT-Roman_31443.ttf-ec147a64c6637c23f1cc6429203e2cda.fontdata"
[deps]
source_file="res://src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf"
dest_files=["res://.godot/imported/Mrs-Eaves-OT-Roman_31443.ttf-ec147a64c6637c23f1cc6429203e2cda.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0),
"variation_embolden": 0.0
}]
language_support={}
script_support={}
opentype_features={}

View File

@@ -0,0 +1,8 @@
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://wc363u5t1yi2"]
[ext_resource type="FontFile" uid="uid://cm8j5vcdop5x0" path="res://src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf" id="1_olalj"]
[resource]
font = ExtResource("1_olalj")
font_size = 48
font_color = Color(0.737255, 0.705882, 0.690196, 1)

View File

@@ -0,0 +1,8 @@
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://dw0lfsckex1yx"]
[ext_resource type="FontFile" uid="uid://cm8j5vcdop5x0" path="res://src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf" id="1_amsqn"]
[resource]
font = ExtResource("1_amsqn")
font_size = 48
font_color = Color(0.439216, 0.415686, 0.407843, 1)

View File

@@ -0,0 +1,8 @@
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://ckvxvx2tiwttt"]
[ext_resource type="FontFile" uid="uid://cb41qqmxqurj8" path="res://src/ui/fonts/FT88-Bold.ttf" id="1_roceg"]
[resource]
font = ExtResource("1_roceg")
font_size = 36
font_color = Color(1, 0.94902, 0, 1)

View File

@@ -0,0 +1,8 @@
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://cuuo43x72xcsc"]
[ext_resource type="FontFile" uid="uid://cb41qqmxqurj8" path="res://src/ui/fonts/FT88-Bold.ttf" id="1_4xbcf"]
[resource]
font = ExtResource("1_4xbcf")
font_size = 36
font_color = Color(0.737255, 0.705882, 0.690196, 1)

View File

@@ -0,0 +1,8 @@
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://ur3wpe2kp2j2"]
[ext_resource type="FontFile" uid="uid://bohbd123672ea" path="res://src/ui/fonts/FT88-Italic.ttf" id="1_c4w2u"]
[resource]
font = ExtResource("1_c4w2u")
font_size = 36
font_color = Color(1, 0.94902, 0, 1)

View File

@@ -0,0 +1,7 @@
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://c4wbba5mo7qcp"]
[ext_resource type="FontFile" uid="uid://bohbd123672ea" path="res://src/ui/fonts/FT88-Italic.ttf" id="1_ofouc"]
[resource]
font = ExtResource("1_ofouc")
font_size = 36

View File

@@ -0,0 +1,8 @@
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://dupifadnagodp"]
[ext_resource type="FontFile" uid="uid://dit3vylt7hmmx" path="res://src/ui/fonts/FT88-Regular.ttf" id="1_u174r"]
[resource]
font = ExtResource("1_u174r")
font_size = 36
font_color = Color(0.737255, 0.705882, 0.690196, 1)

View File

@@ -0,0 +1,10 @@
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://dnkovn3xwbt0t"]
[ext_resource type="FontFile" uid="uid://dp1k143v7cppw" path="res://src/ui/fonts/Lust_Sans_Regular.otf" id="1_kbo40"]
[resource]
font = ExtResource("1_kbo40")
font_size = 128
font_color = Color(0.737255, 0.705882, 0.690196, 1)
shadow_size = 0
shadow_offset = Vector2(0, 0)

View File

@@ -0,0 +1,83 @@
[gd_scene load_steps=9 format=3 uid="uid://dxfbdk7lhdvus"]
[ext_resource type="LabelSettings" uid="uid://dnkovn3xwbt0t" path="res://src/ui/label_settings/TitleFont.tres" id="1_lt2oc"]
[ext_resource type="LabelSettings" uid="uid://wc363u5t1yi2" path="res://src/ui/label_settings/HeadingFont.tres" id="2_6orqu"]
[ext_resource type="LabelSettings" uid="uid://dupifadnagodp" path="res://src/ui/label_settings/MainTextRegular.tres" id="3_vgwwa"]
[ext_resource type="LabelSettings" uid="uid://dw0lfsckex1yx" path="res://src/ui/label_settings/HeadingFontUnselected.tres" id="3_wb0jr"]
[ext_resource type="LabelSettings" uid="uid://cuuo43x72xcsc" path="res://src/ui/label_settings/MainTextBold.tres" id="4_vds7k"]
[ext_resource type="LabelSettings" uid="uid://c4wbba5mo7qcp" path="res://src/ui/label_settings/MainTextFontItalicized.tres" id="6_8ni0v"]
[ext_resource type="LabelSettings" uid="uid://ur3wpe2kp2j2" path="res://src/ui/label_settings/MainTextFontEquipped.tres" id="7_o8qef"]
[ext_resource type="LabelSettings" uid="uid://ckvxvx2tiwttt" path="res://src/ui/label_settings/MainTextApplied.tres" id="8_ld5mo"]
[node name="UISandbox" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -5.0
offset_right = -5.0
grow_horizontal = 2
grow_vertical = 2
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.137255, 0.121569, 0.12549, 1)
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 0
offset_right = 40.0
offset_bottom = 40.0
theme_override_constants/margin_left = 40
theme_override_constants/margin_top = 40
theme_override_constants/margin_right = 40
theme_override_constants/margin_bottom = 40
[node name="HFlowContainer" type="VBoxContainer" parent="MarginContainer"]
layout_mode = 2
[node name="MainTitleFont" type="Label" parent="MarginContainer/HFlowContainer"]
layout_mode = 2
text = "MAIN TITLE FONT"
label_settings = ExtResource("1_lt2oc")
[node name="HeadingFont" type="Label" parent="MarginContainer/HFlowContainer"]
layout_mode = 2
text = "HEADING FONT - STANDARD + SELECTED"
label_settings = ExtResource("2_6orqu")
[node name="Heading Font (Unselected)" type="Label" parent="MarginContainer/HFlowContainer"]
layout_mode = 2
text = "HEADING FONT - UNSELECTED (50%)"
label_settings = ExtResource("3_wb0jr")
[node name="MainTextRegular" type="Label" parent="MarginContainer/HFlowContainer"]
layout_mode = 2
text = "Main Text Font - Regular"
label_settings = ExtResource("3_vgwwa")
[node name="MainTextBold" type="Label" parent="MarginContainer/HFlowContainer"]
layout_mode = 2
text = "Main Text Font - Bold"
label_settings = ExtResource("4_vds7k")
[node name="MainTextItalic" type="Label" parent="MarginContainer/HFlowContainer"]
layout_mode = 2
text = "Main Text Font - Italic
"
label_settings = ExtResource("6_8ni0v")
[node name="MainTextItalicEquipped" type="Label" parent="MarginContainer/HFlowContainer"]
layout_mode = 2
text = "Main Text Font - Italic
"
label_settings = ExtResource("7_o8qef")
[node name="ItemApplied" type="Label" parent="MarginContainer/HFlowContainer"]
layout_mode = 2
text = "Item Applied Font - Bold"
label_settings = ExtResource("8_ld5mo")