limboai/demo/ai/tasks/play_animation.gd

47 lines
1.0 KiB
GDScript3
Raw Normal View History

#*
#* play_animation.gd
#* =============================================================================
#* Copyright 2021-2023 Serhii Snitsaruk
#*
#* Use of this source code is governed by an MIT-style
#* license that can be found in the LICENSE file or at
#* https://opensource.org/licenses/MIT.
#* =============================================================================
#*
@tool
extends BTAction
@export var animation_name: String
2022-12-16 03:16:19 +00:00
@export var animation_player: NodePath
var _player: AnimationPlayer
var _finished: bool
func _generate_name() -> String:
return "PlayAnimation \"%s\"" % animation_name
func _setup() -> void:
2022-12-16 03:16:19 +00:00
_player = agent.get_node(animation_player)
func _enter() -> void:
if _player.has_animation(animation_name):
_finished = false
_player.play(animation_name)
_player.animation_finished.connect(_on_animation_finished, CONNECT_ONE_SHOT)
else:
_finished = true
func _tick(_delta: float) -> int:
if _finished:
return SUCCESS
return RUNNING
func _on_animation_finished(_anim):
_finished = true