Refactor signal logic
This commit is contained in:
@@ -1,24 +1,22 @@
|
||||
extends Node
|
||||
|
||||
# Exports
|
||||
@export var player: PlayerCharacter
|
||||
@export var arrow_parent: Node2D
|
||||
|
||||
# Preloads
|
||||
const wooden_arrow_scene: PackedScene = preload("uid://b2wq5m01b68rx")
|
||||
|
||||
# Public Methods
|
||||
func OnArrowFired(fire_position: Vector2, direction: Vector2) -> void:
|
||||
var wooden_arrow := wooden_arrow_scene.instantiate() as BaseProjectile
|
||||
wooden_arrow.SetProjectileStartAndDirection(fire_position, direction)
|
||||
|
||||
if arrow_parent == null:
|
||||
return
|
||||
arrow_parent.add_child(wooden_arrow)
|
||||
|
||||
|
||||
# Private Methods
|
||||
func _ready() -> void:
|
||||
var players := get_tree().get_nodes_in_group("Player Group")
|
||||
if players == null or players.is_empty() or players[0] is not PlayerCharacter:
|
||||
var firing_arrow_state: FiringArrowState = player.get_node("State Machine/States/Firing Arrow State")
|
||||
firing_arrow_state.ArrowFired.connect(_on_arrow_fired)
|
||||
|
||||
|
||||
func _on_arrow_fired(fire_position: Vector2, direction: Vector2) -> void:
|
||||
var wooden_arrow := wooden_arrow_scene.instantiate() as BaseProjectile
|
||||
wooden_arrow.SetProjectileStartAndDirection(fire_position, direction)
|
||||
|
||||
if arrow_parent == null:
|
||||
return
|
||||
|
||||
var player := players[0] as PlayerCharacter
|
||||
player.ArrowFired.connect(OnArrowFired)
|
||||
arrow_parent.add_child(wooden_arrow)
|
||||
|
||||
Reference in New Issue
Block a user