BsScriptGameObject.h 922 B

12345678910111213141516171819202122232425262728293031323334
  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() override;
  14. virtual void endRefresh(const ScriptObjectBackup& backupData) override;
  15. protected:
  16. bool mRefreshInProgress;
  17. };
  18. class BS_SCR_BE_EXPORT ScriptGameObject : public ScriptObject<ScriptGameObject, ScriptGameObjectBase>
  19. {
  20. public:
  21. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GameObject")
  22. private:
  23. ScriptGameObject(MonoObject* instance);
  24. static UINT64 internal_getInstanceId(ScriptGameObject* nativeInstance);
  25. };
  26. }