23 lines
593 B
GDScript
23 lines
593 B
GDScript
class_name DesctructableItem extends Item
|
|
|
|
@onready var particles: GPUParticles3D = $Particles
|
|
@onready var mesh: MeshInstance3D = $Mesh
|
|
@onready var sfx: AudioStreamPlayer3D = $SFX
|
|
|
|
func _ready() -> void:
|
|
particles.one_shot = true
|
|
state_changed.connect(_on_state_changed)
|
|
health_changed.connect(_on_health_changed)
|
|
|
|
func _on_particles_finished() -> void:
|
|
destroy_item()
|
|
|
|
func _on_state_changed(new_state: States) -> void:
|
|
match new_state:
|
|
States.destroyed:
|
|
particles.emitting = true
|
|
mesh.queue_free()
|
|
|
|
func _on_health_changed(_health: int, _max_health: int) -> void:
|
|
sfx.play()
|