BsProjectResourceMeta.cpp 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "Library/BsProjectResourceMeta.h"
  4. #include "RTTI/BsProjectResourceMetaRTTI.h"
  5. namespace bs
  6. {
  7. ProjectResourceMeta::ProjectResourceMeta(const ConstructPrivately& dummy)
  8. :mTypeId(0)
  9. {
  10. }
  11. SPtr<ProjectResourceMeta> ProjectResourceMeta::create(const WString& name, const UUID& uuid, UINT32 typeId,
  12. const SPtr<ResourceMetaData>& resourceMetaData)
  13. {
  14. SPtr<ProjectResourceMeta> meta = bs_shared_ptr_new<ProjectResourceMeta>(ConstructPrivately());
  15. meta->mName = name;
  16. meta->mUUID = uuid;
  17. meta->mTypeId = typeId;
  18. meta->mResourceMeta = resourceMetaData;
  19. return meta;
  20. }
  21. SPtr<ProjectResourceMeta> ProjectResourceMeta::createEmpty()
  22. {
  23. return bs_shared_ptr_new<ProjectResourceMeta>(ConstructPrivately());
  24. }
  25. /************************************************************************/
  26. /* RTTI */
  27. /************************************************************************/
  28. RTTITypeBase* ProjectResourceMeta::getRTTIStatic()
  29. {
  30. return ProjectResourceMetaRTTI::instance();
  31. }
  32. RTTITypeBase* ProjectResourceMeta::getRTTI() const
  33. {
  34. return ProjectResourceMeta::getRTTIStatic();
  35. }
  36. ProjectFileMeta::ProjectFileMeta(const ConstructPrivately& dummy)
  37. :mIncludeInBuild(false)
  38. {
  39. }
  40. SPtr<ProjectFileMeta> ProjectFileMeta::create(const SPtr<ImportOptions>& importOptions)
  41. {
  42. SPtr<ProjectFileMeta> meta = bs_shared_ptr_new<ProjectFileMeta>(ConstructPrivately());
  43. meta->mImportOptions = importOptions;
  44. meta->mIncludeInBuild = false;
  45. return meta;
  46. }
  47. void ProjectFileMeta::add(const SPtr<ProjectResourceMeta>& resourceMeta)
  48. {
  49. mResourceMetaData.push_back(resourceMeta);
  50. }
  51. void ProjectFileMeta::addInactive(const SPtr<ProjectResourceMeta>& resourceMeta)
  52. {
  53. mInactiveResourceMetaData.push_back(resourceMeta);
  54. }
  55. Vector<SPtr<ProjectResourceMeta>> ProjectFileMeta::getAllResourceMetaData() const
  56. {
  57. Vector<SPtr<ProjectResourceMeta>> output(mResourceMetaData);
  58. for (auto& entry : mInactiveResourceMetaData)
  59. output.push_back(entry);
  60. return output;
  61. }
  62. bool ProjectFileMeta::hasTypeId(UINT32 typeId) const
  63. {
  64. for(auto& entry : mResourceMetaData)
  65. {
  66. if (entry->getTypeID() == typeId)
  67. return true;
  68. }
  69. return false;
  70. }
  71. bool ProjectFileMeta::hasUUID(const UUID& uuid) const
  72. {
  73. for (auto& entry : mResourceMetaData)
  74. {
  75. if (entry->getUUID() == uuid)
  76. return true;
  77. }
  78. return false;
  79. }
  80. SPtr<ProjectFileMeta> ProjectFileMeta::createEmpty()
  81. {
  82. return bs_shared_ptr_new<ProjectFileMeta>(ConstructPrivately());
  83. }
  84. /************************************************************************/
  85. /* RTTI */
  86. /************************************************************************/
  87. RTTITypeBase* ProjectFileMeta::getRTTIStatic()
  88. {
  89. return ProjectFileMetaRTTI::instance();
  90. }
  91. RTTITypeBase* ProjectFileMeta::getRTTI() const
  92. {
  93. return ProjectFileMeta::getRTTIStatic();
  94. }
  95. }