1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
5 #include <CrySchematyc2/IBaseEnv.h>
7 #include "BaseEnv/BaseEnv_Prerequisites.h"
9 #include "BaseEnv/Utils/BaseEnv_EntityClassRegistrar.h" // TODO : Remove!!!
10 #include "BaseEnv/Utils/BaseEnv_EntityMap.h" // TODO : Remove!!!
14 class CUpdateRelevanceContext
;
17 namespace SchematycBaseEnv
21 // class CEntityClassRegistrar;
24 class CBaseEnv
: public SchematycBaseEnv::IBaseEnv
31 void PrePhysicsUpdate();
32 void Update(Schematyc2::CUpdateRelevanceContext
* pRelevanceContext
= nullptr);
34 static CBaseEnv
& GetInstance();
36 CSpatialIndex
& GetSpatialIndex();
37 CEntityMap
& GetGameEntityMap();
39 // SchematycBaseEnv::IBaseEnv
40 virtual void UpdateSpatialIndex() override
;
42 virtual int GetEditorGameDefaultUpdateMask() const override
{ return m_editorGameDefaultUpdateMask
; }
43 virtual void SetEditorGameDefaultUpdateMask(const int mask
) override
{ m_editorGameDefaultUpdateMask
= mask
; }
44 virtual int GetGameDefaultUpdateMask() const override
{ return m_gameDefaultUpdateMask
; }
45 virtual void SetGameDefaultUpdateMask(const int mask
) override
{ m_gameDefaultUpdateMask
= mask
; }
46 // ~SchematycBaseEnv::IBaseEnv
50 int GetUpdateFlags() const;
51 int GetDefaultUpdateFlags() const;
54 static CBaseEnv
* ms_pInstance
;
56 std::shared_ptr
<CSpatialIndex
> m_pSpatialIndex
; // TODO : Why can't we use std::unique_ptr?
57 CEntityClassRegistrar m_gameEntityClassRegistrar
;
58 CEntityMap m_gameEntityMap
;
59 TemplateUtils::CConnectionScope m_connectionScope
;
61 int m_editorGameDefaultUpdateMask
;
62 int m_gameDefaultUpdateMask
;