Dictionary.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #include "Dictionary.hpp"
  2. #include "Variant.hpp"
  3. #include "Array.hpp"
  4. #include <godot/godot_dictionary.h>
  5. namespace godot {
  6. Dictionary::Dictionary()
  7. {
  8. godot_dictionary_new(&_godot_dictionary);
  9. }
  10. void Dictionary::clear()
  11. {
  12. godot_dictionary_clear(&_godot_dictionary);
  13. }
  14. bool Dictionary::empty() const
  15. {
  16. return godot_dictionary_empty(&_godot_dictionary);
  17. }
  18. void Dictionary::erase(const Variant& key)
  19. {
  20. godot_dictionary_erase(&_godot_dictionary, (godot_variant *) &key);
  21. }
  22. bool Dictionary::has(const Variant& key) const
  23. {
  24. return godot_dictionary_has(&_godot_dictionary, (godot_variant *) &key);
  25. }
  26. bool Dictionary::has_all(const Array& keys) const
  27. {
  28. return godot_dictionary_has_all(&_godot_dictionary, (godot_array *) &keys);
  29. }
  30. uint32_t Dictionary::hash() const
  31. {
  32. return godot_dictionary_hash(&_godot_dictionary);
  33. }
  34. Array Dictionary::keys() const
  35. {
  36. godot_array a = godot_dictionary_keys(&_godot_dictionary);
  37. return *(Array *) &a;
  38. }
  39. int Dictionary::parse_json(const String& json)
  40. {
  41. return godot_dictionary_parse_json(&_godot_dictionary, (godot_string *) &json);
  42. }
  43. Variant &Dictionary::operator [](const Variant& key)
  44. {
  45. return *(Variant *) godot_dictionary_operator_index(&_godot_dictionary, (godot_variant *) &key);
  46. }
  47. const Variant &Dictionary::operator [](const Variant& key) const
  48. {
  49. // oops I did it again
  50. return *(Variant *) godot_dictionary_operator_index((godot_dictionary *) &_godot_dictionary, (godot_variant *) &key);
  51. }
  52. int Dictionary::size() const
  53. {
  54. return godot_dictionary_size(&_godot_dictionary);
  55. }
  56. String Dictionary::to_json() const
  57. {
  58. godot_string s = godot_dictionary_to_json(&_godot_dictionary);
  59. return *(String *) &s;
  60. }
  61. Array Dictionary::values() const
  62. {
  63. godot_array a = godot_dictionary_values(&_godot_dictionary);
  64. return *(Array *) &a;
  65. }
  66. Dictionary::~Dictionary()
  67. {
  68. godot_dictionary_destroy(&_godot_dictionary);
  69. }
  70. }