From 57d19a8ad2fcd86cd8036f605c498abe15d4fe6f Mon Sep 17 00:00:00 2001 From: jonathan Date: Tue, 19 Aug 2025 14:10:34 +0200 Subject: [PATCH] Quick and dirty fix, do not merge --- scenes/Babushka_scene_farm_outside_2d.tscn | 2 ++ scripts/CSharp/Common/NPC/TalkingCharacter.cs | 21 ++++++++++++++----- scripts/CSharp/Common/SceneTransition.cs | 2 +- scripts/GdScript/dialogic_start_specific.gd | 4 ++++ 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/scenes/Babushka_scene_farm_outside_2d.tscn b/scenes/Babushka_scene_farm_outside_2d.tscn index 45bf977..23456c9 100644 --- a/scenes/Babushka_scene_farm_outside_2d.tscn +++ b/scenes/Babushka_scene_farm_outside_2d.tscn @@ -1030,6 +1030,7 @@ y_sort_enabled = true [node name="Yeli" parent="YSorted" instance=ExtResource("24_wtdui")] position = Vector2(6403, 3362) _timelinesToPlay = PackedStringArray("yeli_quest_select") +_retriggerSameTimeline = true [node name="Vesna" parent="YSorted" node_paths=PackedStringArray("_fieldParent") instance=ExtResource("1_7wfwe")] z_index = 1 @@ -2343,6 +2344,7 @@ script = ExtResource("40_w3jkj") script = ExtResource("66_2065p") questResource = ExtResource("67_tm0yg") toStatus = 1 +makeActive = true [node name="ToolsCollectedTrigger" type="Node" parent="SpeicialQuestTrigger"] script = ExtResource("68_hux6i") diff --git a/scripts/CSharp/Common/NPC/TalkingCharacter.cs b/scripts/CSharp/Common/NPC/TalkingCharacter.cs index 96c5fc5..bbe5f40 100644 --- a/scripts/CSharp/Common/NPC/TalkingCharacter.cs +++ b/scripts/CSharp/Common/NPC/TalkingCharacter.cs @@ -2,35 +2,46 @@ using Godot; namespace Babushka.scripts.CSharp.Common.NPC; +[GlobalClass] public partial class TalkingCharacter : Node2D { [Export] private AnimatedSprite2D? _sprite; [Export] private string[] _timelinesToPlay; [Export] private bool _retriggerSameTimeline = false; - private bool _isTalking = true; + public static bool isTalking = false; private int _timelineIndex = 0; + public static void SetTalking(bool talking) + { + isTalking = talking; + } + [Signal] public delegate void TalkingEventHandler(string timelineName); public override void _Ready() { - ToggleTalking(); + //ToggleTalking(); + if (_sprite != null) + _sprite.Animation = "idle"; + _sprite?.Play(); } + public void ToggleTalking() { - if (_isTalking || _timelineIndex >= _timelinesToPlay.Length) + GD.Print("ToggleTalking"); + if (isTalking || _timelineIndex >= _timelinesToPlay.Length) { if (_sprite != null) _sprite.Animation = "idle"; - _isTalking = false; + //_isTalking = false; } else { if (_sprite != null) _sprite.Animation = "talk"; - _isTalking = true; + //_isTalking = true; EmitSignal(SignalName.Talking, _timelinesToPlay[_timelineIndex]); if (!_retriggerSameTimeline) _timelineIndex++; diff --git a/scripts/CSharp/Common/SceneTransition.cs b/scripts/CSharp/Common/SceneTransition.cs index e6c5426..7649041 100644 --- a/scripts/CSharp/Common/SceneTransition.cs +++ b/scripts/CSharp/Common/SceneTransition.cs @@ -17,7 +17,7 @@ public partial class SceneTransition : Node public void LoadSceneAtIndex(int index) { string sceneName = _sceneNamesToLoad[index]; - SceneTransitionThreaded.Instance.ChangeSceneToFileThreaded(sceneName); + SceneTransitionThreaded.Instance.ChangeSceneToFile(sceneName); UnloadAfterDelay(); } diff --git a/scripts/GdScript/dialogic_start_specific.gd b/scripts/GdScript/dialogic_start_specific.gd index 36135eb..773118e 100644 --- a/scripts/GdScript/dialogic_start_specific.gd +++ b/scripts/GdScript/dialogic_start_specific.gd @@ -5,3 +5,7 @@ class_name DialogicStartSpecific func open(): Dialogic.start(timeline) + + +func _process(delta: float) -> void: + TalkingCharacter.SetTalking(Dialogic.current_timeline!=null)