No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

DialogicDefinitionsUtil.gd 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. extends Node
  2. class_name DialogicDefinitionsUtil
  3. static func get_definition_by_key(data: Dictionary, key: String, value: String):
  4. var variables : Array = data['variables']
  5. var glossary : Array = data['glossary']
  6. for v in variables:
  7. if v[key] == value:
  8. return v
  9. for g in glossary:
  10. if g[key] == value:
  11. return g
  12. return null
  13. static func get_definition_by_id(data: Dictionary, id: String):
  14. return get_definition_by_key(data, 'id', id)
  15. static func get_definition_by_name(data: Dictionary, id: String):
  16. return get_definition_by_key(data, 'name', id)
  17. static func set_definition(section: String, data: Dictionary, elem: Dictionary):
  18. delete_definition(data, elem['id'])
  19. var array: Array = data[section]
  20. var found = false;
  21. for e in array:
  22. if e['id'] == elem['id']:
  23. found = true
  24. array.erase(e)
  25. array.append(elem)
  26. break
  27. if not found:
  28. array.append(elem)
  29. static func set_definition_variable(data: Dictionary, id: String, name: String, value):
  30. set_definition('variables', data, {
  31. 'id': id,
  32. 'name': name,
  33. 'value': value,
  34. 'type': 0
  35. })
  36. static func set_definition_glossary(data: Dictionary, id: String, name: String, title: String, text: String, extra: String):
  37. set_definition('glossary', data, {
  38. 'id': id,
  39. 'name': name,
  40. 'title': title,
  41. 'text': text,
  42. 'extra': extra,
  43. 'type': 1
  44. })
  45. static func delete_definition(data: Dictionary, id: String):
  46. var variables : Array = data['variables']
  47. var glossary : Array = data['glossary']
  48. var item = get_definition_by_id(data, id);
  49. if item != null:
  50. if (item['type'] == 0):
  51. variables.erase(item)
  52. else:
  53. glossary.erase(item)
  54. static func definitions_json_to_array(data: Dictionary) -> Array:
  55. return data['variables'] + data['glossary']