class_name Ring extends CSGTorus3D var happy_material = preload("res://graphics/happy_material.tres") var collected = false signal collect_signal func _on_area_3d_body_entered(body: Node3D) -> void: if collected == false and body.name == "Sphere": self.material = happy_material collected = true $AudioStreamPlayer.play() collect_signal.emit()