Files
przygody-pana-cegly/scripts/components/ship_shooter.gd

33 lines
773 B
GDScript

class_name ShipShooter
extends Node
@export var bullet_scene: PackedScene
@export var fire_rate: float = 0.2
@export var bullet_spawn: Marker2D
@export var shoot_sfx: AudioStreamPlayer2D
var can_shoot: bool = true
func _process(_delta: float) -> void:
if Input.is_action_just_pressed("attack") and can_shoot:
shoot()
func shoot() -> void:
if not can_shoot:
return
var bullet: Node2D = bullet_scene.instantiate()
var init := bullet.get_node_or_null("ProjectileInitComponent") as ProjectileInitComponent
if init:
init.initialize({
"position": bullet_spawn.global_position,
})
get_tree().current_scene.add_child(bullet)
if shoot_sfx:
shoot_sfx.play()
can_shoot = false
await get_tree().create_timer(fire_rate).timeout
can_shoot = true