Fixed inventory screen
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
8
src/ui/label_settings/MainTextFontSelectedEquipped.tres
Normal file
8
src/ui/label_settings/MainTextFontSelectedEquipped.tres
Normal 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)
|
||||
Reference in New Issue
Block a user