BsScriptCodeRTTI.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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 "BsScriptCode.h"
  7. namespace BansheeEngine
  8. {
  9. /** @cond RTTI */
  10. /** @addtogroup RTTI-Impl-Engine
  11. * @{
  12. */
  13. class BS_EXPORT ScriptCodeRTTI : public RTTIType <ScriptCode, Resource, ScriptCodeRTTI>
  14. {
  15. private:
  16. WString& getString(ScriptCode* obj) { return obj->mString; }
  17. void setString(ScriptCode* obj, WString& val) { obj->mString = val; }
  18. bool& getEditorScript(ScriptCode* obj) { return obj->mEditorScript; }
  19. void setEditorScript(ScriptCode* obj, bool& val) { obj->mEditorScript = val; }
  20. public:
  21. ScriptCodeRTTI()
  22. {
  23. addPlainField("mString", 0, &ScriptCodeRTTI::getString, &ScriptCodeRTTI::setString);
  24. addPlainField("mEditorScript", 1, &ScriptCodeRTTI::getEditorScript, &ScriptCodeRTTI::setEditorScript);
  25. }
  26. const String& getRTTIName() override
  27. {
  28. static String name = "ScriptCode";
  29. return name;
  30. }
  31. UINT32 getRTTIId() override
  32. {
  33. return TID_ScriptCode;
  34. }
  35. SPtr<IReflectable> newRTTIObject() override
  36. {
  37. return ScriptCode::_createPtr(L""); // Initial string doesn't matter, it'll get overwritten
  38. }
  39. };
  40. /** @} */
  41. /** @endcond */
  42. }