diff --git a/ui/hud.gd b/ui/hud.gd index 1c1ca3a..c691719 100644 --- a/ui/hud.gd +++ b/ui/hud.gd @@ -1,17 +1,18 @@ extends CanvasLayer -@onready var engrenage_count := $InventoryPanel/Engrenage/Count -@onready var cable_count := $InventoryPanel/Cable/Count -@onready var circuit_count := $InventoryPanel/Circuit/Count +# Slots : dictionnaire item_id → Label du compteur +@onready var slots := { + "engrenage": $InventoryBar/ItemRow/EngrenageSlot/Count, + "cable": $InventoryBar/ItemRow/CableSlot/Count, + "circuit": $InventoryBar/ItemRow/CircuitSlot/Count, +} func _ready() -> void: - GameState.inventory_changed.connect(_on_inventory_changed) - _refresh() - -func _on_inventory_changed() -> void: + GameState.inventory_changed.connect(_refresh) _refresh() func _refresh() -> void: - engrenage_count.text = "x %d" % GameState.inventory.get("engrenage", 0) - cable_count.text = "x %d" % GameState.inventory.get("cable", 0) - circuit_count.text = "x %d" % GameState.inventory.get("circuit", 0) + for item_id in slots: + var count : int = GameState.inventory.get(item_id, 0) + slots[item_id].text = "x%d" % count + slots[item_id].get_parent().modulate.a = 0.4 if count == 0 else 1.0 diff --git a/ui/hud.tscn b/ui/hud.tscn index df7ab2a..eb2bdfb 100644 --- a/ui/hud.tscn +++ b/ui/hud.tscn @@ -1,55 +1,59 @@ [gd_scene format=3 uid="uid://o7qrmpywwhu8"] [ext_resource type="Script" uid="uid://bmqknwqr5mtd6" path="res://ui/hud.gd" id="1_rbyyf"] -[ext_resource type="Texture2D" uid="uid://bt7xdf44qq2ud" path="res://tests/assets/sprites/ui/inventory_item_back.png" id="2_276te"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rbyyf"] +bg_color = Color(0.101960786, 0.101960786, 0.101960786, 0.84705883) +border_width_top = 1 +border_color = Color(0.33333334, 0.33333334, 0.33333334, 1) +border_blend = true [node name="Hud" type="Node2D" unique_id=1774402684] [node name="HUD" type="CanvasLayer" parent="." unique_id=1046780358] script = ExtResource("1_rbyyf") -[node name="InventoryPanel" type="VBoxContainer" parent="HUD" unique_id=260352894] -anchors_preset = 2 +[node name="InventoryBar" type="PanelContainer" parent="HUD" unique_id=255970268] +anchors_preset = 12 anchor_top = 1.0 +anchor_right = 1.0 anchor_bottom = 1.0 -offset_top = -180.0 -offset_right = 320.0 +offset_top = -23.0 +grow_horizontal = 2 grow_vertical = 0 -alignment = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_rbyyf") -[node name="Label" type="Label" parent="HUD/InventoryPanel" unique_id=187015042] +[node name="ItemRow" type="HBoxContainer" parent="HUD/InventoryBar" unique_id=616700836] layout_mode = 2 -text = "Inventory" +theme_override_constants/separation = 8 +alignment = 1 -[node name="Engrenage" type="HBoxContainer" parent="HUD/InventoryPanel" unique_id=861641794] +[node name="EngrenageSlot" type="HBoxContainer" parent="HUD/InventoryBar/ItemRow" unique_id=615738426] layout_mode = 2 -[node name="Icon" type="TextureRect" parent="HUD/InventoryPanel/Engrenage" unique_id=397063473] -layout_mode = 2 -texture = ExtResource("2_276te") -stretch_mode = 3 - -[node name="Count" type="Label" parent="HUD/InventoryPanel/Engrenage" unique_id=650103914] +[node name="Icon" type="TextureRect" parent="HUD/InventoryBar/ItemRow/EngrenageSlot" unique_id=1435745466] layout_mode = 2 -[node name="Cable" type="HBoxContainer" parent="HUD/InventoryPanel" unique_id=1723351300] +[node name="Count" type="Label" parent="HUD/InventoryBar/ItemRow/EngrenageSlot" unique_id=1082443403] +layout_mode = 2 +theme_override_font_sizes/font_size = 8 + +[node name="CableSlot" type="HBoxContainer" parent="HUD/InventoryBar/ItemRow" unique_id=1777823230] layout_mode = 2 -[node name="Icon" type="TextureRect" parent="HUD/InventoryPanel/Cable" unique_id=195427130] -layout_mode = 2 -texture = ExtResource("2_276te") -stretch_mode = 3 - -[node name="Count" type="Label" parent="HUD/InventoryPanel/Cable" unique_id=20736457] +[node name="Icon" type="TextureRect" parent="HUD/InventoryBar/ItemRow/CableSlot" unique_id=1512420928] layout_mode = 2 -[node name="Circuit" type="HBoxContainer" parent="HUD/InventoryPanel" unique_id=578252295] +[node name="Count" type="Label" parent="HUD/InventoryBar/ItemRow/CableSlot" unique_id=241891402] +layout_mode = 2 +theme_override_font_sizes/font_size = 8 + +[node name="CircuitSlot" type="HBoxContainer" parent="HUD/InventoryBar/ItemRow" unique_id=707078098] layout_mode = 2 -[node name="Icon" type="TextureRect" parent="HUD/InventoryPanel/Circuit" unique_id=1833323471] +[node name="Icon" type="TextureRect" parent="HUD/InventoryBar/ItemRow/CircuitSlot" unique_id=273462465] layout_mode = 2 -texture = ExtResource("2_276te") -stretch_mode = 3 -[node name="Count" type="Label" parent="HUD/InventoryPanel/Circuit" unique_id=375460837] +[node name="Count" type="Label" parent="HUD/InventoryBar/ItemRow/CircuitSlot" unique_id=766125092] layout_mode = 2 +theme_override_font_sizes/font_size = 8