BsResourceManifestRTTI.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsCorePrerequisites.h"
  5. #include "BsRTTIType.h"
  6. #include "BsResourceManifest.h"
  7. namespace BansheeEngine
  8. {
  9. /** @cond RTTI */
  10. /** @addtogroup RTTI-Impl-Core
  11. * @{
  12. */
  13. class BS_CORE_EXPORT ResourceManifestRTTI : public RTTIType<ResourceManifest, IReflectable, ResourceManifestRTTI>
  14. {
  15. private:
  16. String& getName(ResourceManifest* obj) { return obj->mName; }
  17. void setName(ResourceManifest* obj, String& val) { obj->mName = val; }
  18. UnorderedMap<String, Path>& getUUIDMap(ResourceManifest* obj) { return obj->mUUIDToFilePath; }
  19. void setUUIDMap(ResourceManifest* obj, UnorderedMap<String, Path>& val)
  20. {
  21. obj->mUUIDToFilePath = val;
  22. obj->mFilePathToUUID.clear();
  23. for(auto& entry : obj->mUUIDToFilePath)
  24. {
  25. obj->mFilePathToUUID[entry.second] = entry.first;
  26. }
  27. }
  28. public:
  29. ResourceManifestRTTI()
  30. {
  31. addPlainField("mName", 0, &ResourceManifestRTTI::getName, &ResourceManifestRTTI::setName);
  32. addPlainField("mUUIDToFilePath", 1, &ResourceManifestRTTI::getUUIDMap, &ResourceManifestRTTI::setUUIDMap);
  33. }
  34. const String& getRTTIName() override
  35. {
  36. static String name = "ResourceManifest";
  37. return name;
  38. }
  39. UINT32 getRTTIId() override
  40. {
  41. return TID_ResourceManifest;
  42. }
  43. SPtr<IReflectable> newRTTIObject() override
  44. {
  45. return ResourceManifest::createEmpty();
  46. }
  47. };
  48. /** @} */
  49. /** @endcond */
  50. }