using Godot; namespace Cirno.Scripts.Activables; public partial class DialogueStarter : Activable { [Export] private string _trackName = "timeline"; [Export] private Node2D _dialogueEndActivationTarget; private Node _dialogic; public override void _Ready() { base._Ready(); _dialogic = GetNode("/root/Dialogic"); _dialogic.Connect("timeline_ended", Callable.From(OnTimelineEnded)); } private void OnTimelineEnded() { DialogueEndAction(); } public override void Activate() { _dialogic.Call("start", _trackName); // Script dialogic = ResourceLoader.Load("res://addons/dialogic/Other/DialogicClass.gd") as Script; // var dialog = (Node) dialogic.Call("start","timeline"); // AddChild(dialog); //if (Dialogic) } private bool DialogueEndAction() { if (_dialogueEndActivationTarget is not IActivable target) { GD.PrintErr($"Target {_dialogueEndActivationTarget.Name} is not activable"); return false; } target?.Activate(); GD.Print($"{_dialogueEndActivationTarget.Name} activated"); return true; } }