From 4a0b2cd5502d6ffc07c19d58ea3b08ff9166cf40 Mon Sep 17 00:00:00 2001 From: kziolkowski Date: Sat, 5 Jul 2025 12:18:28 +0200 Subject: [PATCH] Improved Inventory UI (more in the middle, adapt to viewport size, new selector image) --- art/ui/UI/inventory_active.png | Bin 9169 -> 6457 bytes prefabs/UI/Inventory/Inventory.tscn | 67 +++++++++--------- scenes/Babushka_scene_farm_outside_2d.tscn | 17 +++-- .../CSharp/Common/Inventory/InventoryUi.cs | 29 ++++---- 4 files changed, 59 insertions(+), 54 deletions(-) diff --git a/art/ui/UI/inventory_active.png b/art/ui/UI/inventory_active.png index 1e123f29a79a696fa1d33860cfc7ee4977499979..d1129d0629afcfb9245f59a211695e5b5745cea6 100644 GIT binary patch literal 6457 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 bKnVOl@E^hWTeiTU00000NkvXXu0mjf?kYKD diff --git a/prefabs/UI/Inventory/Inventory.tscn b/prefabs/UI/Inventory/Inventory.tscn index 26ff779..a81dedf 100644 --- a/prefabs/UI/Inventory/Inventory.tscn +++ b/prefabs/UI/Inventory/Inventory.tscn @@ -2,12 +2,12 @@ [ext_resource type="Script" uid="uid://hg7jay2kt441" path="res://scripts/CSharp/Common/Inventory/InventoryUi.cs" id="1_6wusm"] [ext_resource type="Texture2D" uid="uid://3ln8aleyxgp1" path="res://art/ui/UI/UI_bag_export_01.png" id="3_vvo7l"] -[ext_resource type="Texture2D" uid="uid://c7wqla0mbu3np" path="res://art/ui/babushka_ui_tmp_inventory_select.png" id="4_tiss4"] [ext_resource type="Texture2D" uid="uid://u0dku75l17re" path="res://art/ui/UI/UI_bag_export_highlight_01.png" id="5_df8i8"] [ext_resource type="PackedScene" uid="uid://c0kmdjeqkqrwv" path="res://prefabs/UI/Inventory/Slot.tscn" id="5_u7kje"] [ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="6_n5apg"] [ext_resource type="Texture2D" uid="uid://bag1xalfh731d" path="res://art/ui/UI/UI_bag_export_highlight_02.png" id="6_u7kje"] [ext_resource type="Texture2D" uid="uid://cxptule8n38ph" path="res://art/ui/UI/UI_bag_export_highlight_03.png" id="7_l3npx"] +[ext_resource type="Texture2D" uid="uid://qwia360i1ir1" path="res://art/ui/UI/inventory_active.png" id="8_df8i8"] [node name="CanvasLayer" type="CanvasLayer"] layer = 90 @@ -18,7 +18,7 @@ scale = Vector2(0.7, 0.7) script = ExtResource("6_n5apg") itemToToggle = NodePath("../Inventory") -[node name="Inventory" type="Control" parent="."] +[node name="Inventory" type="Control" parent="." node_paths=PackedStringArray("_slotsParent", "_slotsMover", "_headerSlots", "_slotSelect")] layout_mode = 3 anchors_preset = 8 anchor_left = 0.5 @@ -30,7 +30,10 @@ grow_vertical = 2 scale = Vector2(0.7, 0.7) size_flags_vertical = 8 script = ExtResource("1_6wusm") -_inventoryOpenedOffset = -700.0 +_slotsParent = NodePath("SlotsContainer/SlotsMover/Slots") +_slotsMover = NodePath("SlotsContainer/SlotsMover") +_headerSlots = [NodePath("SlotsContainer/SlotsMover/Slots/Slot"), NodePath("SlotsContainer/SlotsMover/Slots/Slot2"), NodePath("SlotsContainer/SlotsMover/Slots/Slot3"), NodePath("SlotsContainer/SlotsMover/Slots/Slot4"), NodePath("SlotsContainer/SlotsMover/Slots/Slot5"), NodePath("SlotsContainer/SlotsMover/Slots/Slot6"), NodePath("SlotsContainer/SlotsMover/Slots/Slot7"), NodePath("SlotsContainer/SlotsMover/Slots/Slot8"), NodePath("SlotsContainer/SlotsMover/Slots/Slot9")] +_slotSelect = NodePath("SlotsContainer/SlotsMover/SlotSelectContainer/Selector") [node name="SlotsContainer" type="Control" parent="Inventory"] custom_minimum_size = Vector2(500, 0) @@ -45,32 +48,6 @@ offset_right = 250.0 grow_horizontal = 2 grow_vertical = 2 -[node name="SlotSelectContainer" type="Control" parent="Inventory/SlotsContainer"] -custom_minimum_size = Vector2(900, 100) -layout_mode = 1 -anchors_preset = 7 -anchor_left = 0.5 -anchor_top = 1.0 -anchor_right = 0.5 -anchor_bottom = 1.0 -offset_left = -450.0 -offset_top = -115.0 -offset_right = 450.0 -offset_bottom = -15.0 -grow_horizontal = 2 -grow_vertical = 0 - -[node name="Selector" type="TextureRect" parent="Inventory/SlotsContainer/SlotSelectContainer"] -z_index = 10 -custom_minimum_size = Vector2(100, 100) -layout_mode = 0 -offset_left = -45.7143 -offset_top = -49.2857 -offset_right = 54.2857 -offset_bottom = 50.7143 -texture = ExtResource("4_tiss4") -expand_mode = 1 - [node name="SlotsMover" type="Control" parent="Inventory/SlotsContainer"] custom_minimum_size = Vector2(900, 610) layout_mode = 1 @@ -99,8 +76,8 @@ layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -offset_left = 350.0 -offset_right = 254.0 +offset_left = 437.0 +offset_right = 341.0 offset_bottom = 30.0 grow_horizontal = 2 grow_vertical = 2 @@ -113,8 +90,8 @@ layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -offset_left = -350.0 -offset_right = -446.0 +offset_left = -357.0 +offset_right = -453.0 offset_bottom = 30.0 grow_horizontal = 2 grow_vertical = 2 @@ -448,3 +425,27 @@ offset_left = 703.0 offset_top = 512.0 offset_right = 803.0 offset_bottom = 612.0 + +[node name="SlotSelectContainer" type="Control" parent="Inventory/SlotsContainer/SlotsMover"] +custom_minimum_size = Vector2(900, 100) +layout_mode = 1 +anchors_preset = 7 +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -497.0 +offset_top = -164.0 +offset_right = 403.0 +offset_bottom = -64.0 +grow_horizontal = 2 +grow_vertical = 0 + +[node name="Selector" type="TextureRect" parent="Inventory/SlotsContainer/SlotsMover/SlotSelectContainer"] +z_index = 10 +custom_minimum_size = Vector2(100, 100) +layout_mode = 0 +offset_right = 100.0 +offset_bottom = 100.0 +texture = ExtResource("8_df8i8") +expand_mode = 1 diff --git a/scenes/Babushka_scene_farm_outside_2d.tscn b/scenes/Babushka_scene_farm_outside_2d.tscn index beb84ec..aa12d49 100644 --- a/scenes/Babushka_scene_farm_outside_2d.tscn +++ b/scenes/Babushka_scene_farm_outside_2d.tscn @@ -991,14 +991,23 @@ follow_viewport_enabled = false anchors_preset = 7 anchor_top = 1.0 anchor_bottom = 1.0 -offset_left = -126.0 -offset_top = -48.0 -offset_right = 221.82 -offset_bottom = 146.4 +offset_left = -116.0 +offset_top = -53.0 +offset_right = 231.82 +offset_bottom = 141.4 grow_vertical = 0 size_flags_horizontal = 6 size_flags_vertical = 10 +[node name="SlotsMover" parent="CanvasLayer/Inventory/SlotsContainer" index="0"] +anchors_preset = 7 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -450.0 +offset_top = -610.0 +offset_right = 450.0 +offset_bottom = 0.0 + [node name="Audio" type="Node" parent="."] [node name="Background Music" type="AudioStreamPlayer2D" parent="Audio"] diff --git a/scripts/CSharp/Common/Inventory/InventoryUi.cs b/scripts/CSharp/Common/Inventory/InventoryUi.cs index ae36c6f..f38e8e2 100644 --- a/scripts/CSharp/Common/Inventory/InventoryUi.cs +++ b/scripts/CSharp/Common/Inventory/InventoryUi.cs @@ -4,29 +4,22 @@ namespace Babushka.scripts.CSharp.Common.Inventory; public partial class InventoryUi : Control { - private Control _slots; - private Control _slotsMover; - private InventoryInstance _playerInventory; - private Control _slotSelect; + [Export] private Control _slotsParent; + [Export] private Control _slotsMover; + [Export] private Control[] _headerSlots; + [Export] private Control _slotSelect; + private InventoryInstance _playerInventory; private int? _slotOnMouse; - private bool _inventoryExtended = false; private Tween? _inventoryExtensionTween; - - [Export] private float _inventoryClosedOffset = 0f; - - [Export] private float _inventoryOpenedOffset = 200f; public override void _Ready() { GD.Print("Ready inventory ui"); - _slots = GetNode("SlotsContainer/SlotsMover/Slots"); - _slotsMover = GetNode("SlotsContainer/SlotsMover"); _playerInventory = InventoryManager.Instance.playerInventory; - _slotSelect = GetNode("SlotsContainer/SlotSelectContainer/Selector"); //PopulateSlots(); SubscribeSlots(); SetSlotContent(); @@ -44,7 +37,7 @@ public partial class InventoryUi : Control for (var i = 0; i < _playerInventory.Slots.Count; i++) { var inventorySlot = _playerInventory.Slots[i]; - var uiSlot = _slots.GetChild(i) as SlotUi; + var uiSlot = _slotsParent.GetChild(i) as SlotUi; if (inventorySlot.itemInstance != null) { @@ -82,7 +75,7 @@ public partial class InventoryUi : Control private void SetSlotSelectPosition() { - _slotSelect.Position = new Vector2(InventoryManager.Instance.CurrentSelectedSlotIndex * 100, 0); + _slotSelect.GlobalPosition = _headerSlots[InventoryManager.Instance.CurrentSelectedSlotIndex].GlobalPosition; } private void PopulateSlots() @@ -93,7 +86,7 @@ public partial class InventoryUi : Control var slotInstance = slotPackedScene.Instantiate(); slotInstance.index = index; slotInstance.Clicked += SlotClicked; - _slots.AddChild(slotInstance); + _slotsParent.AddChild(slotInstance); } } @@ -101,7 +94,7 @@ public partial class InventoryUi : Control { for (var index = 0; index < _playerInventory.Slots.Count; index++) { - var slotInstance = _slots.GetChild(index); + var slotInstance = _slotsParent.GetChild(index); slotInstance.index = index; slotInstance.Clicked += SlotClicked; } @@ -111,7 +104,7 @@ public partial class InventoryUi : Control { for (var index = 0; index < _playerInventory.Slots.Count; index++) { - var slotInstance = _slots.GetChild(index) as SlotUi; + var slotInstance = _slotsParent.GetChild(index) as SlotUi; slotInstance!.Clicked -= SlotClicked; } } @@ -141,6 +134,8 @@ public partial class InventoryUi : Control { if (Input.IsActionJustPressed("ui_inventory_open_close")) { + // We adjust the offset value in accordance with the screen height to make sure that the inventory is always in the middle of the screen. + _inventoryOpenedOffset = (GetViewportRect().Size.Y / 2 + 400) * (-1); InputInventoryOpenClose(); }