BsProjectResourceMetaRTTI.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsPrerequisites.h"
  5. #include "BsRTTIType.h"
  6. #include "BsProjectResourceMeta.h"
  7. #include "BsResourceMetaData.h"
  8. #include "BsImportOptions.h"
  9. namespace BansheeEngine
  10. {
  11. class ProjectResourceMetaRTTI : public RTTIType<ProjectResourceMeta, IReflectable, ProjectResourceMetaRTTI>
  12. {
  13. private:
  14. BS_PLAIN_MEMBER(mName)
  15. BS_PLAIN_MEMBER(mUUID)
  16. BS_PLAIN_MEMBER(mTypeId)
  17. BS_REFLPTR_MEMBER(mResourceMeta)
  18. public:
  19. ProjectResourceMetaRTTI()
  20. {
  21. BS_ADD_PLAIN_FIELD(mName, 0);
  22. BS_ADD_PLAIN_FIELD(mUUID, 1);
  23. BS_ADD_PLAIN_FIELD(mTypeId, 2);
  24. BS_ADD_REFLPTR_FIELD(mResourceMeta, 3);
  25. }
  26. const String& getRTTIName() override
  27. {
  28. static String name = "ProjectResourceMeta";
  29. return name;
  30. }
  31. UINT32 getRTTIId() override
  32. {
  33. return TID_ProjectResourceMeta;
  34. }
  35. SPtr<IReflectable> newRTTIObject() override
  36. {
  37. return ProjectResourceMeta::createEmpty();
  38. }
  39. };
  40. class ProjectFileMetaRTTI : public RTTIType<ProjectFileMeta, IReflectable, ProjectFileMetaRTTI>
  41. {
  42. private:
  43. BS_REFLPTR_MEMBER(mImportOptions)
  44. BS_PLAIN_MEMBER(mIncludeInBuild)
  45. BS_REFLPTR_MEMBER_VEC(mResourceMetaData)
  46. public:
  47. ProjectFileMetaRTTI()
  48. {
  49. BS_ADD_REFLPTR_FIELD(mImportOptions, 1);
  50. BS_ADD_PLAIN_FIELD(mIncludeInBuild, 4);
  51. BS_ADD_REFLPTR_FIELD_ARR(mResourceMetaData, 5);
  52. }
  53. const String& getRTTIName() override
  54. {
  55. static String name = "ProjectFileMeta";
  56. return name;
  57. }
  58. UINT32 getRTTIId() override
  59. {
  60. return TID_ProjectFileMeta;
  61. }
  62. SPtr<IReflectable> newRTTIObject() override
  63. {
  64. return ProjectFileMeta::createEmpty();
  65. }
  66. };
  67. }