From 0d58cb3daa628f4145b59055a2979d749812b78c Mon Sep 17 00:00:00 2001 From: Ryan Reed Date: Thu, 6 Mar 2025 19:58:34 -0500 Subject: [PATCH] Finish moving away from the QuickSlots singleton --- autoloads/inventory_manager.gd | 11 ++++++++++- scenes/player/ray_cast_3d.gd | 2 +- scenes/ui/quick_slots.gd | 17 ++++------------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/autoloads/inventory_manager.gd b/autoloads/inventory_manager.gd index 3fc4cac..905fff2 100644 --- a/autoloads/inventory_manager.gd +++ b/autoloads/inventory_manager.gd @@ -1,7 +1,16 @@ 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) + +var quick_slot_item_id: String = "001" + + +func _ready() -> void: + self.quick_slot_item_changed.connect(_on_quick_slot_item_changed.bind()) + + +func _on_quick_slot_item_changed(item_id: String) -> void: + quick_slot_item_id = item_id diff --git a/scenes/player/ray_cast_3d.gd b/scenes/player/ray_cast_3d.gd index f8b8cf9..515c8a1 100644 --- a/scenes/player/ray_cast_3d.gd +++ b/scenes/player/ray_cast_3d.gd @@ -10,7 +10,7 @@ func _process(_delta: float) -> void: (collider as Block).interact_left_click() if Input.is_action_just_pressed("right_click_interact"): EntityManager.create_block.emit( - QuickSlots.ref.get_selected_item(), + InventoryManager.quick_slot_item_id, collider.position + get_collision_normal() ) diff --git a/scenes/ui/quick_slots.gd b/scenes/ui/quick_slots.gd index dbec00a..693b9b5 100644 --- a/scenes/ui/quick_slots.gd +++ b/scenes/ui/quick_slots.gd @@ -1,24 +1,15 @@ class_name QuickSlots extends Node -#region Singleton -static var ref: QuickSlots -func _init() -> void: - if not ref: - ref = self - else: - queue_free() +var _items: Array[String] = ["001", "002", "003", "004"] +var _selected_item: int = 0 + +func _init() -> void: 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 - - -var _items: Array[String] = ["001", "002", "003", "004"] -var _selected_item: int = 0 - func _unhandled_input(event: InputEvent) -> void: if event.is_action_pressed("quickslot0"):