diff --git a/autoloads/inventory_manager.gd b/autoloads/inventory_manager.gd new file mode 100644 index 0000000..3fc4cac --- /dev/null +++ b/autoloads/inventory_manager.gd @@ -0,0 +1,7 @@ +extends Node + +# QuickSlot related signals +signal next_quick_slot +signal previous_quick_slot +signal select_quick_slot(slot_index: int) +signal quick_slot_item_changed(item_id: String) diff --git a/autoloads/inventory_manager.gd.uid b/autoloads/inventory_manager.gd.uid new file mode 100644 index 0000000..f1cc3f0 --- /dev/null +++ b/autoloads/inventory_manager.gd.uid @@ -0,0 +1 @@ +uid://d1yg7dtie83ry diff --git a/autoloads/quick_slots.tscn b/autoloads/quick_slots.tscn deleted file mode 100644 index ec05554..0000000 --- a/autoloads/quick_slots.tscn +++ /dev/null @@ -1,6 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://ctxl46pkm0ac5"] - -[ext_resource type="Script" uid="uid://bcq6vexsmyeol" path="res://autoloads/quick_slots.gd" id="1_5cv54"] - -[node name="QuickSlots" type="Node"] -script = ExtResource("1_5cv54") diff --git a/project.godot b/project.godot index e2a6e23..40f2aaa 100644 --- a/project.godot +++ b/project.godot @@ -19,6 +19,7 @@ config/icon="res://icon.svg" Global="*res://autoloads/global.gd" EntityManager="*res://autoloads/entity_manager.gd" +InventoryManager="*res://autoloads/inventory_manager.gd" [debug] diff --git a/root.tscn b/root.tscn index 8103a8a..194c3f5 100644 --- a/root.tscn +++ b/root.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=5 format=3 uid="uid://cgx0nawwjjj7g"] +[gd_scene load_steps=4 format=3 uid="uid://cgx0nawwjjj7g"] [ext_resource type="PackedScene" uid="uid://c0epfh4sqjcjq" path="res://data_structure/db_items.tscn" id="1_pyidc"] -[ext_resource type="PackedScene" uid="uid://ctxl46pkm0ac5" path="res://autoloads/quick_slots.tscn" id="2_28aoi"] [ext_resource type="PackedScene" uid="uid://mkfitwqnerku" path="res://scenes/world/world.tscn" id="2_vvh5c"] [ext_resource type="PackedScene" uid="uid://c7fj7wla8bd70" path="res://scenes/ui/ui.tscn" id="3_vvh5c"] @@ -9,8 +8,6 @@ [node name="DBItems" parent="." instance=ExtResource("1_pyidc")] -[node name="QuickSlots" parent="." instance=ExtResource("2_28aoi")] - [node name="World" parent="." instance=ExtResource("2_vvh5c")] [node name="UI" parent="." instance=ExtResource("3_vvh5c")] diff --git a/autoloads/quick_slots.gd b/scenes/ui/quick_slots.gd similarity index 67% rename from autoloads/quick_slots.gd rename to scenes/ui/quick_slots.gd index eff0ef7..dbec00a 100644 --- a/autoloads/quick_slots.gd +++ b/scenes/ui/quick_slots.gd @@ -9,6 +9,10 @@ func _init() -> void: ref = self else: queue_free() + + InventoryManager.next_quick_slot.connect(select_next_item.bind()) + InventoryManager.previous_quick_slot.connect(select_previous_item.bind()) + InventoryManager.select_quick_slot.connect(select_item_index.bind()) #endregion @@ -37,8 +41,14 @@ func get_quickslot_index() -> int: func get_selected_item() -> String: return _items[_selected_item] +func select_item_index(slot_index: int) -> void: + _selected_item = slot_index + InventoryManager.quick_slot_item_changed.emit(get_selected_item()) + func select_previous_item() -> void: _selected_item = clampi(_selected_item - 1, 0, _items.size() - 1) + InventoryManager.quick_slot_item_changed.emit(get_selected_item()) func select_next_item() -> void: _selected_item = clampi(_selected_item + 1, 0, _items.size() - 1) + InventoryManager.quick_slot_item_changed.emit(get_selected_item()) diff --git a/autoloads/quick_slots.gd.uid b/scenes/ui/quick_slots.gd.uid similarity index 100% rename from autoloads/quick_slots.gd.uid rename to scenes/ui/quick_slots.gd.uid diff --git a/scenes/ui/quick_slots.tscn b/scenes/ui/quick_slots.tscn index 0047363..83d81cc 100644 --- a/scenes/ui/quick_slots.tscn +++ b/scenes/ui/quick_slots.tscn @@ -1,5 +1,6 @@ -[gd_scene load_steps=5 format=3 uid="uid://cbiygbgpfk220"] +[gd_scene load_steps=6 format=3 uid="uid://cbiygbgpfk220"] +[ext_resource type="Script" uid="uid://bcq6vexsmyeol" path="res://scenes/ui/quick_slots.gd" id="1_cqw2g"] [ext_resource type="Texture2D" uid="uid://li36txj7oweq" path="res://assets/textures/dirt.png" id="2_kotkb"] [ext_resource type="Texture2D" uid="uid://ct1iawpfkdf5l" path="res://assets/textures/stone.png" id="3_cqw2g"] [ext_resource type="Texture2D" uid="uid://0mw651622h01" path="res://assets/textures/wood-side.png" id="4_yyyxx"] @@ -20,6 +21,7 @@ theme_override_constants/margin_left = 8 theme_override_constants/margin_top = 8 theme_override_constants/margin_right = 8 theme_override_constants/margin_bottom = 8 +script = ExtResource("1_cqw2g") [node name="GridContainer" type="GridContainer" parent="."] layout_mode = 2