diff --git a/Scenes/test.tscn b/Scenes/test.tscn index 1202fed1..4041f942 100644 --- a/Scenes/test.tscn +++ b/Scenes/test.tscn @@ -109,6 +109,9 @@ position = Vector2(-1048, 184) [node name="Door_vertical2" parent="Factory Tilemaps" instance=ExtResource("15_mgtvp")] position = Vector2(-840, 184) +[node name="Door_vertical3" parent="Factory Tilemaps" instance=ExtResource("15_mgtvp")] +position = Vector2(-839, -120) + [node name="HorizontalDoor" parent="Factory Tilemaps" instance=ExtResource("12_i7i2m")] position = Vector2(-1120, 128) @@ -199,7 +202,8 @@ position = Vector2(-772, -127) Target = NodePath("../DialogueStarter") OneTime = true -[node name="DialogueStarter" type="Node2D" parent="."] +[node name="DialogueStarter" type="Node2D" parent="." node_paths=PackedStringArray("_dialogueEndActivationTarget")] script = ExtResource("29_pvkri") +_dialogueEndActivationTarget = NodePath("../Factory Tilemaps/Door_vertical3") [editable path="Factory Tilemaps/Camera"] diff --git a/Scripts/Activables/DialogueStarter.cs b/Scripts/Activables/DialogueStarter.cs index ed90b4fc..9f4b41cf 100644 --- a/Scripts/Activables/DialogueStarter.cs +++ b/Scripts/Activables/DialogueStarter.cs @@ -6,6 +6,8 @@ public partial class DialogueStarter : Activable { [Export] private string _trackName = "timeline"; + + [Export] private Node2D _dialogueEndActivationTarget; private Node _dialogic; @@ -14,6 +16,13 @@ public partial class DialogueStarter : Activable base._Ready(); _dialogic = GetNode("/root/Dialogic"); + + _dialogic.Connect("timeline_ended", Callable.From(OnTimelineEnded)); + } + + private void OnTimelineEnded() + { + DialogueEndAction(); } public override void Activate() @@ -24,4 +33,19 @@ public partial class DialogueStarter : Activable // 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; + } } \ No newline at end of file diff --git a/Scripts/Interactables/AreaTrigger.cs b/Scripts/Interactables/AreaTrigger.cs index 6e6c3805..ea924c0d 100644 --- a/Scripts/Interactables/AreaTrigger.cs +++ b/Scripts/Interactables/AreaTrigger.cs @@ -21,7 +21,11 @@ public partial class AreaTrigger : Area2D if (OneTime && _activations > 0) return false; - if (Target is not IActivable target) return false; + if (Target is not IActivable target) + { + GD.PrintErr($"Target {Target.Name} is not activable"); + return false; + } target.Activate(); _activations++;