feat: author emergent situations and dialogue

This commit is contained in:
Rijad Zuzo
2026-08-12 21:58:12 +02:00
parent 14120115d4
commit d12e9515fb
29 changed files with 856 additions and 143 deletions
@@ -13,6 +13,9 @@ extends Resource
@export var storages: Array[StorageDefinition] = []
@export var enemies: Array[EnemyDefinition] = []
@export var animals: Array[AnimalDefinition] = []
@export var situations: Array[SituationDefinition] = []
@export var dialogue_intents: Array[ConversationIntentDefinition] = []
@export var dialogue_template_catalogs: Array[ConversationTemplateCatalog] = []
func validate() -> Array[String]:
@@ -33,6 +36,9 @@ func validate() -> Array[String]:
_validate_storages(errors)
_validate_enemies(errors)
_validate_animals(errors)
_validate_situations(errors)
_validate_dialogue_intents(errors)
_validate_dialogue_template_catalogs(errors)
return errors
@@ -108,6 +114,32 @@ func _validate_animals(errors: Array[String]) -> void:
errors.append("AnimalDefinition: " + error)
func _validate_situations(errors: Array[String]) -> void:
for definition in situations:
if definition == null:
errors.append("situations contains a null definition")
continue
for error in definition.validate():
errors.append("SituationDefinition: " + error)
func _validate_dialogue_intents(errors: Array[String]) -> void:
for definition in dialogue_intents:
if definition == null:
errors.append("dialogue_intents contains a null definition")
continue
for error in definition.validate():
errors.append("ConversationIntentDefinition: " + error)
func _validate_dialogue_template_catalogs(errors: Array[String]) -> void:
for catalog in dialogue_template_catalogs:
if catalog == null:
errors.append("dialogue_template_catalogs contains a null catalog")
elif catalog.catalog_id.is_empty():
errors.append("ConversationTemplateCatalog: catalog_id is empty")
static func _validate_dependency_ids(
ids: Array[StringName], label: String, errors: Array[String]
) -> void: