save code
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
extends Node3D
|
||||
|
||||
@export var fire_rate: float = 0.5
|
||||
@export var projectile_lifetime: float = 4.0
|
||||
@export var projectile_prefab: PackedScene
|
||||
@export var rotate_to_mouse: Node3D
|
||||
@export var fire_point: Node3D
|
||||
|
||||
var can_fire: bool = true
|
||||
|
||||
func _process(_delta):
|
||||
if Input.is_action_pressed("fire") and can_fire:
|
||||
fire_projectile()
|
||||
can_fire = false
|
||||
await get_tree().create_timer(fire_rate).timeout
|
||||
can_fire = true
|
||||
|
||||
func fire_projectile():
|
||||
if projectile_prefab and fire_point and rotate_to_mouse:
|
||||
var projectile_instance = projectile_prefab.instantiate()
|
||||
get_parent().add_child(projectile_instance)
|
||||
projectile_instance.global_position = fire_point.global_position
|
||||
projectile_instance.set_fire_point(fire_point.global_transform.origin)
|
||||
|
||||
var direction = -rotate_to_mouse.global_transform.basis.z.normalized()
|
||||
projectile_instance.direction = direction
|
||||
projectile_instance.look_at(fire_point.global_position + -direction)
|
||||
|
||||
await get_tree().create_timer(projectile_lifetime).timeout
|
||||
if projectile_instance:
|
||||
projectile_instance.queue_free()
|
||||
Reference in New Issue
Block a user