beta-1.2/signal-refactor (#1)
Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
extends BaseState
|
||||
class_name FiringArrowState
|
||||
|
||||
signal PlayerBeganFiringArrow
|
||||
signal PlayerFiredArrow(spawn_position: Vector2, direction: Vector2)
|
||||
signal ArrowFired(spawn_position: Vector2, direction: Vector2)
|
||||
|
||||
@export var direction_component: FacingDirectionComponent
|
||||
@export var arrow_spawn_marker: Marker2D
|
||||
@@ -23,7 +24,7 @@ func Enter(_extra_parameters: Dictionary) -> void:
|
||||
direction = Vector2.UP
|
||||
elif direction_component.current_direction == Enums.Directions.DOWN:
|
||||
direction = Vector2.DOWN
|
||||
PlayerFiredArrow.emit(position, direction)
|
||||
ArrowFired.emit(position, direction)
|
||||
|
||||
|
||||
func OnFiringArrowAnimationFinished() -> void:
|
||||
|
||||
@@ -1,57 +1,18 @@
|
||||
extends CharacterBody2D
|
||||
class_name PlayerCharacter
|
||||
|
||||
signal InteractScannerAreaEntered(area: Area2D)
|
||||
signal InteractScannerAreaExited(area: Area2D)
|
||||
|
||||
signal InteractScannerBodyEntered(body: Node2D)
|
||||
signal InteractScannerBodyExited(body: Node2D)
|
||||
|
||||
signal InteractionActionTriggered()
|
||||
|
||||
signal ArrowFired(fire_position: Vector2, direction: Vector2)
|
||||
# Signals
|
||||
signal SitOnFurnitureTriggered(sitting_position: Vector2, sitting_direction: Enums.Directions)
|
||||
|
||||
signal CutsceneStarted()
|
||||
signal CutsceneEnded()
|
||||
|
||||
@export var player_sprite: Node2D
|
||||
# Exports
|
||||
@export var player_sprite: PlayerSprite
|
||||
@export var state_machine: PlayerStateMachine
|
||||
@export var interact_scanner: InteractScanner
|
||||
|
||||
# Public Methods
|
||||
func OnSitOnFurnitureTriggered(sitting_position: Vector2, sitting_direction: Enums.Directions):
|
||||
SitOnFurnitureTriggered.emit(sitting_position, sitting_direction)
|
||||
func QueueCutsceneState() -> void:
|
||||
state_machine.QueueStateChange(PlayerStateMachine.States.CUTSCENE)
|
||||
|
||||
|
||||
func OnCutsceneStarted() -> void:
|
||||
CutsceneStarted.emit()
|
||||
|
||||
|
||||
func OnCutsceneEnded() -> void:
|
||||
CutsceneEnded.emit()
|
||||
|
||||
|
||||
# Private Methods
|
||||
func _on_interact_scanner_area_entered(area: Area2D) -> void:
|
||||
InteractScannerAreaEntered.emit(area)
|
||||
|
||||
|
||||
func _on_interact_scanner_area_exited(area: Area2D) -> void:
|
||||
InteractScannerAreaExited.emit(area)
|
||||
|
||||
|
||||
func _on_interact_scanner_body_entered(body: Node2D) -> void:
|
||||
InteractScannerBodyEntered.emit(body)
|
||||
|
||||
|
||||
func _on_interact_scanner_body_exited(body: Node2D) -> void:
|
||||
InteractScannerBodyExited.emit(body)
|
||||
|
||||
|
||||
func _on_interaction_action_triggered() -> void:
|
||||
if state_machine.current_state.IsStateActionable():
|
||||
InteractionActionTriggered.emit()
|
||||
|
||||
|
||||
func _on_using_item_a_state_arrow_fired(fire_position: Vector2, direction: Vector2) -> void:
|
||||
ArrowFired.emit(fire_position, direction)
|
||||
func QueueEndCutsceneState() -> void:
|
||||
state_machine.QueueStateChange(PlayerStateMachine.States.IDLE)
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
extends Node2D
|
||||
class_name PlayerSprite
|
||||
|
||||
# Signals
|
||||
signal DrawingBowAnimationFinished
|
||||
signal FiringArrowAnimationFinished
|
||||
signal AnimationFinished(animation_name: String)
|
||||
|
||||
# Exports
|
||||
@export var state_machine: PlayerStateMachine
|
||||
@export var direction_component: FacingDirectionComponent
|
||||
|
||||
# OnReady Variables
|
||||
@onready var full: AnimatedSprite2D = $Full
|
||||
@onready var base: AnimatedSprite2D = $Base
|
||||
@onready var hair: AnimatedSprite2D = $Hair
|
||||
@onready var pants: AnimatedSprite2D = $Pants
|
||||
@onready var hands: AnimatedSprite2D = $Hands
|
||||
@onready var shoes: AnimatedSprite2D = $Shoes
|
||||
|
||||
var all_parts: Array[AnimatedSprite2D]
|
||||
var current_animation := "idle-down"
|
||||
var is_flipped := false
|
||||
# Private Variables
|
||||
var _all_parts: Array[AnimatedSprite2D]
|
||||
var _current_animation := "idle-down"
|
||||
var _is_flipped := false
|
||||
|
||||
# Public Methods
|
||||
func UpdateSprite() -> void:
|
||||
@@ -25,37 +25,37 @@ func UpdateSprite() -> void:
|
||||
var animation := _build_animation_name(current_state, current_direction)
|
||||
var should_flip := _should_flip_horizontal()
|
||||
|
||||
if animation == current_animation and should_flip == is_flipped:
|
||||
if animation == _current_animation and should_flip == _is_flipped:
|
||||
return
|
||||
|
||||
current_animation = animation
|
||||
is_flipped = should_flip
|
||||
_current_animation = animation
|
||||
_is_flipped = should_flip
|
||||
|
||||
for part in all_parts:
|
||||
for part in _all_parts:
|
||||
part.animation = animation
|
||||
part.play()
|
||||
part.flip_h = should_flip
|
||||
|
||||
|
||||
func OnAnimationFinished() -> void:
|
||||
if current_animation.begins_with("drawing-bow-"):
|
||||
if _current_animation.begins_with("drawing-bow-"):
|
||||
DrawingBowAnimationFinished.emit()
|
||||
elif current_animation.begins_with("firing-arrow-"):
|
||||
elif _current_animation.begins_with("firing-arrow-"):
|
||||
FiringArrowAnimationFinished.emit()
|
||||
AnimationFinished.emit(current_animation)
|
||||
AnimationFinished.emit(_current_animation)
|
||||
|
||||
|
||||
func PlaySpecifiedAnimation(animation_name: String) -> void:
|
||||
current_animation = animation_name
|
||||
for part in all_parts:
|
||||
_current_animation = animation_name
|
||||
for part in _all_parts:
|
||||
part.animation = animation_name
|
||||
part.play()
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
all_parts = [
|
||||
full, #base, hair, pants, hands, shoes
|
||||
_all_parts = [
|
||||
full
|
||||
]
|
||||
|
||||
UpdateSprite()
|
||||
@@ -63,8 +63,8 @@ func _ready() -> void:
|
||||
|
||||
func _build_animation_name(state: BaseState, direction: Enums.Directions) -> String:
|
||||
# e.g. "idle-down", "walking-up"
|
||||
var state_str = state.GetAnimationBaseName().replace("_", "-")
|
||||
var direction_str = _direction_to_animation_state(direction)
|
||||
var state_str := state.GetAnimationBaseName().replace("_", "-")
|
||||
var direction_str := _direction_to_animation_state(direction)
|
||||
return "%s-%s" % [state_str, direction_str]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user