BsPrefabDiffRTTI.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #pragma once
  2. #include "BsCorePrerequisites.h"
  3. #include "BsRTTIType.h"
  4. #include "BsPrefabDiff.h"
  5. namespace BansheeEngine
  6. {
  7. class BS_CORE_EXPORT PrefabComponentDiffRTTI : public RTTIType < PrefabComponentDiff, IReflectable, PrefabComponentDiffRTTI >
  8. {
  9. private:
  10. BS_PLAIN_MEMBER(id)
  11. BS_REFLPTR_MEMBER(data);
  12. public:
  13. PrefabComponentDiffRTTI()
  14. {
  15. BS_ADD_PLAIN_FIELD(id, 0);
  16. BS_ADD_REFLPTR_FIELD(data, 1);
  17. }
  18. virtual const String& getRTTIName() override
  19. {
  20. static String name = "PrefabComponentDiff";
  21. return name;
  22. }
  23. virtual UINT32 getRTTIId() override
  24. {
  25. return TID_PrefabComponentDiff;
  26. }
  27. virtual std::shared_ptr<IReflectable> newRTTIObject() override
  28. {
  29. return bs_shared_ptr<PrefabComponentDiff>();
  30. }
  31. };
  32. class BS_CORE_EXPORT PrefabObjectDiffRTTI : public RTTIType < PrefabObjectDiff, IReflectable, PrefabObjectDiffRTTI >
  33. {
  34. private:
  35. BS_PLAIN_MEMBER(id)
  36. BS_PLAIN_MEMBER(name)
  37. BS_REFLPTR_MEMBER_VEC(componentDiffs)
  38. BS_PLAIN_MEMBER_VEC(removedComponents)
  39. BS_REFLPTR_MEMBER_VEC(addedComponents)
  40. BS_REFLPTR_MEMBER_VEC(childDiffs)
  41. BS_PLAIN_MEMBER_VEC(removedChildren)
  42. BS_REFLPTR_MEMBER_VEC(addedChildren)
  43. public:
  44. PrefabObjectDiffRTTI()
  45. {
  46. BS_ADD_PLAIN_FIELD(id, 0);
  47. BS_ADD_PLAIN_FIELD(name, 1);
  48. BS_ADD_REFLPTR_FIELD_ARR(componentDiffs, 2);
  49. BS_ADD_PLAIN_FIELD_ARR(removedComponents, 3);
  50. BS_ADD_REFLPTR_FIELD_ARR(addedComponents, 4);
  51. BS_ADD_REFLPTR_FIELD_ARR(childDiffs, 5);
  52. BS_ADD_PLAIN_FIELD_ARR(removedChildren, 6);
  53. BS_ADD_REFLPTR_FIELD_ARR(addedChildren, 7);
  54. }
  55. virtual const String& getRTTIName() override
  56. {
  57. static String name = "PrefabObjectDiff";
  58. return name;
  59. }
  60. virtual UINT32 getRTTIId() override
  61. {
  62. return TID_PrefabObjectDiff;
  63. }
  64. virtual std::shared_ptr<IReflectable> newRTTIObject() override
  65. {
  66. return bs_shared_ptr<PrefabObjectDiff>();
  67. }
  68. };
  69. class BS_CORE_EXPORT PrefabDiffRTTI : public RTTIType < PrefabDiff, IReflectable, PrefabDiffRTTI >
  70. {
  71. private:
  72. BS_REFLPTR_MEMBER(mRoot);
  73. public:
  74. PrefabDiffRTTI()
  75. {
  76. BS_ADD_REFLPTR_FIELD(mRoot, 0);
  77. }
  78. virtual const String& getRTTIName() override
  79. {
  80. static String name = "PrefabDiff";
  81. return name;
  82. }
  83. virtual UINT32 getRTTIId() override
  84. {
  85. return TID_PrefabDiff;
  86. }
  87. virtual std::shared_ptr<IReflectable> newRTTIObject() override
  88. {
  89. return bs_shared_ptr<PrefabDiff>();
  90. }
  91. };
  92. }