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 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()
{
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<ItemSlot>();
foreach (var item in items)
foreach (var item in ItemSlots)
{
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="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

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

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)
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

View File

@@ -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)

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)