BsScriptGameObjectManager.h 1005 B

1234567891011121314151617181920212223242526272829
  1. #pragma once
  2. #include "BsScriptEnginePrerequisites.h"
  3. #include "BsModule.h"
  4. #include <mono/jit/jit.h>
  5. namespace BansheeEngine
  6. {
  7. class BS_SCR_BE_EXPORT ScriptGameObjectManager : public Module<ScriptGameObjectManager>
  8. {
  9. public:
  10. ScriptGameObjectManager();
  11. ScriptComponent* createScriptComponent(const GameObjectHandle<ManagedComponent>& component);
  12. ScriptSceneObject* createScriptSceneObject(const HSceneObject& sceneObject);
  13. ScriptSceneObject* createScriptSceneObject(MonoObject* existingInstance, const HSceneObject& sceneObject);
  14. ScriptComponent* getScriptComponent(const GameObjectHandle<ManagedComponent>& component) const;
  15. ScriptSceneObject* getScriptSceneObject(const HSceneObject& sceneObject) const;
  16. ScriptGameObjectBase* getScriptGameObject(UINT64 instanceId) const;
  17. void destroyScriptGameObject(ScriptGameObjectBase* gameObject);
  18. private:
  19. UnorderedMap<UINT64, ScriptGameObjectBase*> mScriptGameObjects;
  20. MonoClass* mSceneObjectClass;
  21. };
  22. }