class_name Item extends Area2D @onready var player = get_tree().get_root().get_node_or_null("main/Player") func _physics_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() func collect_animation(): self.visible = false func collect(): push_error("Please specify item collection behavior") return false