BsScriptGameObject.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #include "BsScriptEnginePrerequisites.h"
  3. #include "BsScriptObject.h"
  4. namespace BansheeEngine
  5. {
  6. class BS_SCR_BE_EXPORT ScriptGameObjectBase : public PersistentScriptObjectBase
  7. {
  8. public:
  9. ScriptGameObjectBase(MonoObject* instance);
  10. virtual ~ScriptGameObjectBase() { }
  11. virtual HGameObject getNativeHandle() const = 0;
  12. virtual void setNativeHandle(const HGameObject& gameObject) = 0;
  13. virtual ScriptObjectBackup beginRefresh();
  14. virtual void endRefresh(const ScriptObjectBackup& backupData);
  15. protected:
  16. bool mRefreshInProgress;
  17. };
  18. class BS_SCR_BE_EXPORT ScriptGameObject : public ScriptObject<ScriptGameObject, ScriptGameObjectBase>
  19. {
  20. public:
  21. static String getAssemblyName() { return BansheeEngineAssemblyName; }
  22. static String getNamespace() { return "BansheeEngine"; }
  23. static String getTypeName() { return "GameObject"; }
  24. static void initRuntimeData() { }
  25. private:
  26. ScriptGameObject(MonoObject* instance)
  27. :ScriptObject(instance)
  28. { }
  29. };
  30. }