class_name PointSpray extends Spray ## Simple single-point spraygun @export var spray_scale := 16.0 @onready var raycast: RayCast3D = %RayCast3D @onready var spray_effect: MeshInstance3D = %SprayEffect func fire() -> void: if raycast.is_colliding(): var collider := raycast.get_collider() if collider is GunkBody: var point := raycast.get_collision_point() var point_scale := sqrt(point.distance_to(global_position)) * spray_scale (collider as GunkBody).paint_continuous( point, raycast.get_collision_normal(), point_scale ) spray_effect.visible = true func idle() -> void: spray_effect.visible = false