Array.hpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #ifndef ARRAY_H
  2. #define ARRAY_H
  3. #include <gdnative/array.h>
  4. #include "Defs.hpp"
  5. #include "String.hpp"
  6. namespace godot {
  7. class Variant;
  8. class PoolByteArray;
  9. class PoolIntArray;
  10. class PoolRealArray;
  11. class PoolStringArray;
  12. class PoolVector2Array;
  13. class PoolVector3Array;
  14. class PoolColorArray;
  15. class Object;
  16. class Array {
  17. godot_array _godot_array;
  18. public:
  19. Array();
  20. Array(const Array & other);
  21. Array & operator=(const Array & other);
  22. Array(const PoolByteArray& a);
  23. Array(const PoolIntArray& a);
  24. Array(const PoolRealArray& a);
  25. Array(const PoolStringArray& a);
  26. Array(const PoolVector2Array& a);
  27. Array(const PoolVector3Array& a);
  28. Array(const PoolColorArray& a);
  29. template <class... Args>
  30. static Array make(Args... args) {
  31. return helpers::append_all(Array(), args...);
  32. }
  33. Variant& operator [](const int idx);
  34. Variant operator [](const int idx) const;
  35. void append(const Variant& v);
  36. void clear();
  37. int count(const Variant& v);
  38. bool empty() const;
  39. void erase(const Variant& v);
  40. Variant front() const;
  41. Variant back() const;
  42. int find(const Variant& what, const int from = 0);
  43. int find_last(const Variant& what);
  44. bool has(const Variant& what) const;
  45. uint32_t hash() const;
  46. void insert(const int pos, const Variant& value);
  47. void invert();
  48. bool is_shared() const;
  49. Variant pop_back();
  50. Variant pop_front();
  51. void push_back(const Variant& v);
  52. void push_front(const Variant& v);
  53. void remove(const int idx);
  54. int size() const;
  55. void resize(const int size);
  56. int rfind(const Variant& what, const int from = -1);
  57. void sort();
  58. void sort_custom(Object *obj, const String& func);
  59. ~Array();
  60. };
  61. }
  62. #endif // ARRAY_H