using Godot; namespace Babushka.scripts.CSharp.Common.NPC; public partial class TalkingCharacter : Node2D { [Export] private AnimatedSprite2D? _sprite; [Export] private string[] _timelinesToPlay; private bool _isTalking = true; private int _timelineIndex = 0; [Signal] public delegate void TalkingEventHandler(string timelineName); public override void _Ready() { ToggleTalking(); } public void ToggleTalking() { if (_isTalking || _timelineIndex >= _timelinesToPlay.Length) { if (_sprite != null) _sprite.Animation = "idle"; _isTalking = false; } else { if (_sprite != null) _sprite.Animation = "talk"; _isTalking = true; EmitSignal(SignalName.Talking, _timelinesToPlay[_timelineIndex]); _timelineIndex++; } if (_sprite != null) _sprite.Play(); } }