class_name Item extends Area2D @onready var player = get_tree().get_root().get_node("main/Player") func _ready() -> void: self.connect("body_entered", _on_body_entered) func _on_body_entered(body: Node2D): if(body.name == "Player"): if(self.has_method("collect") and collect()): set_deferred("monitoring", false) set_deferred("monitorable", false) call_deferred("reparent", player) collect_animation() func collect_animation(): self.visible = false func collect(): push_error("Please specify item collection behavior")