74 lines
2.2 KiB
GDScript
74 lines
2.2 KiB
GDScript
@tool
|
|
extends Resource
|
|
class_name DialogNodeItemData
|
|
|
|
# This resource is variant and is shared across all node item types
|
|
# Properties which are not applicable are just ignored
|
|
|
|
enum ItemTypes {
|
|
Message, # Basic item, displays a dialog message
|
|
Condition, # Condition to branch out
|
|
Effect # Effect causing a change to some in-game state
|
|
}
|
|
|
|
# Type of item (message, condition or effect)
|
|
@export var item_type: ItemTypes = ItemTypes.Message
|
|
# To what sequence id this item is connected (only valid for condition)
|
|
@export var connected_to_id: int = -1
|
|
# Holds the GraphNode port index for this item
|
|
var port_index : int = -1
|
|
|
|
# ==============================================================================
|
|
# USED BY TYPE: MESSAGE
|
|
|
|
@export var message_speaker_id: String = ""
|
|
@export var message_speaker_variant: String = ""
|
|
|
|
# For compatibility reasons, default names are associated with the default
|
|
# language - that is, if locale isn't specified.
|
|
@export var message_voice_clip: String = "" # Default locale
|
|
@export_multiline var message_text := "" # Default locale
|
|
|
|
# Localised versions go on separate properties
|
|
@export var message_voice_clip_locales: Dictionary = {}
|
|
@export var message_text_locales: Dictionary = {}
|
|
|
|
@export var message_hide_on_end: int = 0
|
|
|
|
func get_localized_text() -> String:
|
|
var locale = MadTalkGlobals.current_locale
|
|
|
|
if locale == "":
|
|
return message_text
|
|
|
|
elif (locale in message_text_locales):
|
|
return message_text_locales[locale]
|
|
|
|
else:
|
|
return message_text
|
|
|
|
|
|
func get_localized_voice_clip() -> String:
|
|
var locale = MadTalkGlobals.current_locale
|
|
|
|
if locale == "":
|
|
return message_voice_clip
|
|
|
|
elif (locale in message_voice_clip_locales):
|
|
return message_voice_clip_locales[locale]
|
|
|
|
else:
|
|
return message_voice_clip
|
|
|
|
# ==============================================================================
|
|
# USED BY TYPE: CONDITION
|
|
|
|
@export var condition_type := MTDefs.ConditionTypes.Custom # (MTDefs.ConditionTypes)
|
|
@export var condition_values: Array = []
|
|
|
|
# ==============================================================================
|
|
# USED BY TYPE: EFFECT
|
|
|
|
@export var effect_type := MTDefs.EffectTypes.Custom # (MTDefs.EffectTypes)
|
|
@export var effect_values: Array = []
|