23 lines
802 B
GDScript
23 lines
802 B
GDScript
class_name NotificationManager extends Node
|
|
|
|
@export var notification_scene: PackedScene
|
|
|
|
var _active_notification: NotificationDisplay = null
|
|
|
|
func _ready() -> void:
|
|
EventBus.weapon_changed.connect(_on_weapon_changed)
|
|
|
|
|
|
func _on_weapon_changed(weapon_name: String, player_node: Node2D, player_sprite_size: Vector2, origin_offset: float) -> void:
|
|
if notification_scene == null:
|
|
return
|
|
|
|
# Free any existing notification so the new one can fade in cleanly
|
|
if _active_notification:
|
|
_active_notification.queue_free()
|
|
_active_notification = null
|
|
|
|
var notification = notification_scene.instantiate()
|
|
add_child(notification)
|
|
_active_notification = notification
|
|
notification.show_notification(weapon_name, player_node, player_sprite_size, origin_offset)
|