Refactor signal logic

This commit is contained in:
2026-03-15 13:06:21 -05:00
parent 1c95315496
commit 8bcf406576
21 changed files with 234 additions and 223 deletions

View File

@@ -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)