升级 dialogue manager 到 2.45.0,解决保存时 editor crash 的问题
This commit is contained in:
parent
4bf519aa1d
commit
8eb86ed308
@ -116,6 +116,11 @@ namespace DialogueManagerRuntime
|
|||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Resource CreateResourceFromText(string text)
|
||||||
|
{
|
||||||
|
return (Resource)Instance.Call("create_resource_from_text", text);
|
||||||
|
}
|
||||||
|
|
||||||
public static async Task<DialogueLine?> GetNextDialogueLine(Resource dialogueResource, string key = "", Array<Variant>? extraGameStates = null)
|
public static async Task<DialogueLine?> GetNextDialogueLine(Resource dialogueResource, string key = "", Array<Variant>? extraGameStates = null)
|
||||||
{
|
{
|
||||||
var instance = (Node)Instance.Call("_bridge_get_new_instance");
|
var instance = (Node)Instance.Call("_bridge_get_new_instance");
|
||||||
|
@ -2,9 +2,10 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://bqx8vajneh2p"
|
uid="uid://d3lr2uas6ax8v"
|
||||||
path="res://.godot/imported/icon.svg-17eb5d3e2a3cfbe59852220758c5b7bd.ctex"
|
path="res://.godot/imported/icon.svg-17eb5d3e2a3cfbe59852220758c5b7bd.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
|
"has_editor_variant": true,
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,5 +34,5 @@ process/hdr_clamp_exposure=false
|
|||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
svg/scale=1.0
|
||||||
editor/scale_with_editor_scale=false
|
editor/scale_with_editor_scale=true
|
||||||
editor/convert_colors_with_editor_theme=false
|
editor/convert_colors_with_editor_theme=true
|
||||||
|
@ -2,9 +2,10 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://cft7tdpn1gr6c"
|
uid="uid://drjfciwitjm83"
|
||||||
path="res://.godot/imported/responses_menu.svg-87cf63ca685d53616205049572f4eb8f.ctex"
|
path="res://.godot/imported/responses_menu.svg-87cf63ca685d53616205049572f4eb8f.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
|
"has_editor_variant": true,
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,5 +34,5 @@ process/hdr_clamp_exposure=false
|
|||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=1
|
||||||
svg/scale=1.0
|
svg/scale=1.0
|
||||||
editor/scale_with_editor_scale=false
|
editor/scale_with_editor_scale=true
|
||||||
editor/convert_colors_with_editor_theme=false
|
editor/convert_colors_with_editor_theme=true
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://bm4dr64q385t0"
|
uid="uid://d3baj6rygkb3f"
|
||||||
path="res://.godot/imported/update.svg-f1628866ed4eb2e13e3b81f75443687e.ctex"
|
path="res://.godot/imported/update.svg-f1628866ed4eb2e13e3b81f75443687e.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
@ -22,6 +22,8 @@ var _cache: Dictionary = {}
|
|||||||
var _update_dependency_timer: Timer = Timer.new()
|
var _update_dependency_timer: Timer = Timer.new()
|
||||||
var _update_dependency_paths: PackedStringArray = []
|
var _update_dependency_paths: PackedStringArray = []
|
||||||
|
|
||||||
|
var _files_marked_for_reimport: PackedStringArray = []
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
add_child(_update_dependency_timer)
|
add_child(_update_dependency_timer)
|
||||||
@ -30,14 +32,24 @@ func _ready() -> void:
|
|||||||
_build_cache()
|
_build_cache()
|
||||||
|
|
||||||
|
|
||||||
func reimport_files(files: PackedStringArray = []) -> void:
|
func mark_files_for_reimport(files: PackedStringArray) -> void:
|
||||||
if files.is_empty(): files = get_files()
|
for file in files:
|
||||||
|
if not _files_marked_for_reimport.has(file):
|
||||||
|
_files_marked_for_reimport.append(file)
|
||||||
|
|
||||||
|
|
||||||
|
func reimport_files(and_files: PackedStringArray = []) -> void:
|
||||||
|
for file in and_files:
|
||||||
|
if not _files_marked_for_reimport.has(file):
|
||||||
|
_files_marked_for_reimport.append(file)
|
||||||
|
|
||||||
|
if _files_marked_for_reimport.is_empty(): return
|
||||||
|
|
||||||
var file_system: EditorFileSystem = Engine.get_meta("DialogueManagerPlugin") \
|
var file_system: EditorFileSystem = Engine.get_meta("DialogueManagerPlugin") \
|
||||||
.get_editor_interface() \
|
.get_editor_interface() \
|
||||||
.get_resource_filesystem()
|
.get_resource_filesystem()
|
||||||
|
|
||||||
file_system.reimport_files(files)
|
file_system.reimport_files(_files_marked_for_reimport)
|
||||||
|
|
||||||
|
|
||||||
## Add a dialogue file to the cache.
|
## Add a dialogue file to the cache.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://qdxrxv3c3hxk"]
|
[gd_scene load_steps=3 format=3 uid="uid://qdxrxv3c3hxk"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/dialogue_manager/components/download_update_panel.gd" id="1_4tm1k"]
|
[ext_resource type="Script" path="res://addons/dialogue_manager/components/download_update_panel.gd" id="1_4tm1k"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bm4dr64q385t0" path="res://addons/dialogue_manager/assets/update.svg" id="2_4o2m6"]
|
[ext_resource type="Texture2D" uid="uid://d3baj6rygkb3f" path="res://addons/dialogue_manager/assets/update.svg" id="2_4o2m6"]
|
||||||
|
|
||||||
[node name="DownloadUpdatePanel" type="Control"]
|
[node name="DownloadUpdatePanel" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/dialogue_manager/components/errors_panel.gd" id="1_nfm3c"]
|
[ext_resource type="Script" path="res://addons/dialogue_manager/components/errors_panel.gd" id="1_nfm3c"]
|
||||||
|
|
||||||
[sub_resource type="Image" id="Image_art5m"]
|
[sub_resource type="Image" id="Image_wy5pj"]
|
||||||
data = {
|
data = {
|
||||||
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 93, 93, 55, 255, 97, 97, 58, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 97, 97, 42, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 98, 98, 47, 255, 97, 97, 42, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 93, 93, 233, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 94, 94, 46, 255, 93, 93, 236, 255, 93, 93, 233, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 93, 93, 55, 255, 97, 97, 58, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 97, 97, 42, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 98, 98, 47, 255, 97, 97, 42, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 93, 93, 233, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 94, 94, 46, 255, 93, 93, 236, 255, 93, 93, 233, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
||||||
"format": "RGBA8",
|
"format": "RGBA8",
|
||||||
@ -12,7 +12,7 @@ data = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id="ImageTexture_s6fxl"]
|
[sub_resource type="ImageTexture" id="ImageTexture_s6fxl"]
|
||||||
image = SubResource("Image_art5m")
|
image = SubResource("Image_wy5pj")
|
||||||
|
|
||||||
[node name="ErrorsPanel" type="HBoxContainer"]
|
[node name="ErrorsPanel" type="HBoxContainer"]
|
||||||
visible = false
|
visible = false
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://dnufpcdrreva3"]
|
[gd_scene load_steps=3 format=3 uid="uid://dnufpcdrreva3"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/dialogue_manager/components/files_list.gd" id="1_cytii"]
|
[ext_resource type="Script" path="res://addons/dialogue_manager/components/files_list.gd" id="1_cytii"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bqx8vajneh2p" path="res://addons/dialogue_manager/assets/icon.svg" id="2_3ijx1"]
|
[ext_resource type="Texture2D" uid="uid://d3lr2uas6ax8v" path="res://addons/dialogue_manager/assets/icon.svg" id="2_3ijx1"]
|
||||||
|
|
||||||
[node name="FilesList" type="VBoxContainer"]
|
[node name="FilesList" type="VBoxContainer"]
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
## A RichTextLabel specifically for use with [b]Dialogue Manager[/b] dialogue.
|
## A RichTextLabel specifically for use with [b]Dialogue Manager[/b] dialogue.
|
||||||
class_name DialogueLabel extends RichTextLabel
|
class_name DialogueLabel extends RichTextLabel
|
||||||
|
|
||||||
|
|
||||||
## Emitted for each letter typed out.
|
## Emitted for each letter typed out.
|
||||||
signal spoke(letter: String, letter_index: int, speed: float)
|
signal spoke(letter: String, letter_index: int, speed: float)
|
||||||
|
|
||||||
@ -12,10 +13,11 @@ signal spoke(letter: String, letter_index: int, speed: float)
|
|||||||
signal paused_typing(duration: float)
|
signal paused_typing(duration: float)
|
||||||
|
|
||||||
## Emitted when the player skips the typing of dialogue.
|
## Emitted when the player skips the typing of dialogue.
|
||||||
signal skipped_typing
|
signal skipped_typing()
|
||||||
|
|
||||||
## Emitted when typing finishes.
|
## Emitted when typing finishes.
|
||||||
signal finished_typing
|
signal finished_typing()
|
||||||
|
|
||||||
|
|
||||||
# The action to press to skip typing.
|
# The action to press to skip typing.
|
||||||
@export var skip_action: StringName = &"ui_cancel"
|
@export var skip_action: StringName = &"ui_cancel"
|
||||||
@ -27,24 +29,25 @@ signal finished_typing
|
|||||||
@export var pause_at_characters: String = ".?!"
|
@export var pause_at_characters: String = ".?!"
|
||||||
|
|
||||||
## Don't auto pause if the character after the pause is one of these.
|
## Don't auto pause if the character after the pause is one of these.
|
||||||
@export var skip_pause_at_character_if_followed_by: String = ')"'
|
@export var skip_pause_at_character_if_followed_by: String = ")\""
|
||||||
|
|
||||||
## Don't auto pause after these abbreviations (only if "." is in `pause_at_characters`).[br]
|
## Don't auto pause after these abbreviations (only if "." is in `pause_at_characters`).[br]
|
||||||
## Abbreviations are limitted to 5 characters in length [br]
|
## Abbreviations are limitted to 5 characters in length [br]
|
||||||
## Does not support multi-period abbreviations (ex. "p.m.")
|
## Does not support multi-period abbreviations (ex. "p.m.")
|
||||||
@export
|
@export var skip_pause_at_abbreviations: PackedStringArray = ["Mr", "Mrs", "Ms", "Dr", "etc", "eg", "ex"]
|
||||||
var skip_pause_at_abbreviations: PackedStringArray = ["Mr", "Mrs", "Ms", "Dr", "etc", "eg", "ex"]
|
|
||||||
|
|
||||||
## The amount of time to pause when exposing a character present in `pause_at_characters`.
|
## The amount of time to pause when exposing a character present in `pause_at_characters`.
|
||||||
@export var seconds_per_pause_step: float = 0.3
|
@export var seconds_per_pause_step: float = 0.3
|
||||||
|
|
||||||
var _already_mutated_indices: PackedInt32Array = []
|
var _already_mutated_indices: PackedInt32Array = []
|
||||||
|
|
||||||
|
|
||||||
## The current line of dialogue.
|
## The current line of dialogue.
|
||||||
var dialogue_line:
|
var dialogue_line:
|
||||||
set(next_dialogue_line):
|
set(next_dialogue_line):
|
||||||
dialogue_line = next_dialogue_line
|
dialogue_line = next_dialogue_line
|
||||||
custom_minimum_size = Vector2.ZERO
|
custom_minimum_size = Vector2.ZERO
|
||||||
|
text = ""
|
||||||
text = dialogue_line.text
|
text = dialogue_line.text
|
||||||
get:
|
get:
|
||||||
return dialogue_line
|
return dialogue_line
|
||||||
@ -85,12 +88,7 @@ func _unhandled_input(event: InputEvent) -> void:
|
|||||||
# Note: this will no longer be reached if using Dialogue Manager > 2.32.2. To make skip handling
|
# Note: this will no longer be reached if using Dialogue Manager > 2.32.2. To make skip handling
|
||||||
# simpler (so all of mouse/keyboard/joypad are together) it is now the responsibility of the
|
# simpler (so all of mouse/keyboard/joypad are together) it is now the responsibility of the
|
||||||
# dialogue balloon.
|
# dialogue balloon.
|
||||||
if (
|
if self.is_typing and visible_ratio < 1 and InputMap.has_action(skip_action) and event.is_action_pressed(skip_action):
|
||||||
self.is_typing
|
|
||||||
and visible_ratio < 1
|
|
||||||
and InputMap.has_action(skip_action)
|
|
||||||
and event.is_action_pressed(skip_action)
|
|
||||||
):
|
|
||||||
get_viewport().set_input_as_handled()
|
get_viewport().set_input_as_handled()
|
||||||
skip_typing()
|
skip_typing()
|
||||||
|
|
||||||
@ -128,8 +126,7 @@ func skip_typing() -> void:
|
|||||||
|
|
||||||
# Type out the next character(s)
|
# Type out the next character(s)
|
||||||
func _type_next(delta: float, seconds_needed: float) -> void:
|
func _type_next(delta: float, seconds_needed: float) -> void:
|
||||||
if _is_awaiting_mutation:
|
if _is_awaiting_mutation: return
|
||||||
return
|
|
||||||
|
|
||||||
if visible_characters == get_total_character_count():
|
if visible_characters == get_total_character_count():
|
||||||
return
|
return
|
||||||
@ -137,8 +134,7 @@ func _type_next(delta: float, seconds_needed: float) -> void:
|
|||||||
if _last_mutation_index != visible_characters:
|
if _last_mutation_index != visible_characters:
|
||||||
_last_mutation_index = visible_characters
|
_last_mutation_index = visible_characters
|
||||||
_mutate_inline_mutations(visible_characters)
|
_mutate_inline_mutations(visible_characters)
|
||||||
if _is_awaiting_mutation:
|
if _is_awaiting_mutation: return
|
||||||
return
|
|
||||||
|
|
||||||
var additional_waiting_seconds: float = _get_pause(visible_characters)
|
var additional_waiting_seconds: float = _get_pause(visible_characters)
|
||||||
|
|
||||||
@ -154,11 +150,7 @@ func _type_next(delta: float, seconds_needed: float) -> void:
|
|||||||
else:
|
else:
|
||||||
visible_characters += 1
|
visible_characters += 1
|
||||||
if visible_characters <= get_total_character_count():
|
if visible_characters <= get_total_character_count():
|
||||||
spoke.emit(
|
spoke.emit(get_parsed_text()[visible_characters - 1], visible_characters - 1, _get_speed(visible_characters))
|
||||||
get_parsed_text()[visible_characters - 1],
|
|
||||||
visible_characters - 1,
|
|
||||||
_get_speed(visible_characters)
|
|
||||||
)
|
|
||||||
# See if there's time to type out some more in this frame
|
# See if there's time to type out some more in this frame
|
||||||
seconds_needed += seconds_per_step * (1.0 / _get_speed(visible_characters))
|
seconds_needed += seconds_per_step * (1.0 / _get_speed(visible_characters))
|
||||||
if seconds_needed > delta:
|
if seconds_needed > delta:
|
||||||
@ -198,23 +190,19 @@ func _mutate_inline_mutations(index: int) -> void:
|
|||||||
_already_mutated_indices.append(index)
|
_already_mutated_indices.append(index)
|
||||||
_is_awaiting_mutation = true
|
_is_awaiting_mutation = true
|
||||||
# The DialogueManager can't be referenced directly here so we need to get it by its path
|
# The DialogueManager can't be referenced directly here so we need to get it by its path
|
||||||
await Engine.get_singleton("DialogueManager").mutate(
|
await Engine.get_singleton("DialogueManager").mutate(inline_mutation[1], dialogue_line.extra_game_states, true)
|
||||||
inline_mutation[1], dialogue_line.extra_game_states, true
|
|
||||||
)
|
|
||||||
_is_awaiting_mutation = false
|
_is_awaiting_mutation = false
|
||||||
|
|
||||||
|
|
||||||
# Determine if the current autopause character at the cursor should qualify to pause typing.
|
# Determine if the current autopause character at the cursor should qualify to pause typing.
|
||||||
func _should_auto_pause() -> bool:
|
func _should_auto_pause() -> bool:
|
||||||
if visible_characters == 0:
|
if visible_characters == 0: return false
|
||||||
return false
|
|
||||||
|
|
||||||
var parsed_text: String = get_parsed_text()
|
var parsed_text: String = get_parsed_text()
|
||||||
|
|
||||||
# Avoid outofbounds when the label auto-translates and the text changes to one shorter while typing out
|
# Avoid outofbounds when the label auto-translates and the text changes to one shorter while typing out
|
||||||
# Note: visible characters can be larger than parsed_text after a translation event
|
# Note: visible characters can be larger than parsed_text after a translation event
|
||||||
if visible_characters >= parsed_text.length():
|
if visible_characters >= parsed_text.length(): return false
|
||||||
return false
|
|
||||||
|
|
||||||
# Ignore pause characters if they are next to a non-pause character
|
# Ignore pause characters if they are next to a non-pause character
|
||||||
if parsed_text[visible_characters] in skip_pause_at_character_if_followed_by.split():
|
if parsed_text[visible_characters] in skip_pause_at_character_if_followed_by.split():
|
||||||
@ -231,19 +219,13 @@ func _should_auto_pause() -> bool:
|
|||||||
if "." in pause_at_characters and parsed_text[visible_characters - 1] == ".":
|
if "." in pause_at_characters and parsed_text[visible_characters - 1] == ".":
|
||||||
for abbreviation in skip_pause_at_abbreviations:
|
for abbreviation in skip_pause_at_abbreviations:
|
||||||
if visible_characters >= abbreviation.length():
|
if visible_characters >= abbreviation.length():
|
||||||
var previous_characters: String = parsed_text.substr(
|
var previous_characters: String = parsed_text.substr(visible_characters - abbreviation.length() - 1, abbreviation.length())
|
||||||
visible_characters - abbreviation.length() - 1, abbreviation.length()
|
|
||||||
)
|
|
||||||
if previous_characters == abbreviation:
|
if previous_characters == abbreviation:
|
||||||
return false
|
return false
|
||||||
|
|
||||||
# Ignore two non-"." characters next to each other
|
# Ignore two non-"." characters next to each other
|
||||||
var other_pause_characters: PackedStringArray = pause_at_characters.replace(".", "").split()
|
var other_pause_characters: PackedStringArray = pause_at_characters.replace(".", "").split()
|
||||||
if (
|
if visible_characters > 1 and parsed_text[visible_characters - 1] in other_pause_characters and parsed_text[visible_characters] in other_pause_characters:
|
||||||
visible_characters > 1
|
|
||||||
and parsed_text[visible_characters - 1] in other_pause_characters
|
|
||||||
and parsed_text[visible_characters] in other_pause_characters
|
|
||||||
):
|
|
||||||
return false
|
return false
|
||||||
|
|
||||||
return parsed_text[visible_characters - 1] in pause_at_characters.split()
|
return parsed_text[visible_characters - 1] in pause_at_characters.split()
|
||||||
|
@ -12,6 +12,9 @@ const DialogueManagerParseResult = preload("./components/parse_result.gd")
|
|||||||
const ResolvedLineData = preload("./components/resolved_line_data.gd")
|
const ResolvedLineData = preload("./components/resolved_line_data.gd")
|
||||||
|
|
||||||
|
|
||||||
|
## Emitted when a dialogue balloon is created and dialogue starts
|
||||||
|
signal dialogue_started(resource: DialogueResource)
|
||||||
|
|
||||||
## Emitted when a title is encountered while traversing dialogue, usually when jumping from a
|
## Emitted when a title is encountered while traversing dialogue, usually when jumping from a
|
||||||
## goto line
|
## goto line
|
||||||
signal passed_title(title: String)
|
signal passed_title(title: String)
|
||||||
@ -142,6 +145,10 @@ func get_resolved_line_data(data: Dictionary, extra_game_states: Array = []) ->
|
|||||||
for replacement in data.text_replacements:
|
for replacement in data.text_replacements:
|
||||||
var value = await resolve(replacement.expression.duplicate(true), extra_game_states)
|
var value = await resolve(replacement.expression.duplicate(true), extra_game_states)
|
||||||
var index: int = text.find(replacement.value_in_text)
|
var index: int = text.find(replacement.value_in_text)
|
||||||
|
if index == -1:
|
||||||
|
# The replacement wasn't found but maybe the regular quotes have been replaced
|
||||||
|
# by special quotes while translating.
|
||||||
|
index = text.replace("“", "\"").replace("”", "\"").find(replacement.value_in_text)
|
||||||
if index > -1:
|
if index > -1:
|
||||||
text = text.substr(0, index) + str(value) + text.substr(index + replacement.value_in_text.length())
|
text = text.substr(0, index) + str(value) + text.substr(index + replacement.value_in_text.length())
|
||||||
|
|
||||||
@ -265,6 +272,7 @@ func show_example_dialogue_balloon(resource: DialogueResource, title: String = "
|
|||||||
var balloon: Node = load(_get_example_balloon_path()).instantiate()
|
var balloon: Node = load(_get_example_balloon_path()).instantiate()
|
||||||
get_current_scene.call().add_child(balloon)
|
get_current_scene.call().add_child(balloon)
|
||||||
balloon.start(resource, title, extra_game_states)
|
balloon.start(resource, title, extra_game_states)
|
||||||
|
dialogue_started.emit(resource)
|
||||||
|
|
||||||
return balloon
|
return balloon
|
||||||
|
|
||||||
@ -274,6 +282,7 @@ func show_dialogue_balloon(resource: DialogueResource, title: String = "", extra
|
|||||||
var balloon_path: String = DialogueSettings.get_setting(&"balloon_path", _get_example_balloon_path())
|
var balloon_path: String = DialogueSettings.get_setting(&"balloon_path", _get_example_balloon_path())
|
||||||
if not ResourceLoader.exists(balloon_path):
|
if not ResourceLoader.exists(balloon_path):
|
||||||
balloon_path = _get_example_balloon_path()
|
balloon_path = _get_example_balloon_path()
|
||||||
|
dialogue_started.emit(resource)
|
||||||
return show_dialogue_balloon_scene(balloon_path, resource, title, extra_game_states)
|
return show_dialogue_balloon_scene(balloon_path, resource, title, extra_game_states)
|
||||||
|
|
||||||
|
|
||||||
@ -285,8 +294,7 @@ func show_dialogue_balloon_scene(balloon_scene, resource: DialogueResource, titl
|
|||||||
balloon_scene = balloon_scene.instantiate()
|
balloon_scene = balloon_scene.instantiate()
|
||||||
|
|
||||||
var balloon: Node = balloon_scene
|
var balloon: Node = balloon_scene
|
||||||
if balloon.get_parent() == null:
|
get_current_scene.call().add_child.call_deferred(balloon)
|
||||||
get_current_scene.call().add_child(balloon)
|
|
||||||
if balloon.has_method(&"start"):
|
if balloon.has_method(&"start"):
|
||||||
balloon.start(resource, title, extra_game_states)
|
balloon.start(resource, title, extra_game_states)
|
||||||
elif balloon.has_method(&"Start"):
|
elif balloon.has_method(&"Start"):
|
||||||
|
@ -130,11 +130,11 @@ func _on_response_mouse_entered(item: Control) -> void:
|
|||||||
func _on_response_gui_input(event: InputEvent, item: Control, response) -> void:
|
func _on_response_gui_input(event: InputEvent, item: Control, response) -> void:
|
||||||
if "Disallowed" in item.name: return
|
if "Disallowed" in item.name: return
|
||||||
|
|
||||||
get_viewport().set_input_as_handled()
|
|
||||||
|
|
||||||
if event is InputEventMouseButton and event.is_pressed() and event.button_index == MOUSE_BUTTON_LEFT:
|
if event is InputEventMouseButton and event.is_pressed() and event.button_index == MOUSE_BUTTON_LEFT:
|
||||||
|
get_viewport().set_input_as_handled()
|
||||||
response_selected.emit(response)
|
response_selected.emit(response)
|
||||||
elif event.is_action_pressed(&"ui_accept" if next_action.is_empty() else next_action) and item in get_menu_items():
|
elif event.is_action_pressed(&"ui_accept" if next_action.is_empty() else next_action) and item in get_menu_items():
|
||||||
|
get_viewport().set_input_as_handled()
|
||||||
response_selected.emit(response)
|
response_selected.emit(response)
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
## A collection of dialogue lines for use with [code]DialogueManager[/code].
|
## A collection of dialogue lines for use with [code]DialogueManager[/code].
|
||||||
class_name DialogueResource extends Resource
|
class_name DialogueResource extends Resource
|
||||||
|
|
||||||
|
|
||||||
const _DialogueManager = preload("./dialogue_manager.gd")
|
const _DialogueManager = preload("./dialogue_manager.gd")
|
||||||
const DialogueLine = preload("./dialogue_line.gd")
|
const DialogueLine = preload("./dialogue_line.gd")
|
||||||
|
|
||||||
@ -29,18 +30,12 @@ const DialogueLine = preload("./dialogue_line.gd")
|
|||||||
## Get the next printable line of dialogue, starting from a referenced line ([code]title[/code] can
|
## Get the next printable line of dialogue, starting from a referenced line ([code]title[/code] can
|
||||||
## be a title string or a stringified line number). Runs any mutations along the way and then returns
|
## be a title string or a stringified line number). Runs any mutations along the way and then returns
|
||||||
## the first dialogue line encountered.
|
## the first dialogue line encountered.
|
||||||
func get_next_dialogue_line(
|
func get_next_dialogue_line(title: String, extra_game_states: Array = [], mutation_behaviour: _DialogueManager.MutationBehaviour = _DialogueManager.MutationBehaviour.Wait) -> DialogueLine:
|
||||||
title: String,
|
return await Engine.get_singleton("DialogueManager").get_next_dialogue_line(self, title, extra_game_states, mutation_behaviour)
|
||||||
extra_game_states: Array = [],
|
|
||||||
mutation_behaviour: _DialogueManager.MutationBehaviour = _DialogueManager.MutationBehaviour.Wait
|
|
||||||
) -> DialogueLine:
|
|
||||||
return await Engine.get_singleton("DialogueManager").get_next_dialogue_line(
|
|
||||||
self, title, extra_game_states, mutation_behaviour
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
## Get the list of any titles found in the file.
|
## Get the list of any titles found in the file.
|
||||||
func get_titles() -> Array:
|
func get_titles() -> PackedStringArray:
|
||||||
return titles.keys()
|
return titles.keys()
|
||||||
|
|
||||||
|
|
||||||
@ -63,4 +58,4 @@ func get_ordered_titles() -> Array:
|
|||||||
|
|
||||||
|
|
||||||
func _to_string() -> String:
|
func _to_string() -> String:
|
||||||
return '<DialogueResource titles="%s">' % [",".join(titles.keys())]
|
return "<DialogueResource titles=\"%s\">" % [",".join(titles.keys())]
|
||||||
|
@ -122,6 +122,11 @@ namespace DialogueManagerRuntime
|
|||||||
|
|
||||||
public async void Start(Resource dialogueResource, string title, Array<Variant> extraGameStates = null)
|
public async void Start(Resource dialogueResource, string title, Array<Variant> extraGameStates = null)
|
||||||
{
|
{
|
||||||
|
if (!IsNodeReady())
|
||||||
|
{
|
||||||
|
await ToSignal(this, SignalName.Ready);
|
||||||
|
}
|
||||||
|
|
||||||
temporaryGameStates = extraGameStates ?? new Array<Variant>();
|
temporaryGameStates = extraGameStates ?? new Array<Variant>();
|
||||||
isWaitingForInput = false;
|
isWaitingForInput = false;
|
||||||
resource = dialogueResource;
|
resource = dialogueResource;
|
||||||
|
@ -114,6 +114,8 @@ func _notification(what: int) -> void:
|
|||||||
|
|
||||||
## Start some dialogue
|
## Start some dialogue
|
||||||
func start(dialogue_resource: DialogueResource, title: String, extra_game_states: Array = []) -> void:
|
func start(dialogue_resource: DialogueResource, title: String, extra_game_states: Array = []) -> void:
|
||||||
|
if not is_node_ready():
|
||||||
|
await ready
|
||||||
temporary_game_states = [self] + extra_game_states
|
temporary_game_states = [self] + extra_game_states
|
||||||
is_waiting_for_input = false
|
is_waiting_for_input = false
|
||||||
resource = dialogue_resource
|
resource = dialogue_resource
|
||||||
|
@ -3,5 +3,5 @@
|
|||||||
name="Dialogue Manager"
|
name="Dialogue Manager"
|
||||||
description="A simple but powerful branching dialogue system"
|
description="A simple but powerful branching dialogue system"
|
||||||
author="Nathan Hoad"
|
author="Nathan Hoad"
|
||||||
version="2.44.1"
|
version="2.45.0"
|
||||||
script="plugin.gd"
|
script="plugin.gd"
|
||||||
|
@ -51,6 +51,22 @@ func _enter_tree() -> void:
|
|||||||
|
|
||||||
add_tool_menu_item("Create copy of dialogue example balloon...", _copy_dialogue_balloon)
|
add_tool_menu_item("Create copy of dialogue example balloon...", _copy_dialogue_balloon)
|
||||||
|
|
||||||
|
# Make sure the current balloon has a UID unique from the example balloon's
|
||||||
|
var balloon_path: String = DialogueSettings.get_setting("balloon_path", "")
|
||||||
|
if balloon_path != "" and FileAccess.file_exists(balloon_path):
|
||||||
|
var is_small_window: bool = ProjectSettings.get_setting("display/window/size/viewport_width") < 400
|
||||||
|
var example_balloon_file_name: String = "small_example_balloon.tscn" if is_small_window else "example_balloon.tscn"
|
||||||
|
var example_balloon_path: String = get_plugin_path() + "/example_balloon/" + example_balloon_file_name
|
||||||
|
var example_balloon_uid: String = ResourceUID.id_to_text(ResourceLoader.get_resource_uid(example_balloon_path))
|
||||||
|
var balloon_uid: String = ResourceUID.id_to_text(ResourceLoader.get_resource_uid(balloon_path))
|
||||||
|
if example_balloon_uid == balloon_uid:
|
||||||
|
var new_balloon_uid: String = ResourceUID.id_to_text(ResourceUID.create_id())
|
||||||
|
var contents: String = FileAccess.get_file_as_string(balloon_path)
|
||||||
|
contents = contents.replace(example_balloon_uid, new_balloon_uid)
|
||||||
|
var balloon_file: FileAccess = FileAccess.open(balloon_path, FileAccess.WRITE)
|
||||||
|
balloon_file.store_string(contents)
|
||||||
|
balloon_file.close()
|
||||||
|
|
||||||
# Prevent the project from showing as unsaved even though it was only just opened
|
# Prevent the project from showing as unsaved even though it was only just opened
|
||||||
if DialogueSettings.get_setting("try_suppressing_startup_unsaved_indicator", false) \
|
if DialogueSettings.get_setting("try_suppressing_startup_unsaved_indicator", false) \
|
||||||
and Engine.get_physics_frames() == 0 \
|
and Engine.get_physics_frames() == 0 \
|
||||||
@ -140,6 +156,8 @@ func _build() -> bool:
|
|||||||
if DialogueSettings.get_user_value("is_running_test_scene", true): return true
|
if DialogueSettings.get_user_value("is_running_test_scene", true): return true
|
||||||
|
|
||||||
if dialogue_cache != null:
|
if dialogue_cache != null:
|
||||||
|
dialogue_cache.reimport_files()
|
||||||
|
|
||||||
var files_with_errors = dialogue_cache.get_files_with_errors()
|
var files_with_errors = dialogue_cache.get_files_with_errors()
|
||||||
if files_with_errors.size() > 0:
|
if files_with_errors.size() > 0:
|
||||||
for dialogue_file in files_with_errors:
|
for dialogue_file in files_with_errors:
|
||||||
@ -322,10 +340,15 @@ func _copy_dialogue_balloon() -> void:
|
|||||||
# Copy the balloon scene file and change the script reference
|
# Copy the balloon scene file and change the script reference
|
||||||
var is_small_window: bool = ProjectSettings.get_setting("display/window/size/viewport_width") < 400
|
var is_small_window: bool = ProjectSettings.get_setting("display/window/size/viewport_width") < 400
|
||||||
var example_balloon_file_name: String = "small_example_balloon.tscn" if is_small_window else "example_balloon.tscn"
|
var example_balloon_file_name: String = "small_example_balloon.tscn" if is_small_window else "example_balloon.tscn"
|
||||||
|
var example_balloon_path: String = plugin_path + "/example_balloon/" + example_balloon_file_name
|
||||||
var example_balloon_script_file_name: String = "ExampleBalloon.cs" if is_dotnet else "example_balloon.gd"
|
var example_balloon_script_file_name: String = "ExampleBalloon.cs" if is_dotnet else "example_balloon.gd"
|
||||||
var file: FileAccess = FileAccess.open(plugin_path + "/example_balloon/" + example_balloon_file_name, FileAccess.READ)
|
var file_contents: String = FileAccess.get_file_as_string(example_balloon_path).replace(plugin_path + "/example_balloon/example_balloon.gd", balloon_script_path)
|
||||||
var file_contents: String = file.get_as_text().replace(plugin_path + "/example_balloon/example_balloon.gd", balloon_script_path)
|
# Give the balloon a unique UID
|
||||||
file = FileAccess.open(balloon_path, FileAccess.WRITE)
|
var example_balloon_uid: String = ResourceUID.id_to_text(ResourceLoader.get_resource_uid(example_balloon_path))
|
||||||
|
var new_balloon_uid: String = ResourceUID.id_to_text(ResourceUID.create_id())
|
||||||
|
file_contents = file_contents.replace(example_balloon_uid, new_balloon_uid)
|
||||||
|
# Save the new balloon
|
||||||
|
var file: FileAccess = FileAccess.open(balloon_path, FileAccess.WRITE)
|
||||||
file.store_string(file_contents)
|
file.store_string(file_contents)
|
||||||
file.close()
|
file.close()
|
||||||
|
|
||||||
|
@ -1,20 +1,17 @@
|
|||||||
class_name BaseDialogueTestScene extends Node2D
|
class_name BaseDialogueTestScene extends Node2D
|
||||||
|
|
||||||
|
|
||||||
const DialogueSettings = preload("./settings.gd")
|
const DialogueSettings = preload("./settings.gd")
|
||||||
const DialogueResource = preload("./dialogue_resource.gd")
|
const DialogueResource = preload("./dialogue_resource.gd")
|
||||||
|
|
||||||
|
|
||||||
@onready var title: String = DialogueSettings.get_user_value("run_title")
|
@onready var title: String = DialogueSettings.get_user_value("run_title")
|
||||||
@onready var resource: DialogueResource = load(DialogueSettings.get_user_value("run_resource_path"))
|
@onready var resource: DialogueResource = load(DialogueSettings.get_user_value("run_resource_path"))
|
||||||
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
var screen_index: int = DisplayServer.get_primary_screen()
|
var screen_index: int = DisplayServer.get_primary_screen()
|
||||||
DisplayServer.window_set_position(
|
DisplayServer.window_set_position(Vector2(DisplayServer.screen_get_position(screen_index)) + (DisplayServer.screen_get_size(screen_index) - DisplayServer.window_get_size()) * 0.5)
|
||||||
(
|
|
||||||
Vector2(DisplayServer.screen_get_position(screen_index))
|
|
||||||
+ (DisplayServer.screen_get_size(screen_index) - DisplayServer.window_get_size()) * 0.5
|
|
||||||
)
|
|
||||||
)
|
|
||||||
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
|
||||||
|
|
||||||
# Normally you can just call DialogueManager directly but doing so before the plugin has been
|
# Normally you can just call DialogueManager directly but doing so before the plugin has been
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://drar5wok5b8ec"]
|
[gd_scene load_steps=2 format=3]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/dialogue_manager/test_scene.gd" id="1_yupoh"]
|
[ext_resource type="Script" path="res://addons/dialogue_manager/test_scene.gd" id="1_yupoh"]
|
||||||
|
|
||||||
|
|
||||||
[node name="TestScene" type="Node2D"]
|
[node name="TestScene" type="Node2D"]
|
||||||
script = ExtResource("1_yupoh")
|
script = ExtResource("1_yupoh")
|
||||||
|
@ -295,7 +295,7 @@ func save_files() -> void:
|
|||||||
save_file(path, false)
|
save_file(path, false)
|
||||||
|
|
||||||
if saved_files.size() > 0:
|
if saved_files.size() > 0:
|
||||||
Engine.get_meta("DialogueCache").reimport_files(saved_files)
|
Engine.get_meta("DialogueCache").mark_files_for_reimport(saved_files)
|
||||||
|
|
||||||
|
|
||||||
# Save a file
|
# Save a file
|
||||||
@ -564,7 +564,10 @@ func generate_translations_keys() -> void:
|
|||||||
else:
|
else:
|
||||||
text = l.substr(l.find(":") + 1)
|
text = l.substr(l.find(":") + 1)
|
||||||
|
|
||||||
lines[i] = line.replace(text, text + " [ID:%s]" % key)
|
text = text.replace("\n", "!NEWLINE!")
|
||||||
|
line = line.replace("\\n", "!NEWLINE!")
|
||||||
|
|
||||||
|
lines[i] = line.replace(text, text + " [ID:%s]" % key).replace("!NEWLINE!", "\\n")
|
||||||
known_keys[key] = text
|
known_keys[key] = text
|
||||||
|
|
||||||
code_edit.text = "\n".join(lines)
|
code_edit.text = "\n".join(lines)
|
||||||
@ -834,6 +837,7 @@ func import_translations_from_csv(path: String) -> void:
|
|||||||
code_edit.set_cursor(cursor)
|
code_edit.set_cursor(cursor)
|
||||||
|
|
||||||
parser.free()
|
parser.free()
|
||||||
|
# Re-parse the dialogue to update the titles
|
||||||
_on_code_edit_text_changed()
|
_on_code_edit_text_changed()
|
||||||
|
|
||||||
|
|
||||||
@ -1085,7 +1089,8 @@ func _on_settings_view_script_button_pressed(path: String) -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _on_test_button_pressed() -> void:
|
func _on_test_button_pressed() -> void:
|
||||||
save_file(current_file_path)
|
save_file(current_file_path, false)
|
||||||
|
Engine.get_meta("DialogueCache").reimport_files([current_file_path])
|
||||||
|
|
||||||
if errors_panel.errors.size() > 0:
|
if errors_panel.errors.size() > 0:
|
||||||
errors_dialog.popup_centered()
|
errors_dialog.popup_centered()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=17 format=3 uid="uid://cbuf1q3xsse3q"]
|
[gd_scene load_steps=16 format=3 uid="uid://cbuf1q3xsse3q"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/dialogue_manager/views/main_view.gd" id="1_h6qfq"]
|
[ext_resource type="Script" path="res://addons/dialogue_manager/views/main_view.gd" id="1_h6qfq"]
|
||||||
[ext_resource type="PackedScene" uid="uid://civ6shmka5e8u" path="res://addons/dialogue_manager/components/code_edit.tscn" id="2_f73fm"]
|
[ext_resource type="PackedScene" uid="uid://civ6shmka5e8u" path="res://addons/dialogue_manager/components/code_edit.tscn" id="2_f73fm"]
|
||||||
@ -7,13 +7,11 @@
|
|||||||
[ext_resource type="PackedScene" uid="uid://co8yl23idiwbi" path="res://addons/dialogue_manager/components/update_button.tscn" id="2_ph3vs"]
|
[ext_resource type="PackedScene" uid="uid://co8yl23idiwbi" path="res://addons/dialogue_manager/components/update_button.tscn" id="2_ph3vs"]
|
||||||
[ext_resource type="PackedScene" uid="uid://gr8nakpbrhby" path="res://addons/dialogue_manager/components/search_and_replace.tscn" id="6_ylh0t"]
|
[ext_resource type="PackedScene" uid="uid://gr8nakpbrhby" path="res://addons/dialogue_manager/components/search_and_replace.tscn" id="6_ylh0t"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cs8pwrxr5vxix" path="res://addons/dialogue_manager/components/errors_panel.tscn" id="7_5cvl4"]
|
[ext_resource type="PackedScene" uid="uid://cs8pwrxr5vxix" path="res://addons/dialogue_manager/components/errors_panel.tscn" id="7_5cvl4"]
|
||||||
[ext_resource type="FontFile" uid="uid://dr8bp6p7byb37" path="res://asset/font/字体/方正楷体简体.TTF" id="7_dpqa4"]
|
|
||||||
[ext_resource type="Script" path="res://addons/dialogue_manager/components/code_edit_syntax_highlighter.gd" id="7_necsa"]
|
[ext_resource type="Script" path="res://addons/dialogue_manager/components/code_edit_syntax_highlighter.gd" id="7_necsa"]
|
||||||
[ext_resource type="FontFile" uid="uid://255whp7fuig5" path="res://asset/font/字体/三极行楷简体-粗.ttf" id="8_iqnmi"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://cpg4lg1r3ff6m" path="res://addons/dialogue_manager/views/settings_view.tscn" id="9_8bf36"]
|
[ext_resource type="PackedScene" uid="uid://cpg4lg1r3ff6m" path="res://addons/dialogue_manager/views/settings_view.tscn" id="9_8bf36"]
|
||||||
[ext_resource type="PackedScene" uid="uid://0n7hwviyyly4" path="res://addons/dialogue_manager/components/find_in_files.tscn" id="10_yold3"]
|
[ext_resource type="PackedScene" uid="uid://0n7hwviyyly4" path="res://addons/dialogue_manager/components/find_in_files.tscn" id="10_yold3"]
|
||||||
|
|
||||||
[sub_resource type="Image" id="Image_ybciq"]
|
[sub_resource type="Image" id="Image_68x0r"]
|
||||||
data = {
|
data = {
|
||||||
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
||||||
"format": "RGBA8",
|
"format": "RGBA8",
|
||||||
@ -22,14 +20,22 @@ data = {
|
|||||||
"width": 16
|
"width": 16
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id="ImageTexture_jjt2y"]
|
[sub_resource type="ImageTexture" id="ImageTexture_ka3gk"]
|
||||||
image = SubResource("Image_ybciq")
|
image = SubResource("Image_68x0r")
|
||||||
|
|
||||||
[sub_resource type="FontVariation" id="FontVariation_d3ufv"]
|
[sub_resource type="Image" id="Image_j5bhl"]
|
||||||
fallbacks = Array[Font]([ExtResource("8_iqnmi")])
|
data = {
|
||||||
base_font = ExtResource("7_dpqa4")
|
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
||||||
|
"format": "RGBA8",
|
||||||
|
"height": 16,
|
||||||
|
"mipmaps": false,
|
||||||
|
"width": 16
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="SyntaxHighlighter" id="SyntaxHighlighter_q4u2v"]
|
[sub_resource type="ImageTexture" id="ImageTexture_57eek"]
|
||||||
|
image = SubResource("Image_j5bhl")
|
||||||
|
|
||||||
|
[sub_resource type="SyntaxHighlighter" id="SyntaxHighlighter_bxc68"]
|
||||||
script = ExtResource("7_necsa")
|
script = ExtResource("7_necsa")
|
||||||
|
|
||||||
[node name="MainView" type="Control"]
|
[node name="MainView" type="Control"]
|
||||||
@ -62,6 +68,7 @@ metadata/_edit_layout_mode = 1
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
|
dragger_visibility = 1
|
||||||
|
|
||||||
[node name="SidePanel" type="VBoxContainer" parent="Margin/Content"]
|
[node name="SidePanel" type="VBoxContainer" parent="Margin/Content"]
|
||||||
custom_minimum_size = Vector2(150, 0)
|
custom_minimum_size = Vector2(150, 0)
|
||||||
@ -75,55 +82,47 @@ layout_mode = 2
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
tooltip_text = "Start a new file"
|
tooltip_text = "Start a new file"
|
||||||
icon = SubResource("ImageTexture_jjt2y")
|
|
||||||
flat = true
|
flat = true
|
||||||
|
|
||||||
[node name="OpenButton" type="MenuButton" parent="Margin/Content/SidePanel/Toolbar"]
|
[node name="OpenButton" type="MenuButton" parent="Margin/Content/SidePanel/Toolbar"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
tooltip_text = "Open a file"
|
tooltip_text = "Open a file"
|
||||||
icon = SubResource("ImageTexture_jjt2y")
|
item_count = 9
|
||||||
item_count = 10
|
|
||||||
popup/item_0/text = "Open..."
|
popup/item_0/text = "Open..."
|
||||||
popup/item_0/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_0/icon = SubResource("ImageTexture_ka3gk")
|
||||||
popup/item_0/id = 100
|
popup/item_0/id = 100
|
||||||
popup/item_1/text = "Quick open..."
|
popup/item_1/icon = SubResource("ImageTexture_ka3gk")
|
||||||
popup/item_1/icon = SubResource("ImageTexture_jjt2y")
|
|
||||||
popup/item_1/id = 101
|
popup/item_1/id = 101
|
||||||
popup/item_2/id = -1
|
popup/item_2/id = -1
|
||||||
popup/item_2/separator = true
|
popup/item_2/separator = true
|
||||||
popup/item_3/text = "res://asset/dialogue/c02.dialogue"
|
popup/item_3/text = "res://examples/dialogue.dialogue"
|
||||||
popup/item_3/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_3/icon = SubResource("ImageTexture_ka3gk")
|
||||||
popup/item_3/id = 3
|
popup/item_3/id = 3
|
||||||
popup/item_4/text = "res://asset/dialogue/c01.dialogue"
|
popup/item_4/text = "res://examples/dialogue_with_input.dialogue"
|
||||||
popup/item_4/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_4/icon = SubResource("ImageTexture_ka3gk")
|
||||||
popup/item_4/id = 4
|
popup/item_4/id = 4
|
||||||
popup/item_5/text = "res://asset/dialogue/item_description.dialogue"
|
popup/item_5/text = "res://examples/dialogue_for_point_n_click.dialogue"
|
||||||
popup/item_5/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_5/icon = SubResource("ImageTexture_ka3gk")
|
||||||
popup/item_5/id = 5
|
popup/item_5/id = 5
|
||||||
popup/item_6/text = "res://asset/dialogue/c02.dialogue"
|
popup/item_6/text = "res://examples/dialogue_for_visual_novel.dialogue"
|
||||||
popup/item_6/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_6/icon = SubResource("ImageTexture_ka3gk")
|
||||||
popup/item_6/id = 6
|
popup/item_6/id = 6
|
||||||
popup/item_7/text = "res://asset/dialogue/c01.dialogue"
|
popup/item_7/id = -1
|
||||||
popup/item_7/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_7/separator = true
|
||||||
popup/item_7/id = 7
|
popup/item_8/text = "Clear recent files"
|
||||||
popup/item_8/id = -1
|
popup/item_8/id = 102
|
||||||
popup/item_8/separator = true
|
|
||||||
popup/item_9/text = "Clear recent files"
|
|
||||||
popup/item_9/id = 102
|
|
||||||
|
|
||||||
[node name="SaveAllButton" type="Button" parent="Margin/Content/SidePanel/Toolbar"]
|
[node name="SaveAllButton" type="Button" parent="Margin/Content/SidePanel/Toolbar"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
disabled = true
|
disabled = true
|
||||||
icon = SubResource("ImageTexture_jjt2y")
|
|
||||||
flat = true
|
flat = true
|
||||||
|
|
||||||
[node name="FindInFilesButton" type="Button" parent="Margin/Content/SidePanel/Toolbar"]
|
[node name="FindInFilesButton" type="Button" parent="Margin/Content/SidePanel/Toolbar"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
tooltip_text = "Find in files..."
|
tooltip_text = "Find in files..."
|
||||||
icon = SubResource("ImageTexture_jjt2y")
|
|
||||||
flat = true
|
flat = true
|
||||||
|
|
||||||
[node name="Bookmarks" type="VSplitContainer" parent="Margin/Content/SidePanel"]
|
[node name="Bookmarks" type="VSplitContainer" parent="Margin/Content/SidePanel"]
|
||||||
@ -132,6 +131,7 @@ size_flags_vertical = 3
|
|||||||
|
|
||||||
[node name="FilesList" parent="Margin/Content/SidePanel/Bookmarks" instance=ExtResource("2_npj2k")]
|
[node name="FilesList" parent="Margin/Content/SidePanel/Bookmarks" instance=ExtResource("2_npj2k")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
|
|
||||||
@ -140,6 +140,7 @@ unique_name_in_owner = true
|
|||||||
|
|
||||||
[node name="TitleList" parent="Margin/Content/SidePanel/Bookmarks" instance=ExtResource("2_onb4i")]
|
[node name="TitleList" parent="Margin/Content/SidePanel/Bookmarks" instance=ExtResource("2_onb4i")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="CodePanel" type="VBoxContainer" parent="Margin/Content"]
|
[node name="CodePanel" type="VBoxContainer" parent="Margin/Content"]
|
||||||
@ -153,72 +154,72 @@ layout_mode = 2
|
|||||||
[node name="InsertButton" type="MenuButton" parent="Margin/Content/CodePanel/Toolbar"]
|
[node name="InsertButton" type="MenuButton" parent="Margin/Content/CodePanel/Toolbar"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
disabled = true
|
||||||
text = "Insert"
|
text = "Insert"
|
||||||
icon = SubResource("ImageTexture_jjt2y")
|
|
||||||
item_count = 15
|
item_count = 15
|
||||||
popup/item_0/text = "Wave BBCode"
|
popup/item_0/text = "Wave BBCode"
|
||||||
popup/item_0/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_0/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_1/text = "Shake BBCode"
|
popup/item_1/text = "Shake BBCode"
|
||||||
popup/item_1/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_1/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_1/id = 1
|
popup/item_1/id = 1
|
||||||
popup/item_2/id = -1
|
popup/item_2/id = -1
|
||||||
popup/item_2/separator = true
|
popup/item_2/separator = true
|
||||||
popup/item_3/text = "Typing pause"
|
popup/item_3/text = "Typing pause"
|
||||||
popup/item_3/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_3/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_3/id = 3
|
popup/item_3/id = 3
|
||||||
popup/item_4/text = "Typing speed change"
|
popup/item_4/text = "Typing speed change"
|
||||||
popup/item_4/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_4/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_4/id = 4
|
popup/item_4/id = 4
|
||||||
popup/item_5/text = "Auto advance"
|
popup/item_5/text = "Auto advance"
|
||||||
popup/item_5/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_5/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_5/id = 5
|
popup/item_5/id = 5
|
||||||
popup/item_6/text = "Templates"
|
popup/item_6/text = "Templates"
|
||||||
popup/item_6/id = -1
|
popup/item_6/id = -1
|
||||||
popup/item_6/separator = true
|
popup/item_6/separator = true
|
||||||
popup/item_7/text = "Title"
|
popup/item_7/text = "Title"
|
||||||
popup/item_7/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_7/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_7/id = 6
|
popup/item_7/id = 6
|
||||||
popup/item_8/text = "Dialogue"
|
popup/item_8/text = "Dialogue"
|
||||||
popup/item_8/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_8/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_8/id = 7
|
popup/item_8/id = 7
|
||||||
popup/item_9/text = "Response"
|
popup/item_9/text = "Response"
|
||||||
popup/item_9/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_9/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_9/id = 8
|
popup/item_9/id = 8
|
||||||
popup/item_10/text = "Random lines"
|
popup/item_10/text = "Random lines"
|
||||||
popup/item_10/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_10/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_10/id = 9
|
popup/item_10/id = 9
|
||||||
popup/item_11/text = "Random text"
|
popup/item_11/text = "Random text"
|
||||||
popup/item_11/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_11/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_11/id = 10
|
popup/item_11/id = 10
|
||||||
popup/item_12/text = "Actions"
|
popup/item_12/text = "Actions"
|
||||||
popup/item_12/id = -1
|
popup/item_12/id = -1
|
||||||
popup/item_12/separator = true
|
popup/item_12/separator = true
|
||||||
popup/item_13/text = "Jump to title"
|
popup/item_13/text = "Jump to title"
|
||||||
popup/item_13/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_13/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_13/id = 11
|
popup/item_13/id = 11
|
||||||
popup/item_14/text = "End dialogue"
|
popup/item_14/text = "End dialogue"
|
||||||
popup/item_14/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_14/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_14/id = 12
|
popup/item_14/id = 12
|
||||||
|
|
||||||
[node name="TranslationsButton" type="MenuButton" parent="Margin/Content/CodePanel/Toolbar"]
|
[node name="TranslationsButton" type="MenuButton" parent="Margin/Content/CodePanel/Toolbar"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
disabled = true
|
||||||
text = "Translations"
|
text = "Translations"
|
||||||
icon = SubResource("ImageTexture_jjt2y")
|
|
||||||
item_count = 5
|
item_count = 5
|
||||||
popup/item_0/text = "Generate line IDs"
|
popup/item_0/text = "Generate line IDs"
|
||||||
popup/item_0/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_0/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_0/id = 100
|
popup/item_0/id = 100
|
||||||
popup/item_1/id = -1
|
popup/item_1/id = -1
|
||||||
popup/item_1/separator = true
|
popup/item_1/separator = true
|
||||||
popup/item_2/text = "Save character names to CSV..."
|
popup/item_2/text = "Save character names to CSV..."
|
||||||
popup/item_2/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_2/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_2/id = 201
|
popup/item_2/id = 201
|
||||||
popup/item_3/text = "Save lines to CSV..."
|
popup/item_3/text = "Save lines to CSV..."
|
||||||
popup/item_3/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_3/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_3/id = 202
|
popup/item_3/id = 202
|
||||||
popup/item_4/text = "Import line changes from CSV..."
|
popup/item_4/text = "Import line changes from CSV..."
|
||||||
popup/item_4/icon = SubResource("ImageTexture_jjt2y")
|
popup/item_4/icon = SubResource("ImageTexture_57eek")
|
||||||
popup/item_4/id = 203
|
popup/item_4/id = 203
|
||||||
|
|
||||||
[node name="Separator" type="VSeparator" parent="Margin/Content/CodePanel/Toolbar"]
|
[node name="Separator" type="VSeparator" parent="Margin/Content/CodePanel/Toolbar"]
|
||||||
@ -228,15 +229,15 @@ layout_mode = 2
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
tooltip_text = "Search for text"
|
tooltip_text = "Search for text"
|
||||||
|
disabled = true
|
||||||
toggle_mode = true
|
toggle_mode = true
|
||||||
icon = SubResource("ImageTexture_jjt2y")
|
|
||||||
flat = true
|
flat = true
|
||||||
|
|
||||||
[node name="TestButton" type="Button" parent="Margin/Content/CodePanel/Toolbar"]
|
[node name="TestButton" type="Button" parent="Margin/Content/CodePanel/Toolbar"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
tooltip_text = "Test dialogue"
|
tooltip_text = "Test dialogue"
|
||||||
icon = SubResource("ImageTexture_jjt2y")
|
disabled = true
|
||||||
flat = true
|
flat = true
|
||||||
|
|
||||||
[node name="Separator3" type="VSeparator" parent="Margin/Content/CodePanel/Toolbar"]
|
[node name="Separator3" type="VSeparator" parent="Margin/Content/CodePanel/Toolbar"]
|
||||||
@ -246,7 +247,6 @@ layout_mode = 2
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
tooltip_text = "Settings"
|
tooltip_text = "Settings"
|
||||||
icon = SubResource("ImageTexture_jjt2y")
|
|
||||||
flat = true
|
flat = true
|
||||||
|
|
||||||
[node name="Spacer2" type="Control" parent="Margin/Content/CodePanel/Toolbar"]
|
[node name="Spacer2" type="Control" parent="Margin/Content/CodePanel/Toolbar"]
|
||||||
@ -258,7 +258,6 @@ unique_name_in_owner = true
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
tooltip_text = "Support Dialogue Manager"
|
tooltip_text = "Support Dialogue Manager"
|
||||||
text = "Sponsor"
|
text = "Sponsor"
|
||||||
icon = SubResource("ImageTexture_jjt2y")
|
|
||||||
flat = true
|
flat = true
|
||||||
|
|
||||||
[node name="Separator4" type="VSeparator" parent="Margin/Content/CodePanel/Toolbar"]
|
[node name="Separator4" type="VSeparator" parent="Margin/Content/CodePanel/Toolbar"]
|
||||||
@ -268,14 +267,13 @@ layout_mode = 2
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Docs"
|
text = "Docs"
|
||||||
icon = SubResource("ImageTexture_jjt2y")
|
|
||||||
flat = true
|
flat = true
|
||||||
|
|
||||||
[node name="VersionLabel" type="Label" parent="Margin/Content/CodePanel/Toolbar"]
|
[node name="VersionLabel" type="Label" parent="Margin/Content/CodePanel/Toolbar"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
modulate = Color(1, 1, 1, 0.490196)
|
modulate = Color(1, 1, 1, 0.490196)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "v2.44.1"
|
text = "v2.42.2"
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
[node name="UpdateButton" parent="Margin/Content/CodePanel/Toolbar" instance=ExtResource("2_ph3vs")]
|
[node name="UpdateButton" parent="Margin/Content/CodePanel/Toolbar" instance=ExtResource("2_ph3vs")]
|
||||||
@ -288,538 +286,53 @@ layout_mode = 2
|
|||||||
|
|
||||||
[node name="CodeEdit" parent="Margin/Content/CodePanel" instance=ExtResource("2_f73fm")]
|
[node name="CodeEdit" parent="Margin/Content/CodePanel" instance=ExtResource("2_f73fm")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
theme_override_colors/current_line_color = Color(1, 1, 1, 0.07)
|
theme_override_colors/current_line_color = Color(0.266667, 0.278431, 0.352941, 0.243137)
|
||||||
theme_override_colors/background_color = Color(0.1155, 0.132, 0.1595, 1)
|
theme_override_colors/background_color = Color(0.156863, 0.164706, 0.211765, 1)
|
||||||
theme_override_colors/font_color = Color(0.8025, 0.81, 0.8225, 1)
|
theme_override_colors/font_color = Color(0.972549, 0.972549, 0.94902, 1)
|
||||||
theme_override_fonts/font = SubResource("FontVariation_d3ufv")
|
theme_override_font_sizes/font_size = 14
|
||||||
theme_override_font_sizes/font_size = 28
|
|
||||||
theme_override_colors/bookmark_color = Color(1, 0.333333, 0.333333, 1)
|
theme_override_colors/bookmark_color = Color(1, 0.333333, 0.333333, 1)
|
||||||
text = "#场景一
|
text = "~ start
|
||||||
~ c02_s01_menpai
|
|
||||||
##孤寂的氛围
|
Nathan: Hi, I'm Nathan and this is Coco.
|
||||||
(芦昌路26弄3号) [ID:芦昌路26]
|
Coco: Meow.
|
||||||
吕萍: “这是梦里的那栋楼” [ID:c02_吕萍_001_梦楼]
|
Nathan: Here are some response options.
|
||||||
=> END
|
- First one
|
||||||
|
Nathan: You picked the first one.
|
||||||
|
- Second one
|
||||||
|
Nathan: You picked the second one.
|
||||||
|
- Start again => start
|
||||||
|
- End the conversation => END
|
||||||
|
Nathan: I hope this example is helpful.
|
||||||
|
Coco: Meow.
|
||||||
|
|
||||||
~ c02_s01_xunren
|
|
||||||
(似乎是一张寻人启示) [ID:tf6373b1461]
|
|
||||||
(脸的部分被撕掉了,看不清) [ID:tace136aa1d]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
#~ c02_s01_boy1
|
|
||||||
#(男孩在玩弹珠)
|
|
||||||
#吕萍: “小朋友,先让一让好哇,让姐姐先进去”
|
|
||||||
#=> END
|
|
||||||
|
|
||||||
#~ c02_s01_boy2
|
|
||||||
#男孩: “我在等人......”
|
|
||||||
#=> END
|
|
||||||
#
|
|
||||||
#~ c02_s01_boy3
|
|
||||||
#吕萍: “......诶?”
|
|
||||||
#(小男孩突然跑开)
|
|
||||||
#=> END
|
|
||||||
|
|
||||||
#场景二
|
|
||||||
~ c02_s02_tianqi
|
|
||||||
吕萍: “冷飕飕的,早知道多穿一件出来了”[next=4.2] [ID:t80736c88c5]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
|
|
||||||
~ c02_s02_xuanchuanhua
|
|
||||||
(几张卫生宣传画) [ID:t8b921a1f0d]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s02_laoshudong
|
|
||||||
(一个老鼠洞) [ID:tb3c5bdf8fa]
|
|
||||||
(在这种楼里挺常见的) [ID:t67b292ac79]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s02_shuyihaibao
|
|
||||||
(十几年前的报纸) [ID:tc0b1d09ad5]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
|
|
||||||
#场景三
|
|
||||||
~ c02_s03_tianqi
|
|
||||||
吕萍: “天色变暗了”[next=3] [ID:t697159b817]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_xunren
|
|
||||||
(又是那张寻人启示) [ID:t10093c48d6]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_baoweishi
|
|
||||||
(锁住了) [ID:t33de979333]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_tiemen
|
|
||||||
(锁住了) [ID:t060613cc71]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_1014
|
|
||||||
(锁住了) [ID:t4c83f86ec3]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_1015
|
|
||||||
(锁住了) [ID:ta4d131091f]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_blood
|
|
||||||
(干掉的血迹) [ID:t53107de49e]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_yaoshi
|
|
||||||
(有什么东西) [ID:t6bf59cddd7]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_shuhuan
|
|
||||||
(墙上的海报被撕掉了) [ID:tde8f5415c3]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_mimi
|
|
||||||
吕萍: “这么冷的天,怎么这树的叶子还这么茂盛” [ID:tfbff76fa77]
|
|
||||||
#=> END
|
|
||||||
[wait=3][next=1] [ID:t88c78480dd]
|
|
||||||
~ c02_s03_mimi3
|
|
||||||
吕萍: “咪咪?” [ID:ta853571b30]
|
|
||||||
吕萍: “好多老鼠” [ID:t300a11f578]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_shushu
|
|
||||||
吕萍: “去,去” [ID:t3c391a329c]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_mimi2
|
|
||||||
吕萍: “你好乖啊” [ID:tac301a659a]
|
|
||||||
(咕噜咕噜) [ID:t648fa1c8e2]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_mimi2_2
|
|
||||||
吕萍: “诶?怎么走了” [ID:t9a6f86b1ba]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_jing
|
|
||||||
(井里有一股臭味) [ID:t70d94938c8]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_xiaomaotou
|
|
||||||
吕萍: “这是什么东西?” [ID:t827e03aa77]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s03_xiaomaotou_2
|
|
||||||
吕萍: “嘶......我的头又开始痛了”[next=6.1] [ID:t5ec7026aa0]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
|
|
||||||
#[color=MEDIUM_SPRING_GREEN]小蝶[/color]
|
|
||||||
|
|
||||||
|
|
||||||
#场景四
|
|
||||||
~ c02_s04_fartherandgirl
|
|
||||||
[color=MEDIUM_SPRING_GREEN]???:[/color] “爸爸,我昨晚听到有大老鼠在床边叫”[next=5] [ID:tabd2edb27e]
|
|
||||||
[color=POWDER_BLUE]???:[/color] “囡囡不怕哦,你把妈妈给你做的娃娃放在床边”[next=5][ID:ta308681a21]
|
|
||||||
[color=POWDER_BLUE]???:[/color] “老鼠就不敢过来了”[next=1.6] [ID:ta66609d55b]
|
|
||||||
[color=MEDIUM_SPRING_GREEN]???:[/color] “嗯!爸爸什么时候让妈妈教我唱歌呀”[next=5] [ID:t38603155aa]
|
|
||||||
[color=POWDER_BLUE]???:[/color] “妈妈生病嗓子坏了,等忙完这一阵,爸爸教你唱,好吗”[next=7.5] [ID:tbce77569eb]
|
|
||||||
[color=POWDER_BLUE]???:[/color] “走吧,爸爸带你去把药喝了”[next=3] [ID:t4bf2f8b7dc]
|
|
||||||
[color=MEDIUM_SPRING_GREEN]???:[/color] “喝完药我要吃话梅糖!”[next=3.4] [ID:t9d9d410a0b]
|
|
||||||
[color=POWDER_BLUE]???:[/color] “你就记得糖”[next=4] [ID:t0e40b0a6ca]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
|
|
||||||
~ c02_s04_lvping_02
|
|
||||||
吕萍: “我刚才眼花了吗” [ID:t13ffd6841d]
|
|
||||||
吕萍: “这些人从哪儿来的” [ID:t2b7f492af2]
|
|
||||||
吕萍: “......” [ID:t43e3e802fb]
|
|
||||||
吕萍: “找个人问一下吧” [ID:tc4e755f8cc]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s04_yaoche
|
|
||||||
(车上放了一些中药材) [ID:t198fd11186]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s04_louti
|
|
||||||
(排队的人堵住了上楼的路) [ID:t2f080e7e4f]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s04_lishi_01
|
|
||||||
吕萍: “你好,请问陆先生住在这里吗” [ID:tef94e4cddf]
|
|
||||||
[color=SKY_BLUE]???:[/color] “啊?你爸妈忙的又没空管你啦” [ID:tefe6342ef5]
|
|
||||||
[color=SKY_BLUE]???:[/color] “死了滚,生意都被你家抢没了” [ID:t8ac1e1d74d]
|
|
||||||
吕萍: “她在说什么......” [ID:t385ad205e6]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s04_lishi_02
|
|
||||||
[color=SKY_BLUE]???:[/color] “册那,都趁早死死掉算了”[next=3] [ID:t0ad0a91e1f]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s04_xiazi
|
|
||||||
吕萍: “呃......你好,请问......” [ID:te52e87e435]
|
|
||||||
[color=BURLYWOOD]???:[/color] “祸福在己,当自求;兴衰有数,莫强留” [ID:tb39e6e2176]
|
|
||||||
吕萍: “......” [ID:t0c7b5487e7]
|
|
||||||
=> END!
|
|
||||||
|
|
||||||
~ c02_s04_pangzi_01
|
|
||||||
[color=DARK_KHAKI]???:[/color] “老方,小朋友又不懂,和她讲这些干嘛” [ID:t55e158aa73]
|
|
||||||
[color=DARK_KHAKI]???:[/color] “小蝶啊,回头记得带妈妈来叔叔这儿买肉啊” [ID:t0e5a348b5f]
|
|
||||||
[color=DARK_KHAKI]???:[/color] “外面没的买,叔叔这里多的是” [ID:tbc55af8bf7]
|
|
||||||
吕萍: “这些人是在跟我说话吗” [ID:t0a091a2712]
|
|
||||||
=> END!
|
|
||||||
|
|
||||||
~ c02_s04_pangzi_02
|
|
||||||
[color=DARK_KHAKI]???:[/color] “来来来,过来,过来” [ID:te49f3f6290]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s04_pangzi_03
|
|
||||||
[color=DARK_KHAKI]???:[/color] “悄悄和你讲,让你妈妈来我这里买肉,给你们家便宜点” [ID:t0b675d22e8]
|
|
||||||
[color=DARK_KHAKI]???:[/color] “不行到时候我给你们把肉送到家里去,好哇” [ID:t6699cc4d89]
|
|
||||||
吕萍: “呃,不用......不用了......” [ID:te8b6cac261]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s04_boy
|
|
||||||
小男孩: “喂,那只成天跟着你的小猫去哪里啦” [ID:t7c47b8f2ea]
|
|
||||||
小男孩: “好可爱的,也抱来给我们摸摸呗” [ID:tbcb3f3a5c8]
|
|
||||||
吕萍: “猫?你说的是那只黑色的猫吗?” [ID:t91bffb0a56]
|
|
||||||
小男孩: “对啊对啊,哦对了,你有绳子嘛” [ID:t6ebd045126]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s04_boy01
|
|
||||||
小男孩: “对了,你有绳子嘛” [ID:tcb8871c993]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s04_boy02
|
|
||||||
小男孩: “嘿嘿,一会儿我们要在常年青下玩游戏,这次就叫上你吧” [ID:tafbb065366]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ xuzhang_01_04_wanglaizi
|
|
||||||
[color=SKY_BLUE]???:[/color] “真的假的?你钻进去啦,你这个体型进的去哒?”[next=5] [ID:t9f383266ad]
|
|
||||||
[color=INDIAN_RED]???:[/color] “你声音轻点,这种事情不要大呼小叫的”[next=4] [ID:t84153d1302]
|
|
||||||
#[color=INDIAN_RED]???:[/color] “这种事情不要大呼小叫的”[next=4] [ID:t4eac89d661]
|
|
||||||
[color=SKY_BLUE]???:[/color] “快说说,你都看到啥了”[next=4] [ID:t50ee4564c0]
|
|
||||||
[color=INDIAN_RED]???:[/color] “他们养了只老鼠,要死掉了”[next=2.5] [ID:t42919f1d5e]
|
|
||||||
[color=INDIAN_RED]???:[/color] “没看到过这么大的老鼠”[next=2] [ID:tb25a6cfd1d]
|
|
||||||
[color=SKY_BLUE]???:[/color] “啊?!”[next=1] [ID:td2e2e976b7]
|
|
||||||
[color=SKY_BLUE]???:[/color] “我就说他们家不对劲”[next=3] [ID:t8c2a311801]
|
|
||||||
[color=INDIAN_RED]???:[/color] “晚点我要去找趟瞎子,这东西他比我们懂”[next=4] [ID:t7dbddc808e]
|
|
||||||
[color=SKY_BLUE]???:[/color] “嗯,那你到时候记得......”[next=2] [ID:tb2fd086d70]
|
|
||||||
[color=INDIAN_RED]???:[/color] “好了,其他的回去讲”[next=3] [ID:t86d98df806]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
|
|
||||||
#场景五
|
|
||||||
~ c02_s05_jinmen
|
|
||||||
吕萍: “1014......刚刚那个小男孩说的就是这间吧” [ID:t2c185335a3]
|
|
||||||
吕萍: “这不是个空房间吗?” [ID:t203b58cab5]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s05_men
|
|
||||||
(最好还是先不要出去) [ID:t7ff84c6134]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s05_chuang
|
|
||||||
(太阳快落山了) [ID:t2f3f184fe8]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s05_rili
|
|
||||||
(民国六年十月十五日) [ID:t96fe0e898a]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s05_lijian
|
|
||||||
(打不开) [ID:t18551dadd7]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s05_liefeng
|
|
||||||
(一个洞,里面好像还有空间) [ID:tb37ff31a1b]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
|
|
||||||
#场景六
|
|
||||||
~ c02_s06_xiangzi
|
|
||||||
(工具箱) [ID:t6290eed263]
|
|
||||||
(应该能找到有用的东西) [ID:t42468d2f1f]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s06_gaoshi
|
|
||||||
(公寓告示) [ID:t1fc2a3944c]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s06_lijian
|
|
||||||
(通往里间的门) [ID:t0e2886f21e]
|
|
||||||
(打不开) [ID:t6742e43e04]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
#场景七
|
|
||||||
~ c02_s07_guahua
|
|
||||||
(挂画) [ID:t57fa48a9de]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s07_huamingce
|
|
||||||
(花名册) [ID:t4018c7f508]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s07_huamingce02
|
|
||||||
吕萍: “陆仁,小蝶,吕......萍” [ID:tcee1769bea]
|
|
||||||
吕萍: “和他说的一样,为什么” [ID:t01705be451]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
#场景八
|
|
||||||
~ c02_s08_kaitou01
|
|
||||||
吕萍: “怎么突然变暗了”[next=3.5] [ID:tbb8eaaac33]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s08_kaitou02
|
|
||||||
吕萍: “嗯?玩具在发光”[next=3.5] [ID:t3f088c65fc]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s08_rili
|
|
||||||
(罪) [ID:tecab2324ef]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s08_men
|
|
||||||
(门上有什么东西) [ID:tb8be4f8529]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
|
|
||||||
~ c02_s08_fangjian1
|
|
||||||
吕萍: “房间怎么还没有到头”[next=3.3] [ID:t585e87c2fb]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s08_zhitiao1
|
|
||||||
(纸条) [ID:ta468951404]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s08_zhitiao2
|
|
||||||
吕萍: “头好痛”[next=4] [ID:tb9f4a5c023]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s08_fangjian2
|
|
||||||
吕萍: “......”[next=auto] [ID:tfab540faa7]
|
|
||||||
吕萍: “这......到底是怎么回事”[next=4.1] [ID:t6a9fae7f94]
|
|
||||||
吕萍: “我是在......做梦吗?”[next=4.1] [ID:t44b63ca9c1]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s08_xiaodie01
|
|
||||||
[color=MEDIUM_SPRING_GREEN]???:[/color]: “爸爸什么时候让妈妈教我唱歌呀”[next=auto] [ID:tba2d3b254f]
|
|
||||||
[color=POWDER_BLUE]???:[/color]: “妈妈嗓子坏了,爸爸教你唱吧”[next=4] [ID:tddb946d7ab]
|
|
||||||
[color=POWDER_BLUE]???:[/color]: “走吧,去把药喝了”[next=3.6] [ID:t26758aff7d]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s08_xiaodie02
|
|
||||||
[color=MEDIUM_SPRING_GREEN]???:[/color]: “妈妈,爸爸什么时候能让我出去玩呀”[next=auto] [ID:tfd98f18577]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s08_xiaodie03
|
|
||||||
[color=MEDIUM_SPRING_GREEN]???:[/color]: “妈妈,我房间里好像有一只大老鼠”[next=auto] [ID:td708807bf4]
|
|
||||||
[color=MEDIUM_SPRING_GREEN]???:[/color]: “妈妈,我怕”[next=auto] [ID:t56894aa36d]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s08_jiewei01
|
|
||||||
[color=AQUA]???:[/color]: “小蝶”[next=2.1] [ID:t0bd0b50791]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s08_jiewei02
|
|
||||||
[color=AQUA]???:[/color]: “醒醒”[next=2] [ID:t7c7439fb6a]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s08_jiewei03
|
|
||||||
吕萍: “太吵了,不要吵了”[next=3.3] [ID:te61a43eed3]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s08_jiewei04
|
|
||||||
吕萍: “不要再说了!”[next=1.6] [ID:t96238696c3]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s08_jiewei05
|
|
||||||
吕萍: “不要!”[next=2] [ID:t5cf3356bb1]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s09_zhitiao
|
|
||||||
(纸条) [ID:tda6ab6a3dd]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s09_1014
|
|
||||||
(锁住了) [ID:t371e88b879]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s09_1015
|
|
||||||
(奠) [ID:t1207196450]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s09_xiaochan
|
|
||||||
(寻人启事) [ID:t4d609b2543]
|
|
||||||
(失踪的小孩名叫夏小蝉) [ID:t236739888b]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
# 场景十
|
|
||||||
~ c02_s10_boy01
|
|
||||||
吕萍: “你是刚刚门口那个小弟弟” [ID:t38152eaaf2]
|
|
||||||
男孩: “小蝶,你终于还是回来了” [ID:te1c5e11fdb]
|
|
||||||
吕萍: “我们认识吗?” [ID:td8476fc7cb]
|
|
||||||
吕萍: “为什么......你们都叫我小蝶” [ID:t6125b684d7]
|
|
||||||
男孩: “在你被送去孤儿院之前,我们就已经认识了” [ID:t0fd4743492]
|
|
||||||
男孩: “你爸爸叫陆仁,那件事之后,他就把你妈妈的名字给了你” [ID:t3795fee445]
|
|
||||||
男孩: “这些年来,我一直在这里等你,我们当初说好的,就在这里,你还记得吗?” [ID:t5e9e91d222]
|
|
||||||
吕萍: “你说的是……真的假的” [ID:t8504465ab1]
|
|
||||||
吕萍: “那个时候的事情,我一点也想不起来啊,你怎么......” [ID:tefe78da40f]
|
|
||||||
吕萍: “不对,不可能,你这么小,不可能知道当年发生了什么” [ID:t481232f0f7]
|
|
||||||
吕萍: “你到底是谁” [ID:td85ad730d3]
|
|
||||||
男孩: “不要害怕,我的名字叫小蝉,记得吗,小蝉” [ID:tf1a514bbe9]
|
|
||||||
吕萍: “不不不,你不要瞎说,我不记得什么小蝉” [ID:t263510936d]
|
|
||||||
吕萍: “我是来找我亲生父母的,你肯定知道他们在哪儿对不对” [ID:t4d7070829c]
|
|
||||||
男孩: “还是想不起来吗” [ID:tc28d032c92]
|
|
||||||
男孩: “没关系,我会帮你的” [ID:t67dfca0c26]
|
|
||||||
男孩: “我们现在没有办法离开这里,这栋楼已经不是当年的样子了” [ID:t6b5d5a9a88]
|
|
||||||
男孩: “你现在在这里一定要小心” [ID:t7051f8e365]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s10_boy02
|
|
||||||
吕萍: “诶?等一下”[next=2] [ID:tde7799b60e]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s10_boy03
|
|
||||||
男孩: “去1014” [ID:t06808e83df]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
|
|
||||||
~ c02_s10_cat
|
|
||||||
吕萍: “咪咪?又是你” [ID:t36141ef025]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s10_men
|
|
||||||
吕萍: “这是......一面墙?” [ID:t664febbf8f]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s11_cat
|
|
||||||
(小猫的尸体已经干了) [ID:t59e8199879]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
# 场景十二
|
|
||||||
~ c02_s12_kaitou
|
|
||||||
吕萍: “这是......通到什么地方去的” [ID:t7ce574125c]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s12_yingbi
|
|
||||||
(几块大洋) [ID:t94b10f6270]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s12_laoshu
|
|
||||||
(死掉的老鼠) [ID:td9593e553b]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s12_hua
|
|
||||||
(石缝里开了几束花) [ID:t70c8da9593]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s12_jiewei
|
|
||||||
(石壁另一头好像还有空间) [ID:t9b1714f00a]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
# 场景十三
|
|
||||||
~ c02_s13_rili
|
|
||||||
(民国六年十二月二十一日) [ID:t9e9a33285a]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s13_fartherandmother
|
|
||||||
[color=POWDER_BLUE]陆仁:[/color]: “你也不要太担心了,柜子我上了把锁”[next=4.3] [ID:t7147becd3a]
|
|
||||||
[color=POWDER_BLUE]陆仁:[/color]: “回头我再去问问看,说不定就是楼里的人偷的”[next=auto] [ID:tcad5305ba4]
|
|
||||||
[wait=1][next=6] [ID:t5dea58cccc]
|
|
||||||
[wait=1][next=3] [ID:t6e6d4ac32e]
|
|
||||||
[color=POWDER_BLUE]陆仁:[/color]: “你不要管他们怎么说,病确实是治好了,我们自己心里知道就可以了”[next=7.3] [ID:tcaf8437dab]
|
|
||||||
[color=POWDER_BLUE]陆仁:[/color]: “对了,昨天小蝶说她听到你做的那个娃娃开口说话了,不知道是怎么回事”[next=8.7] [ID:t39af521c31]
|
|
||||||
[color=POWDER_BLUE]陆仁:[/color]: “是不是应该让她和其他的小朋友一起多去玩玩,不要成天呆在家里”[next=6.7] [ID:t9af43f17ec]
|
|
||||||
[wait=1][next=4] [ID:tc88352dcea]
|
|
||||||
[wait=1][next=4] [ID:t78c1bab20c]
|
|
||||||
[color=POWDER_BLUE]陆仁:[/color]: “嗯......这个我也不是很懂的,那么到时候你和她说吧”[next=7.8] [ID:t3ab35a0776]
|
|
||||||
[color=POWDER_BLUE]陆仁:[/color]: “走吧,外面还有好多人等着呢,时间差不多再看几个今天就休息了”[next=8.3] [ID:t04cdb8c71c]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s13_lock
|
|
||||||
(锁住了) [ID:t4b7e29f605]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s13_xiangkuang
|
|
||||||
(相框) [ID:t05a04e53c5]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s13_xin1
|
|
||||||
(一些患者的感谢信) [ID:t9ea994fc2b]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
#
|
|
||||||
#~ c02_s13_shengyin
|
|
||||||
#吕萍: “进来的地方......好像有声音”
|
|
||||||
#=> END
|
|
||||||
|
|
||||||
~ c02_s13_shu
|
|
||||||
(一本被撕掉的书) [ID:t2f53cff3ba]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s13_xiaomaoshenti
|
|
||||||
(里面有什么东西) [ID:t2292f56db2]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s13_shi
|
|
||||||
(戏台上面刻了一首诗) [ID:td1b7d3133c]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s13_suo
|
|
||||||
(锁开了) [ID:t4bf2612ba6]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
|
|
||||||
~ c02_s14_huangguodong
|
|
||||||
(口袋里有东西) [ID:te513bf86b9]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
|
|
||||||
~ c02_s15_wu
|
|
||||||
(雾太大了,看不清路)[next=auto] [ID:t809fb0c8dc]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
|
|
||||||
~ c02_s15_boy
|
|
||||||
男孩: “你终于还是回来了”[next=4] [ID:t726c5cec0b]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
|
|
||||||
~ c02_s16_bayinhe
|
|
||||||
(是个八音盒) [ID:t08bce48c30]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s16_bayinhe2
|
|
||||||
(祝女儿早日康复) [ID:t744229d4f8]
|
|
||||||
=> END
|
|
||||||
|
|
||||||
~ c02_s15_fuzhou
|
|
||||||
(这图案和我手臂上的一摸一样) [ID:t2b3f3cc8b0]
|
|
||||||
=> END"
|
=> END"
|
||||||
scroll_smooth = true
|
scroll_smooth = true
|
||||||
syntax_highlighter = SubResource("SyntaxHighlighter_q4u2v")
|
syntax_highlighter = SubResource("SyntaxHighlighter_bxc68")
|
||||||
|
|
||||||
[node name="ErrorsPanel" parent="Margin/Content/CodePanel" instance=ExtResource("7_5cvl4")]
|
[node name="ErrorsPanel" parent="Margin/Content/CodePanel" instance=ExtResource("7_5cvl4")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="NewDialog" type="FileDialog" parent="."]
|
[node name="NewDialog" type="FileDialog" parent="."]
|
||||||
size = Vector2i(1200, 1000)
|
size = Vector2i(900, 750)
|
||||||
min_size = Vector2i(1200, 1000)
|
min_size = Vector2i(600, 500)
|
||||||
dialog_hide_on_ok = true
|
dialog_hide_on_ok = true
|
||||||
filters = PackedStringArray("*.dialogue ; Dialogue")
|
filters = PackedStringArray("*.dialogue ; Dialogue")
|
||||||
|
|
||||||
[node name="SaveDialog" type="FileDialog" parent="."]
|
[node name="SaveDialog" type="FileDialog" parent="."]
|
||||||
size = Vector2i(1200, 1000)
|
size = Vector2i(900, 750)
|
||||||
min_size = Vector2i(1200, 1000)
|
min_size = Vector2i(600, 500)
|
||||||
dialog_hide_on_ok = true
|
dialog_hide_on_ok = true
|
||||||
filters = PackedStringArray("*.dialogue ; Dialogue")
|
filters = PackedStringArray("*.dialogue ; Dialogue")
|
||||||
|
|
||||||
[node name="OpenDialog" type="FileDialog" parent="."]
|
[node name="OpenDialog" type="FileDialog" parent="."]
|
||||||
title = "Open a File"
|
title = "Open a File"
|
||||||
size = Vector2i(1200, 1000)
|
size = Vector2i(900, 750)
|
||||||
min_size = Vector2i(1200, 1000)
|
min_size = Vector2i(600, 500)
|
||||||
ok_button_text = "Open"
|
ok_button_text = "Open"
|
||||||
dialog_hide_on_ok = true
|
dialog_hide_on_ok = true
|
||||||
file_mode = 0
|
file_mode = 0
|
||||||
@ -827,20 +340,20 @@ filters = PackedStringArray("*.dialogue ; Dialogue")
|
|||||||
|
|
||||||
[node name="QuickOpenDialog" type="ConfirmationDialog" parent="."]
|
[node name="QuickOpenDialog" type="ConfirmationDialog" parent="."]
|
||||||
title = "Quick open"
|
title = "Quick open"
|
||||||
size = Vector2i(800, 1200)
|
size = Vector2i(600, 900)
|
||||||
min_size = Vector2i(800, 1200)
|
min_size = Vector2i(400, 600)
|
||||||
ok_button_text = "Open"
|
ok_button_text = "Open"
|
||||||
|
|
||||||
[node name="QuickOpenFilesList" parent="QuickOpenDialog" instance=ExtResource("2_npj2k")]
|
[node name="QuickOpenFilesList" parent="QuickOpenDialog" instance=ExtResource("2_npj2k")]
|
||||||
|
|
||||||
[node name="ExportDialog" type="FileDialog" parent="."]
|
[node name="ExportDialog" type="FileDialog" parent="."]
|
||||||
size = Vector2i(1200, 1000)
|
size = Vector2i(900, 750)
|
||||||
min_size = Vector2i(1200, 1000)
|
min_size = Vector2i(600, 500)
|
||||||
|
|
||||||
[node name="ImportDialog" type="FileDialog" parent="."]
|
[node name="ImportDialog" type="FileDialog" parent="."]
|
||||||
title = "Open a File"
|
title = "Open a File"
|
||||||
size = Vector2i(1200, 1000)
|
size = Vector2i(900, 750)
|
||||||
min_size = Vector2i(1200, 1000)
|
min_size = Vector2i(600, 500)
|
||||||
ok_button_text = "Open"
|
ok_button_text = "Open"
|
||||||
file_mode = 0
|
file_mode = 0
|
||||||
filters = PackedStringArray("*.csv ; Translation CSV")
|
filters = PackedStringArray("*.csv ; Translation CSV")
|
||||||
@ -851,10 +364,10 @@ dialog_text = "You have errors in your script. Fix them and then try again."
|
|||||||
|
|
||||||
[node name="SettingsDialog" type="AcceptDialog" parent="."]
|
[node name="SettingsDialog" type="AcceptDialog" parent="."]
|
||||||
title = "Settings"
|
title = "Settings"
|
||||||
size = Vector2i(2000, 1200)
|
size = Vector2i(1000, 600)
|
||||||
unresizable = true
|
unresizable = true
|
||||||
min_size = Vector2i(2000, 1200)
|
min_size = Vector2i(1000, 600)
|
||||||
max_size = Vector2i(2000, 1200)
|
max_size = Vector2i(1000, 600)
|
||||||
ok_button_text = "Done"
|
ok_button_text = "Done"
|
||||||
|
|
||||||
[node name="SettingsView" parent="SettingsDialog" instance=ExtResource("9_8bf36")]
|
[node name="SettingsView" parent="SettingsDialog" instance=ExtResource("9_8bf36")]
|
||||||
@ -878,8 +391,8 @@ dialog_text = "You're now up to date!"
|
|||||||
|
|
||||||
[node name="FindInFilesDialog" type="AcceptDialog" parent="."]
|
[node name="FindInFilesDialog" type="AcceptDialog" parent="."]
|
||||||
title = "Find in files"
|
title = "Find in files"
|
||||||
size = Vector2i(1600, 1200)
|
size = Vector2i(1200, 900)
|
||||||
min_size = Vector2i(1600, 1200)
|
min_size = Vector2i(800, 600)
|
||||||
ok_button_text = "Done"
|
ok_button_text = "Done"
|
||||||
|
|
||||||
[node name="FindInFiles" parent="FindInFilesDialog" node_paths=PackedStringArray("main_view", "code_edit") instance=ExtResource("10_yold3")]
|
[node name="FindInFiles" parent="FindInFilesDialog" node_paths=PackedStringArray("main_view", "code_edit") instance=ExtResource("10_yold3")]
|
||||||
|
@ -173,6 +173,8 @@ func _notification(what: int) -> void:
|
|||||||
|
|
||||||
## Start some dialogue
|
## Start some dialogue
|
||||||
func start(dialogue_resource: DialogueResource, title: String, extra_game_states: Array = []) -> void:
|
func start(dialogue_resource: DialogueResource, title: String, extra_game_states: Array = []) -> void:
|
||||||
|
if not is_node_ready():
|
||||||
|
await ready
|
||||||
temporary_game_states = [self] + extra_game_states
|
temporary_game_states = [self] + extra_game_states
|
||||||
is_waiting_for_input = false
|
is_waiting_for_input = false
|
||||||
resource = dialogue_resource
|
resource = dialogue_resource
|
||||||
|
@ -131,6 +131,8 @@ func _notification(what: int) -> void:
|
|||||||
|
|
||||||
## Start some dialogue
|
## Start some dialogue
|
||||||
func start(dialogue_resource: DialogueResource, title: String, extra_game_states: Array = []) -> void:
|
func start(dialogue_resource: DialogueResource, title: String, extra_game_states: Array = []) -> void:
|
||||||
|
if not is_node_ready():
|
||||||
|
await ready
|
||||||
temporary_game_states = [self] + extra_game_states
|
temporary_game_states = [self] + extra_game_states
|
||||||
is_waiting_for_input = false
|
is_waiting_for_input = false
|
||||||
resource = dialogue_resource
|
resource = dialogue_resource
|
||||||
|
Loading…
Reference in New Issue
Block a user