ajout du plugin dialogical

This commit is contained in:
2026-01-10 13:00:58 +01:00
parent 8917a02a7b
commit c130c47042
884 changed files with 49385 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
@tool
class_name DialogicCharacterPrefixSuffixSection
extends DialogicCharacterEditorMainSection
## Character Editor Section for setting the prefix and suffix of a character.
##
## loads and sets the prefix and suffix of a character.
## Provides [const PREFIX_CUSTOM_KEY] and [const SUFFIX_CUSTOM_KEY] to
## access the `custom_info` dictionary of the [class DialogicCharacter].
@export var prefix_input: LineEdit
@export var suffix_input: LineEdit
## We won't force any prefixes or suffixes onto the player,
## to ensure their games are working as previously when updating.
const DEFAULT_PREFIX = ""
const DEFAULT_SUFFIX = ""
## `custom_info` dictionary keys for the prefix.
const PREFIX_CUSTOM_KEY = "prefix"
## `custom_info` dictionary keys for the prefix.
const SUFFIX_CUSTOM_KEY = "suffix"
var suffix := ""
var prefix := ""
func _ready() -> void:
suffix_input.text_changed.connect(_suffix_changed)
prefix_input.text_changed.connect(_prefix_changed)
func _suffix_changed(text: String) -> void:
suffix = text
func _prefix_changed(text: String) -> void:
prefix = text
func _get_title() -> String:
return "Character Prefix & Suffix"
func _show_title() -> bool:
return true
func _start_opened() -> bool:
return false
func _load_portrait_data(portrait_data: Dictionary) -> void:
_load_prefix_data(portrait_data)
## We load the prefix and suffix from the character's `custom_info` dictionary.
func _load_character(resource: DialogicCharacter) -> void:
_load_prefix_data(resource.custom_info)
func _load_prefix_data(data: Dictionary) -> void:
suffix = data.get(SUFFIX_CUSTOM_KEY, DEFAULT_SUFFIX)
prefix = data.get(PREFIX_CUSTOM_KEY, DEFAULT_PREFIX)
suffix_input.text = suffix
prefix_input.text = prefix
## Whenever the user makes a save to the character, we save the prefix and suffix.
func _save_changes(character: DialogicCharacter) -> DialogicCharacter:
if not character:
printerr("[Dialogic] Unable to save Prefix and Suffix, the character is missing.")
return character
character.custom_info[PREFIX_CUSTOM_KEY] = prefix
character.custom_info[SUFFIX_CUSTOM_KEY] = suffix
return character