class_name Item extends Area2D @onready var player = get_tree().get_root().get_node_or_null("main/Player") var collected = false @export var icon : Texture2D @export var item_name : String = "" func _process(_delta: float) -> void: if(is_instance_valid(player) and overlaps_body(player)): if(self.has_method("collect") and collect()): set_deferred("monitoring", false) set_deferred("monitorable", false) call_deferred("reparent", player) collect_animation() collected = true func collect_animation(): self.visible = false if self.has_node("AudioStreamPlayer2D"): $AudioStreamPlayer2D.play() func collect(): push_error("Please specify item collection behavior") return false