Fixed inventory screen

This commit is contained in:
2024-09-09 04:21:00 -07:00
parent 847ad13c4b
commit 2ac4660d1b
6 changed files with 147 additions and 24 deletions

View File

@@ -52,11 +52,21 @@ public partial class InventoryMenu : Control, IInventoryMenu
private const int _itemsPerPage = 10; private const int _itemsPerPage = 10;
private int _currentIndex = 0;
private ItemSlot[] ItemSlots => ItemsPage.GetChildren().OfType<ItemSlot>().ToArray();
private static LabelSettings ItemFont => GD.Load<LabelSettings>("res://src/ui/label_settings/MainTextRegular.tres");
private static LabelSettings SelectedItemFont => GD.Load<LabelSettings>("res://src/ui/label_settings/MainTextFontItalicized.tres");
private static LabelSettings EquippedItemFont => GD.Load<LabelSettings>("res://src/ui/label_settings/MainTextFontEquipped.tres");
private static LabelSettings SelectedEquippedItemFont => GD.Load<LabelSettings>("res://src/ui/label_settings/MainTextFontSelectedEquipped.tres");
public void PopulateItems() public void PopulateItems()
{ {
var inventory = GameRepo.InventoryItems.Value; var inventory = GameRepo.InventoryItems.Value;
var numberOfItemsToDisplay = Mathf.Min(inventory.Count, _itemsPerPage); var numberOfItemsToDisplay = _currentPageNumber == InventoryPageNumber.FirstPage ? Mathf.Min(inventory.Count, _itemsPerPage) : Mathf.Min(inventory.Count - _itemsPerPage, _itemsPerPage);
var indexToStart = _currentPageNumber == InventoryPageNumber.FirstPage ? 0 : 10; var indexToStart = _currentPageNumber == InventoryPageNumber.FirstPage ? 0 : _itemsPerPage - 1;
ForwardArrow.Text = ""; ForwardArrow.Text = "";
BackArrow.Text = ""; BackArrow.Text = "";
@@ -84,30 +94,64 @@ public partial class InventoryMenu : Control, IInventoryMenu
itemSlot.ItemTexture.Texture = item.Info.Texture; itemSlot.ItemTexture.Texture = item.Info.Texture;
itemSlot.EquipBonus.Text = "..."; itemSlot.EquipBonus.Text = "...";
} }
if (ItemSlots.Any())
ItemSlots.ElementAt(_currentIndex).ItemName.LabelSettings = SelectedItemFont;
} }
public override void _UnhandledInput(InputEvent @event) public override void _UnhandledInput(InputEvent @event)
{ {
var inventory = GameRepo.InventoryItems.Value; 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(); ClearItems();
_currentIndex = 0;
_currentPageNumber = InventoryPageNumber.SecondPage; _currentPageNumber = InventoryPageNumber.SecondPage;
PopulateItems(); PopulateItems();
} }
if (_currentPageNumber == InventoryPageNumber.SecondPage && Input.IsActionJustPressed(GameInputs.UiLeft)) if (ItemSlots.Any() && _currentPageNumber == InventoryPageNumber.SecondPage && Input.IsActionJustPressed(GameInputs.UiLeft))
{ {
ClearItems(); ClearItems();
_currentIndex = 0;
_currentPageNumber = InventoryPageNumber.FirstPage; _currentPageNumber = InventoryPageNumber.FirstPage;
PopulateItems(); 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() public void ClearItems()
{ {
var items = ItemsPage.GetChildren().OfType<ItemSlot>(); foreach (var item in ItemSlots)
foreach (var item in items)
{ {
ItemsPage.RemoveChild(item); ItemsPage.RemoveChild(item);
} }

View File

@@ -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="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"] [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://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://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="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"] [sub_resource type="LabelSettings" id="LabelSettings_q0afw"]
font = ExtResource("3_lm4o1") font = ExtResource("3_lm4o1")
@@ -61,6 +60,7 @@ font_size = 80
font_color = Color(0.737255, 0.705882, 0.690196, 1) font_color = Color(0.737255, 0.705882, 0.690196, 1)
[node name="InventoryMenu" type="Control"] [node name="InventoryMenu" type="Control"]
process_mode = 2
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@@ -362,7 +362,3 @@ alignment = 1
[node name="ReferenceRect3" type="ReferenceRect" parent="InventoryInfo/HBoxContainer/ItemInfo/ItemsPage"] [node name="ReferenceRect3" type="ReferenceRect" parent="InventoryInfo/HBoxContainer/ItemInfo/ItemsPage"]
custom_minimum_size = Vector2(0, 38) custom_minimum_size = Vector2(0, 38)
layout_mode = 2 layout_mode = 2
[node name="ItemSlot" parent="InventoryInfo/HBoxContainer/ItemInfo/ItemsPage" instance=ExtResource("9_0io04")]
visible = false
layout_mode = 2

View File

@@ -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="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="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="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="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"] [ext_resource type="LabelSettings" uid="uid://b3jrpf2sdtsqo" path="res://src/ui/label_settings/MainTextFontSelectedEquipped.tres" id="4_xl2xb"]
[sub_resource type="LabelSettings" id="LabelSettings_1303o"]
font = ExtResource("3_ysc8t")
font_size = 30
font_color = Color(1, 0.94902, 0, 1)
[node name="ItemSlot" type="HBoxContainer"] [node name="ItemSlot" type="HBoxContainer"]
custom_minimum_size = Vector2(100, 60) custom_minimum_size = Vector2(100, 60)
@@ -42,10 +37,10 @@ layout_mode = 2
[node name="ItemName" type="Label" parent="."] [node name="ItemName" type="Label" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
custom_minimum_size = Vector2(500, 50) custom_minimum_size = Vector2(600, 50)
layout_mode = 2 layout_mode = 2
text = "Mask of the Goddess of Destruction" text = "Mask of the Goddess of Destruction"
label_settings = SubResource("LabelSettings_1303o") label_settings = ExtResource("4_xl2xb")
vertical_alignment = 1 vertical_alignment = 1
autowrap_mode = 2 autowrap_mode = 2
script = ExtResource("3_xlgl0") script = ExtResource("3_xlgl0")

View File

@@ -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) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.8145, -11.8091, -2.92704)
gizmo_extents = 1.0 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="."] [node name="EnemySpawnPoints" type="Node3D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true

View File

@@ -1,8 +1,8 @@
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://ur3wpe2kp2j2"] [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] [resource]
font = ExtResource("1_c4w2u") font = ExtResource("1_t2ic4")
font_size = 36 font_size = 36
font_color = Color(1, 0.94902, 0, 1) 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://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)