BsResourceMetaRTTI.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include "BsPrerequisites.h"
  3. #include "BsRTTIType.h"
  4. #include "BsResourceMeta.h"
  5. #include "BsImportOptions.h"
  6. namespace BansheeEngine
  7. {
  8. class ResourceMetaRTTI : public RTTIType<ResourceMeta, IReflectable, ResourceMetaRTTI>
  9. {
  10. private:
  11. String& getUUID(ResourceMeta* obj) { return obj->mUUID; }
  12. void setUUID(ResourceMeta* obj, String& val) { obj->mUUID = val; }
  13. WString& getDisplayName(ResourceMeta* obj) { return obj->mDisplayName; }
  14. void setDisplayName(ResourceMeta* obj, WString& val) { obj->mDisplayName = val; }
  15. ImportOptionsPtr getImportOptions(ResourceMeta* obj) { return obj->mImportOptions; }
  16. void setImportOptions(ResourceMeta* obj, ImportOptionsPtr val) { obj->mImportOptions = val; }
  17. public:
  18. ResourceMetaRTTI()
  19. {
  20. addPlainField("mUUID", 0, &ResourceMetaRTTI::getUUID, &ResourceMetaRTTI::setUUID);
  21. addReflectablePtrField("mImportOptions", 1, &ResourceMetaRTTI::getImportOptions, &ResourceMetaRTTI::setImportOptions);
  22. addPlainField("mDisplayName", 2, &ResourceMetaRTTI::getDisplayName, &ResourceMetaRTTI::setDisplayName);
  23. }
  24. virtual const String& getRTTIName()
  25. {
  26. static String name = "ResourceMeta";
  27. return name;
  28. }
  29. virtual UINT32 getRTTIId()
  30. {
  31. return TID_ResourceMeta;
  32. }
  33. virtual std::shared_ptr<IReflectable> newRTTIObject()
  34. {
  35. return ResourceMeta::createEmpty();
  36. }
  37. };
  38. }