class_name Spray extends Tool ## Base class for spraygun tools @onready var spray_effect: MeshInstance3D = %SprayEffect @onready var beam_particles_1: GPUParticles3D = %BeamParticles1 @onready var beam_particles_2: GPUParticles3D = %BeamParticles2 func _spray() -> void: pass ## Implemented in derived type func _fire() -> void: _spray() spray_effect.visible = true beam_particles_1.emitting = true beam_particles_2.emitting = true func _idle() -> void: spray_effect.visible = false beam_particles_1.emitting = false beam_particles_2.emitting = false