CmScriptObject.h 678 B

1234567891011121314151617181920212223242526272829303132
  1. #pragma once
  2. #include "CmPrerequisites.h"
  3. #include <mono/jit/jit.h>
  4. namespace CamelotFramework
  5. {
  6. /**
  7. * @brief Base class for objects that can be extended using Mono scripting
  8. */
  9. class CM_EXPORT ScriptObject
  10. {
  11. public:
  12. class CM_EXPORT Meta
  13. {
  14. const char* Namespace;
  15. const char* Name;
  16. MonoClass* Class;
  17. MonoDomain* Domain;
  18. MonoClassField* ThisPtr;
  19. virtual void init() = 0;
  20. };
  21. virtual void script_create(MonoObject* scriptObj) = 0;
  22. virtual void script_destroy() = 0;
  23. MonoObject* getMonoObject() const { return mScriptObject; }
  24. private:
  25. MonoObject* mScriptObject;
  26. };
  27. }