!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / CryEngine / CrySchematyc2 / BaseEnv / BaseEnv_BaseEnv.h
blob31e7e7a9e0093046ae16dcc720e51250a495af41
1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
3 #pragma once
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!!!
12 namespace Schematyc2
14 class CUpdateRelevanceContext;
17 namespace SchematycBaseEnv
19 class CSpatialIndex;
21 // class CEntityClassRegistrar;
22 // class CEntityMap;
24 class CBaseEnv : public SchematycBaseEnv::IBaseEnv
26 public:
28 explicit CBaseEnv();
29 ~CBaseEnv();
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
48 private:
49 void Refresh();
50 int GetUpdateFlags() const;
51 int GetDefaultUpdateFlags() const;
53 private:
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;
63 int sc_Update;