From 7bff319b3926dc58c9a02b2c91f1d4c3542182fb Mon Sep 17 00:00:00 2001 From: vaporvee Date: Tue, 28 Mar 2023 20:49:39 +0200 Subject: [PATCH] better one line dialogue string support --- assets/lang/en/dialogue/npcs/message_one.json | 3 +++ scenes/gui/dialog_bubble.tscn | 4 +-- scenes/overworld.tscn | 5 ++++ .../{dialogue-system => }/dialog_bubble.cs | 26 +++++++++++-------- 4 files changed, 25 insertions(+), 13 deletions(-) create mode 100644 assets/lang/en/dialogue/npcs/message_one.json rename src/scene-scripts/{dialogue-system => }/dialog_bubble.cs (91%) diff --git a/assets/lang/en/dialogue/npcs/message_one.json b/assets/lang/en/dialogue/npcs/message_one.json new file mode 100644 index 0000000..ff49a36 --- /dev/null +++ b/assets/lang/en/dialogue/npcs/message_one.json @@ -0,0 +1,3 @@ +{ + "message": "This is a cool debug test!" +} \ No newline at end of file diff --git a/scenes/gui/dialog_bubble.tscn b/scenes/gui/dialog_bubble.tscn index 7362306..3c3514f 100644 --- a/scenes/gui/dialog_bubble.tscn +++ b/scenes/gui/dialog_bubble.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=7 format=3 uid="uid://bkm7365u1mm3o"] +[gd_scene load_steps=7 format=3 uid="uid://cqfthyrbb8k6v"] -[ext_resource type="Script" path="res://src/scene-scripts/dialogue-system/dialog_bubble.cs" id="1_xtj1q"] +[ext_resource type="Script" path="res://src/scene-scripts/dialog_bubble.cs" id="1_xtj1q"] [ext_resource type="FontFile" uid="uid://cx6bvqk0ghmjv" path="res://assets/fonts/urbane-rounded-medium.otf" id="2_qrihj"] [ext_resource type="AudioStream" uid="uid://cg6grs5k5m33n" path="res://assets/audios/typewrite/default_tw.wav" id="2_wg62u"] [ext_resource type="Texture2D" uid="uid://04pdpdvkg2s" path="res://assets/textures/dialogue/dialogue_answer_ninepatch.png" id="3_n3y1v"] diff --git a/scenes/overworld.tscn b/scenes/overworld.tscn index 2ebab6a..4ad5df5 100644 --- a/scenes/overworld.tscn +++ b/scenes/overworld.tscn @@ -55,6 +55,9 @@ editor_draw_limits = true position = Vector2(-224, 206) metadata/_edit_lock_ = true +[node name="dialog_trigger_area" parent="base_npc" index="2"] +file = "res://assets/lang/en/dialogue/npcs/message_one.json" + [node name="base_npc_2" parent="." instance=ExtResource("3_dxdug")] position = Vector2(-319, 178) metadata/_edit_lock_ = true @@ -85,3 +88,5 @@ shape = SubResource("SegmentShape2D_f7wta") metadata/_edit_lock_ = true [editable path="player"] +[editable path="base_npc"] +[editable path="base_npc/dialog_trigger_area"] diff --git a/src/scene-scripts/dialogue-system/dialog_bubble.cs b/src/scene-scripts/dialog_bubble.cs similarity index 91% rename from src/scene-scripts/dialogue-system/dialog_bubble.cs rename to src/scene-scripts/dialog_bubble.cs index dac4a4f..407f2a5 100644 --- a/src/scene-scripts/dialogue-system/dialog_bubble.cs +++ b/src/scene-scripts/dialog_bubble.cs @@ -6,6 +6,7 @@ public partial class dialog_bubble : CanvasLayer Variant parsedDlg; Variant dlgLines; int dlgPointer = 0; + int parsedDlgPointer = 0; RichTextLabel richText; Timer typewriterTimer; string title; @@ -33,21 +34,19 @@ public partial class dialog_bubble : CanvasLayer parsedDlg = Json.ParseString(FileAccess.Open(file, FileAccess.ModeFlags.Read).GetAsText() .Replace("{player}", "[color=cyan]" + player_variables.PlayerName + "[/color]").Replace("{title}", "[color=purple]" + title + "[/color]")); - - if (parsedDlg.AsGodotDictionary()["dialogType"].AsString() != "villager" || introducedVillager) + if (introducedVillager) GetNode