Move files and folders to new repo format to enable multi-project format

This commit is contained in:
2025-03-06 22:07:25 -08:00
parent 12cbb82ac9
commit a09f6ec5a5
3973 changed files with 1781 additions and 2938 deletions

View File

@@ -0,0 +1,24 @@
using Chickensoft.AutoInject;
using Chickensoft.GodotNodeInterfaces;
using Chickensoft.Introspection;
using Godot;
namespace Zennysoft.Game.Ma;
public interface IDeathMenu : IControl
{
void FadeIn();
void FadeOut();
}
[Meta(typeof(IAutoNode))]
public partial class DeathMenu : Control, IDeathMenu
{
public override void _Notification(int what) => this.Notify(what);
[Node] public IAnimationPlayer AnimationPlayer { get; set; } = default!;
public void FadeIn() => AnimationPlayer.Play("fade_in");
public void FadeOut() => AnimationPlayer.Play("fade_out");
}

View File

@@ -0,0 +1 @@
uid://caqsfstq2l0lq

View File

@@ -0,0 +1,99 @@
[gd_scene load_steps=7 format=3 uid="uid://dbtfgrtgpr4qg"]
[ext_resource type="Script" uid="uid://caqsfstq2l0lq" path="res://src/ui/death_menu/DeathMenu.cs" id="1_megey"]
[ext_resource type="FontFile" uid="uid://cm8j5vcdop5x0" path="res://src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf" id="2_ip5p6"]
[sub_resource type="Animation" id="Animation_qmlrq"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_q2nvr"]
resource_name = "fade_in"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_6ji3u"]
resource_name = "fade_out"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ek7oy"]
_data = {
&"RESET": SubResource("Animation_qmlrq"),
&"fade_in": SubResource("Animation_q2nvr"),
&"fade_out": SubResource("Animation_6ji3u")
}
[node name="DeathMenu" type="Control"]
process_mode = 3
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_megey")
[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="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
libraries = {
&"": SubResource("AnimationLibrary_ek7oy")
}
[node name="CenterContainer" type="CenterContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="GameOverPlaceholder" type="Label" parent="CenterContainer"]
layout_mode = 2
theme_override_colors/font_color = Color(0.545098, 0, 0, 1)
theme_override_constants/outline_size = 12
theme_override_fonts/font = ExtResource("2_ip5p6")
theme_override_font_sizes/font_size = 72
text = "Game Over"

View File

@@ -0,0 +1,112 @@
[gd_scene load_steps=12 format=3 uid="uid://crkf5upj8e8ip"]
[ext_resource type="Script" uid="uid://c3iswacrgya7e" 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" uid="uid://bq8fntgcwiosq" path="res://addons/dialogue_manager/dialogue_reponses_menu.gd" id="3_72ixx"]
[ext_resource type="Script" uid="uid://by6wev1st2yuh" 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,204 @@
using DialogueManagerRuntime;
using Godot;
using Godot.Collections;
namespace Zennysoft.Game.Ma;
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 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 @@
uid://c3iswacrgya7e

View File

@@ -0,0 +1,201 @@
[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)
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"]
content_margin_left = 5.0
content_margin_top = 5.0
content_margin_right = 5.0
content_margin_bottom = 5.0
bg_color = Color(0, 0, 0, 0)
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
shadow_color = Color(0, 0, 0, 0.141176)
shadow_size = 10
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_uy0d5"]
bg_color = Color(0.277528, 0.277528, 0.277528, 0.384314)
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 = 34
Button/styles/disabled = SubResource("StyleBoxFlat_spyqn")
Button/styles/focus = SubResource("StyleBoxFlat_ri4m3")
Button/styles/hover = null
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"]
process_mode = 3
layer = 100
script = ExtResource("1_okfmu")
NextAction = "ui_cancel"
SkipAction = "ui_accept"
[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"]
custom_minimum_size = Vector2(1000, 300)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Dialogue" type="AspectRatioContainer" parent="Balloon/Panel"]
custom_minimum_size = Vector2(500, 250)
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -301.0
offset_bottom = -25.0
grow_horizontal = 2
grow_vertical = 0
size_flags_vertical = 3
alignment_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="Balloon/Panel/Dialogue"]
layout_mode = 2
theme_override_constants/separation = 10
[node name="CharacterLabel" type="RichTextLabel" parent="Balloon/Panel/Dialogue/VBoxContainer"]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0.501961)
custom_minimum_size = Vector2(800, 60)
layout_mode = 2
size_flags_vertical = 10
mouse_filter = 1
theme_override_colors/default_color = Color(0.737255, 0.705882, 0.690196, 1)
theme_override_colors/font_shadow_color = Color(0, 0, 0, 1)
theme_override_constants/line_separation = 10
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
horizontal_alignment = 1
[node name="DialogueLabel" parent="Balloon/Panel/Dialogue/VBoxContainer" instance=ExtResource("2_jm6sr")]
unique_name_in_owner = true
custom_minimum_size = Vector2(800, 200)
layout_mode = 2
size_flags_vertical = 3
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_colors/font_shadow_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 0
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 = "I do not know thee but I perceive thine sorrows vividly,
for I am embraced by their brethren."
skip_action = &"ui_accept"
[node name="CenterContainer" type="CenterContainer" parent="Balloon"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_bottom = -2.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
theme_override_colors/font_focus_color = Color(1, 0.94902, 0, 1)
theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1)
button_mask = 0
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,11 @@
using Godot;
namespace Zennysoft.Game.Ma;
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"));
}
}

View File

@@ -0,0 +1 @@
uid://by6wev1st2yuh

View File

@@ -0,0 +1,78 @@
using Chickensoft.AutoInject;
using Chickensoft.GodotNodeInterfaces;
using Chickensoft.Introspection;
using Godot;
namespace Zennysoft.Game.Ma;
public interface IFloorClearMenu : IControl
{
event FloorClearMenu.GoToNextFloorEventHandler GoToNextFloor;
event FloorClearMenu.SaveAndExitEventHandler SaveAndExit;
event FloorClearMenu.TransitionCompletedEventHandler TransitionCompleted;
void FadeIn();
void FadeOut();
}
[Meta(typeof(IAutoNode))]
public partial class FloorClearMenu : Control, IFloorClearMenu
{
public override void _Notification(int what) => this.Notify(what);
[Node] public IAnimationPlayer AnimationPlayer { get; set; } = default!;
[Node] public Button ContinueButton { get; set; } = default!;
[Node] public Button SaveAndExitButton { get; set; } = default!;
public void FadeIn() => AnimationPlayer.Play("fade_in");
public void FadeOut() => AnimationPlayer.Play("fade_out");
[Signal]
public delegate void TransitionCompletedEventHandler();
[Signal]
public delegate void GoToNextFloorEventHandler();
[Signal]
public delegate void SaveAndExitEventHandler();
public void OnResolved()
{
AnimationPlayer.AnimationFinished += AnimationPlayer_AnimationFinished;
ContinueButton.Pressed += ContinueButton_Pressed;
SaveAndExitButton.Pressed += SaveAndExitButton_Pressed;
}
private void SaveAndExitButton_Pressed()
{
ContinueButton.Disabled = true;
SaveAndExitButton.Disabled = true;
EmitSignal(SignalName.SaveAndExit);
}
private void ContinueButton_Pressed()
{
ContinueButton.Disabled = true;
SaveAndExitButton.Disabled = true;
EmitSignal(SignalName.GoToNextFloor);
}
private void AnimationPlayer_AnimationFinished(StringName animName)
{
if (animName == "fade_in")
{
ContinueButton.Disabled = false;
SaveAndExitButton.Disabled = false;
ContinueButton.CallDeferred(MethodName.GrabFocus);
}
if (animName == "fade_out")
{
CallDeferred(MethodName.ReleaseFocus);
EmitSignal(SignalName.TransitionCompleted);
}
}
}

View File

@@ -0,0 +1 @@
uid://yytomatekupe

View File

@@ -0,0 +1,139 @@
[gd_scene load_steps=11 format=3 uid="uid://pu6gp8de3ck4"]
[ext_resource type="Script" uid="uid://yytomatekupe" path="res://src/ui/floor_clear/FloorClearMenu.cs" id="1_q65kq"]
[ext_resource type="FontFile" uid="uid://cm8j5vcdop5x0" path="res://src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf" id="2_xk0dh"]
[sub_resource type="Animation" id="Animation_nc1gg"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("FloorClearMenu:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_p616x"]
resource_name = "fade_in"
length = 0.3
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("FloorClearMenu:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_dhyvw"]
resource_name = "fade_out"
length = 0.3
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("FloorClearMenu:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_opfbx"]
_data = {
&"RESET": SubResource("Animation_nc1gg"),
&"fade_in": SubResource("Animation_p616x"),
&"fade_out": SubResource("Animation_dhyvw")
}
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_phrcj"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_tmmmd"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cyd1c"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_4bdva"]
[node name="FloorClearMenu" type="Control"]
process_mode = 3
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_q65kq")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
root_node = NodePath("../..")
libraries = {
&"": SubResource("AnimationLibrary_opfbx")
}
[node name="BG" 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="CenterContainer" type="CenterContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer"]
layout_mode = 2
[node name="ContinueButton" type="Button" parent="CenterContainer/VBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 50)
layout_mode = 2
focus_neighbor_left = NodePath(".")
focus_neighbor_top = NodePath(".")
focus_neighbor_right = NodePath(".")
focus_neighbor_bottom = NodePath("../SaveAndExitButton")
theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1)
theme_override_colors/font_focus_color = Color(1, 0.94902, 0, 1)
theme_override_fonts/font = ExtResource("2_xk0dh")
theme_override_font_sizes/font_size = 36
theme_override_styles/focus = SubResource("StyleBoxEmpty_phrcj")
theme_override_styles/normal = SubResource("StyleBoxEmpty_tmmmd")
button_mask = 0
text = "Continue"
flat = true
[node name="SaveAndExitButton" type="Button" parent="CenterContainer/VBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(200, 50)
layout_mode = 2
focus_neighbor_left = NodePath(".")
focus_neighbor_top = NodePath("../ContinueButton")
focus_neighbor_right = NodePath(".")
focus_neighbor_bottom = NodePath(".")
theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1)
theme_override_colors/font_focus_color = Color(1, 0.94902, 0, 1)
theme_override_fonts/font = ExtResource("2_xk0dh")
theme_override_font_sizes/font_size = 36
theme_override_styles/focus = SubResource("StyleBoxEmpty_cyd1c")
theme_override_styles/normal = SubResource("StyleBoxEmpty_4bdva")
button_mask = 0
text = "Save and Exit"
flat = true

Binary file not shown.

View File

@@ -0,0 +1,35 @@
[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
keep_rounding_remainders=true
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,35 @@
[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
keep_rounding_remainders=true
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,35 @@
[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
keep_rounding_remainders=true
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,35 @@
[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
keep_rounding_remainders=true
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,41 @@
[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
keep_rounding_remainders=true
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={}

View File

@@ -0,0 +1,41 @@
[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
keep_rounding_remainders=true
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,68 @@
using Chickensoft.AutoInject;
using Chickensoft.GodotNodeInterfaces;
using Chickensoft.Introspection;
using Godot;
namespace Zennysoft.Game.Ma;
public interface IInGameUI : IControl
{
public void ShowInventoryScreen();
public void HideInventoryScreen();
public void ShowMiniMap();
public void HideMiniMap();
event InGameUI.MinimapButtonReleasedEventHandler MinimapButtonReleased;
}
[Meta(typeof(IAutoNode))]
public partial class InGameUI : Control, IInGameUI
{
public override void _Notification(int what) => this.Notify(what);
[Node] public Control MiniMap { get; set; } = default!;
[Node] public IInventoryMenu InventoryMenu { get; set; } = default!;
[Node] public IPlayerInfoUI PlayerInfoUI { get; set; } = default!;
[Node] public IUseTeleportPrompt UseTeleportPrompt { get; set; } = default!;
[Signal]
public delegate void MinimapButtonReleasedEventHandler();
public override void _UnhandledInput(InputEvent @event)
{
if (@event.IsActionReleased(GameInputs.MiniMap))
{
GD.Print("MiniMap button released");
EmitSignal(SignalName.MinimapButtonReleased);
}
}
public void HideInventoryScreen()
{
InventoryMenu.Hide();
}
public void HideMiniMap()
{
MiniMap.SetProcessUnhandledInput(false);
MiniMap.Hide();
}
public void ShowInventoryScreen()
{
InventoryMenu.RefreshInventoryScreen();
InventoryMenu.Show();
}
public void ShowMiniMap()
{
MiniMap.SetProcessUnhandledInput(true);
MiniMap.Show();
}
}

View File

@@ -0,0 +1 @@
uid://dlq2mkhl4pe7a

View File

@@ -0,0 +1,50 @@
[gd_scene load_steps=7 format=3 uid="uid://b1muxus5qdbeu"]
[ext_resource type="Script" uid="uid://dlq2mkhl4pe7a" path="res://src/ui/in_game_ui/InGameUI.cs" id="1_sc13i"]
[ext_resource type="PackedScene" uid="uid://bwbofurcvf3yh" path="res://src/minimap/Minimap.tscn" id="2_6sfje"]
[ext_resource type="PackedScene" uid="uid://dlj8qdg1c5048" path="res://src/inventory_menu/InventoryMenu.tscn" id="3_4vcdl"]
[ext_resource type="PackedScene" uid="uid://dxl8il8f13c2x" path="res://src/ui/player_ui/PlayerInfoUI.tscn" id="4_46s5l"]
[ext_resource type="PackedScene" uid="uid://bea2waybmgd6u" path="res://src/ui/teleport_prompt/UseTeleportPrompt.tscn" id="5_h1hgq"]
[ext_resource type="Script" uid="uid://dj6oqler47dqf" path="res://src/utils/FpsCounter.cs" id="7_c6o8j"]
[node name="InGameUI" type="Control"]
process_mode = 3
custom_minimum_size = Vector2(1280, 960)
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource("1_sc13i")
[node name="PlayerInfoUI" parent="." instance=ExtResource("4_46s5l")]
unique_name_in_owner = true
custom_minimum_size = Vector2(1024, 768)
layout_mode = 1
[node name="MiniMap" parent="." instance=ExtResource("2_6sfje")]
unique_name_in_owner = true
visible = false
layout_mode = 1
[node name="InventoryMenu" parent="." instance=ExtResource("3_4vcdl")]
unique_name_in_owner = true
process_mode = 3
visible = false
layout_mode = 1
[node name="UseTeleportPrompt" parent="." instance=ExtResource("5_h1hgq")]
unique_name_in_owner = true
layout_mode = 1
[node name="Label" type="Label" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_right = 0.021
anchor_bottom = 0.021
offset_right = -0.320004
offset_bottom = 0.319998
script = ExtResource("7_c6o8j")

View File

@@ -0,0 +1,61 @@
using Chickensoft.AutoInject;
using Chickensoft.GodotNodeInterfaces;
using Chickensoft.Introspection;
using Godot;
namespace Zennysoft.Game.Ma;
public interface IUseTeleportPrompt : IControl
{
event UseTeleportPrompt.TeleportToNextFloorEventHandler TeleportToNextFloor;
event UseTeleportPrompt.CloseTeleportPromptEventHandler CloseTeleportPrompt;
public void FadeIn();
public void FadeOut();
}
[Meta(typeof(IAutoNode))]
public partial class UseTeleportPrompt : Control, IUseTeleportPrompt
{
public override void _Notification(int what) => this.Notify(what);
[Signal]
public delegate void TeleportToNextFloorEventHandler();
[Signal]
public delegate void CloseTeleportPromptEventHandler();
[Node] public Button YesButton { get; set; } = default!;
[Node] public Button NoButton { get; set; } = default!;
[Node] public AnimationPlayer AnimationPlayer { get; set; } = default!;
public void OnResolved()
{
AnimationPlayer.AnimationFinished += AnimationPlayer_AnimationFinished;
YesButton.Pressed += YesButton_Pressed;
NoButton.Pressed += NoButton_Pressed;
}
public void FadeIn() => AnimationPlayer.Play("fade_in");
public void FadeOut() => AnimationPlayer.Play("fade_out");
private void NoButton_Pressed()
{
EmitSignal(SignalName.CloseTeleportPrompt);
}
private void YesButton_Pressed()
{
EmitSignal(SignalName.TeleportToNextFloor);
}
private void AnimationPlayer_AnimationFinished(StringName animName)
{
if (animName == "fade_in")
YesButton.CallDeferred(MethodName.GrabFocus);
if (animName == "fade_out")
CallDeferred(MethodName.ReleaseFocus);
}
}

View File

@@ -0,0 +1 @@
uid://dvn7g207w5jaj

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://bqdq5r46uduvd"]
[ext_resource type="FontFile" uid="uid://dit3vylt7hmmx" path="res://src/ui/fonts/FT88-Regular.ttf" id="1_gld51"]
[resource]
font = ExtResource("1_gld51")
font_size = 24
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://ca1q6yu8blwxf"]
[ext_resource type="FontFile" uid="uid://cb41qqmxqurj8" path="res://src/ui/fonts/FT88-Bold.ttf" id="1_v70mx"]
[resource]
font = ExtResource("1_v70mx")
font_size = 32
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://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 = 32
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://cb41qqmxqurj8" path="res://src/ui/fonts/FT88-Bold.ttf" id="1_t2ic4"]
[resource]
font = ExtResource("1_t2ic4")
font_size = 36
font_color = Color(0, 0.682353, 0.937255, 1)

View File

@@ -0,0 +1,8 @@
[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
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://b3jrpf2sdtsqo"]
[ext_resource type="FontFile" uid="uid://bohbd123672ea" path="res://src/ui/fonts/FT88-Italic.ttf" id="1_usib5"]
[resource]
font = ExtResource("1_usib5")
font_size = 36
font_color = Color(0, 0.682353, 0.937255, 1)

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 = 32
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")

View File

@@ -0,0 +1,45 @@
using Chickensoft.AutoInject;
using Chickensoft.GodotNodeInterfaces;
using Chickensoft.Introspection;
using Godot;
namespace Zennysoft.Game.Ma;
public interface IPauseMenu : IControl
{
void FadeIn();
void FadeOut();
event PauseMenu.UnpauseButtonPressedEventHandler UnpauseButtonPressed;
event PauseMenu.TransitionCompletedEventHandler TransitionCompleted;
}
[Meta(typeof(IAutoNode))]
public partial class PauseMenu : Control, IPauseMenu
{
public override void _Notification(int what) => this.Notify(what);
[Signal]
public delegate void TransitionCompletedEventHandler();
[Signal]
public delegate void UnpauseButtonPressedEventHandler();
[Node] public IAnimationPlayer AnimationPlayer { get; set; } = default!;
public void OnResolved()
{
AnimationPlayer.AnimationFinished += OnAnimationFinished;
}
public void FadeIn() => AnimationPlayer.Play("fade_in");
public void FadeOut() => AnimationPlayer.Play("fade_out");
public override void _UnhandledInput(InputEvent @event)
{
if (@event.IsActionPressed(GameInputs.Pause))
EmitSignal(SignalName.UnpauseButtonPressed);
}
public void OnAnimationFinished(StringName name)
{
}
}

View File

@@ -0,0 +1 @@
uid://cbal5oeaha4nx

View File

@@ -0,0 +1,79 @@
[gd_scene load_steps=5 format=3 uid="uid://blbqgw3wosc1w"]
[sub_resource type="Animation" id="Animation_ccrq3"]
resource_name = "fade_out"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 7.7),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_bium7"]
resource_name = "fade_in"
length = 0.3
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 7.7),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_f1eqn"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_pmp7u"]
_data = {
"RESET": SubResource("Animation_f1eqn"),
"fade_in": SubResource("Animation_bium7"),
"fade_out": SubResource("Animation_ccrq3")
}
[node name="PauseMenu" type="Control"]
process_mode = 3
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
libraries = {
"": SubResource("AnimationLibrary_pmp7u")
}
[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, 0, 0, 1)

View File

@@ -0,0 +1,90 @@
using Chickensoft.AutoInject;
using Chickensoft.GodotNodeInterfaces;
using Chickensoft.Introspection;
using Godot;
namespace Zennysoft.Game.Ma;
public interface IPlayerInfoUI : IControl
{
public void DisplayMessage(string message);
}
[Meta(typeof(IAutoNode))]
public partial class PlayerInfoUI : Control, IPlayerInfoUI
{
public override void _Notification(int what) => this.Notify(what);
private LabelSettings _labelSettings { get; set; }
#region Nodes
[Node] public VBoxContainer PlayerInfo { get; set; } = default!;
[Node] public Label LevelNumber { get; set; } = default!;
[Node] public Label HPNumber { get; set; } = default!;
[Node] public Label VTNumber { get; set; } = default!;
#endregion
[Dependency] public IPlayer Player => this.DependOn<IPlayer>();
public void OnResolved()
{
_labelSettings = GD.Load<LabelSettings>("res://src/ui/label_settings/InventoryFullAlertLabelSetting.tres");
Player.Stats.CurrentHP.Sync += CurrentHP_Sync;
Player.Stats.MaximumHP.Sync += MaximumHP_Sync;
Player.Stats.CurrentVT.Sync += CurrentVT_Sync;
Player.Stats.MaximumVT.Sync += MaximumVT_Sync;
Player.Stats.CurrentLevel.Sync += CurrentLevel_Sync;
}
private void CurrentLevel_Sync(int obj)
{
LevelNumber.Text = $"{obj}";
}
private void MaximumVT_Sync(int obj)
{
VTNumber.Text = $"{Player.Stats.CurrentVT.Value}/{obj}";
}
private void CurrentVT_Sync(int obj)
{
VTNumber.Text = $"{obj}/{Player.Stats.MaximumVT.Value}";
}
private void MaximumHP_Sync(int obj)
{
HPNumber.Text = $"{Player.Stats.CurrentHP.Value}/{obj}";
}
private void CurrentHP_Sync(int obj)
{
HPNumber.Text = $"{obj}/{Player.Stats.MaximumHP.Value}";
}
public async void DisplayInventoryFullMessage(string rejectedItemName)
{
var newLabel = new Label() { Text = $"Could not pick up {rejectedItemName}.", LabelSettings = _labelSettings };
PlayerInfo.AddChild(newLabel);
GetTree().CreateTimer(3f).Timeout += () =>
{
PlayerInfo.RemoveChild(newLabel);
};
}
public async void DisplayMessage(string message)
{
var newLabel = new Label() { Text = message, LabelSettings = _labelSettings };
PlayerInfo.AddChild(newLabel);
GetTree().CreateTimer(3f).Timeout += () =>
{
PlayerInfo.RemoveChild(newLabel);
};
}
}

View File

@@ -0,0 +1 @@
uid://b65cbirtijlii

View File

@@ -0,0 +1,99 @@
[gd_scene load_steps=5 format=3 uid="uid://dxl8il8f13c2x"]
[ext_resource type="Texture2D" uid="uid://hg2kraa5nrnl" path="res://src/ui/textures/blank level symbol.png" id="1_78qrq"]
[ext_resource type="Script" uid="uid://b65cbirtijlii" path="res://src/ui/player_ui/PlayerInfoUI.cs" id="1_d8yyu"]
[ext_resource type="LabelSettings" uid="uid://ca1q6yu8blwxf" path="res://src/ui/label_settings/InventoryMainTextBold.tres" id="2_aa7fx"]
[ext_resource type="LabelSettings" uid="uid://dupifadnagodp" path="res://src/ui/label_settings/MainTextRegular.tres" id="3_xdjh1"]
[node name="PlayerInfoUI" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_d8yyu")
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 1
anchors_preset = 9
anchor_bottom = 1.0
offset_right = 426.0
grow_vertical = 2
theme_override_constants/margin_left = 32
theme_override_constants/margin_top = 20
[node name="PlayerInfo" type="VBoxContainer" parent="MarginContainer"]
unique_name_in_owner = true
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/PlayerInfo"]
layout_mode = 2
[node name="CenterContainer" type="CenterContainer" parent="MarginContainer/PlayerInfo/HBoxContainer"]
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="MarginContainer/PlayerInfo/HBoxContainer/CenterContainer"]
custom_minimum_size = Vector2(128, 128)
layout_mode = 2
size_flags_vertical = 3
texture = ExtResource("1_78qrq")
expand_mode = 1
stretch_mode = 4
[node name="LevelNumber" type="Label" parent="MarginContainer/PlayerInfo/HBoxContainer/CenterContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(80, 80)
layout_mode = 2
text = "99"
label_settings = ExtResource("2_aa7fx")
horizontal_alignment = 1
vertical_alignment = 1
[node name="VBox" type="VBoxContainer" parent="MarginContainer/PlayerInfo/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
theme_override_constants/separation = 15
[node name="HBox" type="HBoxContainer" parent="MarginContainer/PlayerInfo/HBoxContainer/VBox"]
layout_mode = 2
size_flags_horizontal = 3
[node name="HP" type="Label" parent="MarginContainer/PlayerInfo/HBoxContainer/VBox/HBox"]
layout_mode = 2
text = "HP: "
label_settings = ExtResource("2_aa7fx")
[node name="ReferenceRect" type="ReferenceRect" parent="MarginContainer/PlayerInfo/HBoxContainer/VBox/HBox"]
custom_minimum_size = Vector2(30, 0)
layout_mode = 2
border_width = 0.0
[node name="HPNumber" type="Label" parent="MarginContainer/PlayerInfo/HBoxContainer/VBox/HBox"]
unique_name_in_owner = true
layout_mode = 2
text = "222/222"
label_settings = ExtResource("3_xdjh1")
[node name="HBox2" type="HBoxContainer" parent="MarginContainer/PlayerInfo/HBoxContainer/VBox"]
layout_mode = 2
[node name="VT" type="Label" parent="MarginContainer/PlayerInfo/HBoxContainer/VBox/HBox2"]
layout_mode = 2
text = "VT:"
label_settings = ExtResource("2_aa7fx")
[node name="ReferenceRect" type="ReferenceRect" parent="MarginContainer/PlayerInfo/HBoxContainer/VBox/HBox2"]
custom_minimum_size = Vector2(30, 0)
layout_mode = 2
border_width = 0.0
[node name="VTNumber" type="Label" parent="MarginContainer/PlayerInfo/HBoxContainer/VBox/HBox2"]
unique_name_in_owner = true
layout_mode = 2
text = "444/444"
label_settings = ExtResource("3_xdjh1")
[node name="TextureButton" type="TextureButton" parent="MarginContainer"]
layout_mode = 2

View File

@@ -0,0 +1,179 @@
[gd_scene load_steps=14 format=3 uid="uid://bea2waybmgd6u"]
[ext_resource type="Script" path="res://src/ui/in_game_ui/UseTeleportPrompt.cs" id="1_x3wkp"]
[ext_resource type="FontFile" uid="uid://cm8j5vcdop5x0" path="res://src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf" id="2_i6kb2"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ahhj2"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1tca4"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1pd8j"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_crnka"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_yoep7"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_svmjr"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cmr8o"]
[sub_resource type="Animation" id="Animation_xrfau"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_efhb5"]
resource_name = "fade_in"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_ibgld"]
resource_name = "fade_out"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.5),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_7x216"]
_data = {
"RESET": SubResource("Animation_xrfau"),
"fade_in": SubResource("Animation_efhb5"),
"fade_out": SubResource("Animation_ibgld")
}
[node name="UseTeleportPrompt" type="Control"]
process_mode = 3
visible = false
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_x3wkp")
[node name="CenterContainer" type="CenterContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer"]
layout_mode = 2
[node name="MovePrompt" type="Label" parent="CenterContainer/VBoxContainer"]
layout_mode = 2
theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1)
theme_override_fonts/font = ExtResource("2_i6kb2")
theme_override_font_sizes/font_size = 50
theme_override_styles/normal = SubResource("StyleBoxEmpty_ahhj2")
text = "Move to the next floor?"
[node name="YesButton" type="Button" parent="CenterContainer/VBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
focus_neighbor_left = NodePath(".")
focus_neighbor_top = NodePath(".")
focus_neighbor_right = NodePath(".")
focus_neighbor_bottom = NodePath("../NoButton")
theme_override_colors/font_focus_color = Color(1, 0.94902, 0, 1)
theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1)
theme_override_fonts/font = ExtResource("2_i6kb2")
theme_override_font_sizes/font_size = 50
theme_override_styles/focus = SubResource("StyleBoxEmpty_1tca4")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_1pd8j")
theme_override_styles/normal = SubResource("StyleBoxEmpty_crnka")
button_mask = 0
text = "Yes"
[node name="NoButton" type="Button" parent="CenterContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
focus_neighbor_left = NodePath(".")
focus_neighbor_top = NodePath("../YesButton")
focus_neighbor_right = NodePath(".")
focus_neighbor_bottom = NodePath(".")
theme_override_colors/font_focus_color = Color(1, 0.94902, 0, 1)
theme_override_colors/font_color = Color(0.737255, 0.705882, 0.690196, 1)
theme_override_fonts/font = ExtResource("2_i6kb2")
theme_override_font_sizes/font_size = 50
theme_override_styles/focus = SubResource("StyleBoxEmpty_yoep7")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_svmjr")
theme_override_styles/normal = SubResource("StyleBoxEmpty_cmr8o")
button_mask = 0
text = "No"
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
libraries = {
"": SubResource("AnimationLibrary_7x216")
}

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://v0i7rwj05ijp"
path="res://.godot/imported/GettyImages-2148610352.jpg-20858bb3a3415a6fd3642a86aed2be9b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/ui/textures/GettyImages-2148610352.jpg"
dest_files=["res://.godot/imported/GettyImages-2148610352.jpg-20858bb3a3415a6fd3642a86aed2be9b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c8tnq16qgjurc"
path="res://.godot/imported/INVENTORY-BACKGROUND.png-52bbab9ed91a19d32c4c01f282658810.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/ui/textures/INVENTORY-BACKGROUND.png"
dest_files=["res://.godot/imported/INVENTORY-BACKGROUND.png-52bbab9ed91a19d32c4c01f282658810.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://hg2kraa5nrnl"
path="res://.godot/imported/blank level symbol.png-14e7d3eb360d529d659ec2284ee12ca4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/ui/textures/blank level symbol.png"
dest_files=["res://.godot/imported/blank level symbol.png-14e7d3eb360d529d659ec2284ee12ca4.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://0f0krskc3lfb"
path="res://.godot/imported/inventory_background.png-d8cc6b5ec52e3c266040bf16e4b5e553.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/ui/textures/inventory_background.png"
dest_files=["res://.godot/imported/inventory_background.png-d8cc6b5ec52e3c266040bf16e4b5e553.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1