feat: implement InventoryBackpack FSM and InventoryOverlay

- InventoryBackpack: Control-based FSM with IDLE/OPEN/SELECTED/ACQUIRE/REMOVE
  states, Tween-based animations, guard condition checks, signal connections
  to InventoryManager for item_acquired/item_removed reactions
- InventoryOverlay: Full-screen overlay with fade-in/out, item grid via
  GridContainer, drag-and-drop item selection, combination via drag-to-slot,
  hover labels, right-click inspect
- InventorySlot: Individual slot with colored box placeholder, hover highlight,
  click/right-click/hover signals
This commit is contained in:
2026-04-26 21:09:50 -07:00
parent dee6216873
commit afcf92dbfd
12 changed files with 629 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
[gd_scene format=3 uid="uid://1406xmcnkygw0"]
[ext_resource type="Script" uid="uid://2x3g0ethsdcgo" path="res://inventory/inventory_backpack/InventoryBackpack.gd" id="1"]
[node name="InventoryBackpack" type="Control" unique_id=1000000001]
layout_mode = 3
anchors_preset = 2
anchor_right = 1.0
offset_top = 10.0
offset_right = -10.0
offset_bottom = 70.0
script = ExtResource("1")
[node name="BackpackIcon" type="ColorRect" parent="." unique_id=1000000002]
layout_mode = 0
offset_left = 0.0
offset_top = 0.0
offset_right = 60.0
offset_bottom = 60.0
color = Color(0.4, 0.6, 0.9, 1)
[node name="FloatingItem" type="ColorRect" parent="." unique_id=1000000003]
layout_mode = 0
offset_left = 20.0
offset_top = -30.0
offset_right = 50.0
offset_bottom = 0.0
color = Color(1, 0.6, 0.2, 1)
visible = false
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1000000004]