From 2ac4660d1bc3a6adbcb5f8a9ffe6741de7e27a92 Mon Sep 17 00:00:00 2001 From: Zenny Date: Mon, 9 Sep 2024 04:21:00 -0700 Subject: [PATCH] Fixed inventory screen --- src/inventory_menu/InventoryMenu.cs | 56 +++++++++++-- src/inventory_menu/InventoryMenu.tscn | 8 +- src/inventory_menu/ItemSlot.tscn | 13 +-- src/map/dungeon/rooms/Antechamber.tscn | 80 +++++++++++++++++++ .../label_settings/MainTextFontEquipped.tres | 6 +- .../MainTextFontSelectedEquipped.tres | 8 ++ 6 files changed, 147 insertions(+), 24 deletions(-) create mode 100644 src/ui/label_settings/MainTextFontSelectedEquipped.tres diff --git a/src/inventory_menu/InventoryMenu.cs b/src/inventory_menu/InventoryMenu.cs index f3e7eafa..8dbf6335 100644 --- a/src/inventory_menu/InventoryMenu.cs +++ b/src/inventory_menu/InventoryMenu.cs @@ -52,11 +52,21 @@ public partial class InventoryMenu : Control, IInventoryMenu private const int _itemsPerPage = 10; + private int _currentIndex = 0; + + private ItemSlot[] ItemSlots => ItemsPage.GetChildren().OfType().ToArray(); + + private static LabelSettings ItemFont => GD.Load("res://src/ui/label_settings/MainTextRegular.tres"); + private static LabelSettings SelectedItemFont => GD.Load("res://src/ui/label_settings/MainTextFontItalicized.tres"); + private static LabelSettings EquippedItemFont => GD.Load("res://src/ui/label_settings/MainTextFontEquipped.tres"); + + private static LabelSettings SelectedEquippedItemFont => GD.Load("res://src/ui/label_settings/MainTextFontSelectedEquipped.tres"); + public void PopulateItems() { var inventory = GameRepo.InventoryItems.Value; - var numberOfItemsToDisplay = Mathf.Min(inventory.Count, _itemsPerPage); - var indexToStart = _currentPageNumber == InventoryPageNumber.FirstPage ? 0 : 10; + var numberOfItemsToDisplay = _currentPageNumber == InventoryPageNumber.FirstPage ? Mathf.Min(inventory.Count, _itemsPerPage) : Mathf.Min(inventory.Count - _itemsPerPage, _itemsPerPage); + var indexToStart = _currentPageNumber == InventoryPageNumber.FirstPage ? 0 : _itemsPerPage - 1; ForwardArrow.Text = ""; BackArrow.Text = ""; @@ -84,30 +94,64 @@ public partial class InventoryMenu : Control, IInventoryMenu itemSlot.ItemTexture.Texture = item.Info.Texture; itemSlot.EquipBonus.Text = "..."; } + + if (ItemSlots.Any()) + ItemSlots.ElementAt(_currentIndex).ItemName.LabelSettings = SelectedItemFont; } public override void _UnhandledInput(InputEvent @event) { var inventory = GameRepo.InventoryItems.Value; - if (_currentPageNumber == InventoryPageNumber.FirstPage && inventory.Count > _itemsPerPage && Input.IsActionJustPressed(GameInputs.UiRight)) + if (ItemSlots.Any() && _currentPageNumber == InventoryPageNumber.FirstPage && inventory.Count > _itemsPerPage && Input.IsActionJustPressed(GameInputs.UiRight)) { ClearItems(); + _currentIndex = 0; _currentPageNumber = InventoryPageNumber.SecondPage; PopulateItems(); } - if (_currentPageNumber == InventoryPageNumber.SecondPage && Input.IsActionJustPressed(GameInputs.UiLeft)) + if (ItemSlots.Any() && _currentPageNumber == InventoryPageNumber.SecondPage && Input.IsActionJustPressed(GameInputs.UiLeft)) { ClearItems(); + _currentIndex = 0; _currentPageNumber = InventoryPageNumber.FirstPage; PopulateItems(); } + + if (ItemSlots.Any() && Input.IsActionJustPressed(GameInputs.UiDown)) + { + if (!inventory.Any() || _currentIndex + 1 >= _itemsPerPage) + return; + + ItemSlots.ElementAt(_currentIndex).ItemName.LabelSettings = ItemFont; + _currentIndex++; + ItemSlots.ElementAt(_currentIndex).ItemName.LabelSettings = SelectedItemFont; + } + + if (ItemSlots.Any() && Input.IsActionJustPressed(GameInputs.UiUp)) + { + if (!inventory.Any() || _currentIndex <= 0) + return; + + ItemSlots.ElementAt(_currentIndex).ItemName.LabelSettings = ItemFont; + _currentIndex--; + ItemSlots.ElementAt(_currentIndex).ItemName.LabelSettings = SelectedItemFont; + } + + if (ItemSlots.Any() && Input.IsActionJustPressed(GameInputs.UiAccept)) + { + if (_currentPageNumber == InventoryPageNumber.FirstPage) + { + var item = inventory.ElementAt(_currentIndex); + if (item is IEquippable) + ItemSlots.ElementAt(_currentIndex).ItemName.LabelSettings = EquippedItemFont; + } + } } public void ClearItems() { - var items = ItemsPage.GetChildren().OfType(); - foreach (var item in items) + foreach (var item in ItemSlots) { ItemsPage.RemoveChild(item); } diff --git a/src/inventory_menu/InventoryMenu.tscn b/src/inventory_menu/InventoryMenu.tscn index fd6931d0..54394570 100644 --- a/src/inventory_menu/InventoryMenu.tscn +++ b/src/inventory_menu/InventoryMenu.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=20 format=3 uid="uid://dlj8qdg1c5048"] +[gd_scene load_steps=19 format=3 uid="uid://dlj8qdg1c5048"] [ext_resource type="Script" path="res://src/inventory_menu/InventoryMenu.cs" id="1_l64wl"] [ext_resource type="Texture2D" uid="uid://c8tnq16qgjurc" path="res://src/ui/textures/INVENTORY-BACKGROUND.png" id="2_plijd"] @@ -8,7 +8,6 @@ [ext_resource type="LabelSettings" uid="uid://dupifadnagodp" path="res://src/ui/label_settings/MainTextRegular.tres" id="5_v2ky8"] [ext_resource type="LabelSettings" uid="uid://c4wbba5mo7qcp" path="res://src/ui/label_settings/MainTextFontItalicized.tres" id="6_q3oua"] [ext_resource type="LabelSettings" uid="uid://ca1q6yu8blwxf" path="res://src/ui/label_settings/InventoryMainTextBold.tres" id="6_tmdno"] -[ext_resource type="PackedScene" uid="uid://c005nd0m2eim" path="res://src/inventory_menu/ItemSlot.tscn" id="9_0io04"] [sub_resource type="LabelSettings" id="LabelSettings_q0afw"] font = ExtResource("3_lm4o1") @@ -61,6 +60,7 @@ font_size = 80 font_color = Color(0.737255, 0.705882, 0.690196, 1) [node name="InventoryMenu" type="Control"] +process_mode = 2 layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -362,7 +362,3 @@ alignment = 1 [node name="ReferenceRect3" type="ReferenceRect" parent="InventoryInfo/HBoxContainer/ItemInfo/ItemsPage"] custom_minimum_size = Vector2(0, 38) layout_mode = 2 - -[node name="ItemSlot" parent="InventoryInfo/HBoxContainer/ItemInfo/ItemsPage" instance=ExtResource("9_0io04")] -visible = false -layout_mode = 2 diff --git a/src/inventory_menu/ItemSlot.tscn b/src/inventory_menu/ItemSlot.tscn index 8240a10c..ef4bafea 100644 --- a/src/inventory_menu/ItemSlot.tscn +++ b/src/inventory_menu/ItemSlot.tscn @@ -1,15 +1,10 @@ -[gd_scene load_steps=7 format=3 uid="uid://c005nd0m2eim"] +[gd_scene load_steps=6 format=3 uid="uid://c005nd0m2eim"] [ext_resource type="LabelSettings" uid="uid://ca1q6yu8blwxf" path="res://src/ui/label_settings/InventoryMainTextBold.tres" id="1_ybfv1"] [ext_resource type="Script" path="res://src/inventory_menu/ItemSlot.cs" id="1_yttxt"] [ext_resource type="Texture2D" uid="uid://0r1dws4ajhdx" path="res://src/items/accessory/textures/MASK 01.PNG" id="2_7kdbd"] [ext_resource type="Script" path="res://src/inventory_menu/ItemLabel.cs" id="3_xlgl0"] -[ext_resource type="FontFile" uid="uid://bohbd123672ea" path="res://src/ui/fonts/FT88-Italic.ttf" id="3_ysc8t"] - -[sub_resource type="LabelSettings" id="LabelSettings_1303o"] -font = ExtResource("3_ysc8t") -font_size = 30 -font_color = Color(1, 0.94902, 0, 1) +[ext_resource type="LabelSettings" uid="uid://b3jrpf2sdtsqo" path="res://src/ui/label_settings/MainTextFontSelectedEquipped.tres" id="4_xl2xb"] [node name="ItemSlot" type="HBoxContainer"] custom_minimum_size = Vector2(100, 60) @@ -42,10 +37,10 @@ layout_mode = 2 [node name="ItemName" type="Label" parent="."] unique_name_in_owner = true -custom_minimum_size = Vector2(500, 50) +custom_minimum_size = Vector2(600, 50) layout_mode = 2 text = "Mask of the Goddess of Destruction" -label_settings = SubResource("LabelSettings_1303o") +label_settings = ExtResource("4_xl2xb") vertical_alignment = 1 autowrap_mode = 2 script = ExtResource("3_xlgl0") diff --git a/src/map/dungeon/rooms/Antechamber.tscn b/src/map/dungeon/rooms/Antechamber.tscn index 23d42685..77074871 100644 --- a/src/map/dungeon/rooms/Antechamber.tscn +++ b/src/map/dungeon/rooms/Antechamber.tscn @@ -1296,6 +1296,86 @@ gizmo_extents = 1.0 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) gizmo_extents = 1.0 +[node name="ItemSpawn21" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn22" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn23" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn24" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn25" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn26" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn27" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn28" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn29" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn30" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn31" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn32" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn33" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn34" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn35" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn36" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn37" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn38" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn39" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + +[node name="ItemSpawn40" type="Marker3D" parent="ItemSpawnPoints"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704) +gizmo_extents = 1.0 + [node name="EnemySpawnPoints" type="Node3D" parent="."] unique_name_in_owner = true diff --git a/src/ui/label_settings/MainTextFontEquipped.tres b/src/ui/label_settings/MainTextFontEquipped.tres index 347b722e..c3482b11 100644 --- a/src/ui/label_settings/MainTextFontEquipped.tres +++ b/src/ui/label_settings/MainTextFontEquipped.tres @@ -1,8 +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"] +[ext_resource type="FontFile" uid="uid://cb41qqmxqurj8" path="res://src/ui/fonts/FT88-Bold.ttf" id="1_t2ic4"] [resource] -font = ExtResource("1_c4w2u") +font = ExtResource("1_t2ic4") font_size = 36 -font_color = Color(1, 0.94902, 0, 1) +font_color = Color(0, 0.682353, 0.937255, 1) diff --git a/src/ui/label_settings/MainTextFontSelectedEquipped.tres b/src/ui/label_settings/MainTextFontSelectedEquipped.tres new file mode 100644 index 00000000..677ef1e9 --- /dev/null +++ b/src/ui/label_settings/MainTextFontSelectedEquipped.tres @@ -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)