!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / CryEngine / CrySchematyc2 / BaseEnv / Utils / BaseEnv_EntityGameObjectExtension.h
blob249242fdfdf7fe81f2ae3d0538bab29a20e87f77
1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
3 #pragma once
5 #include "BaseEnv/BaseEnv_Prerequisites.h"
7 #include <IGameObject.h>
9 namespace SchematycBaseEnv
11 class CEntityGameObjectExtension : public Schematyc2::INetworkObject, public CGameObjectExtensionHelper<CEntityGameObjectExtension, IGameObjectExtension>
13 public:
15 CEntityGameObjectExtension();
17 virtual ~CEntityGameObjectExtension();
19 // Schematyc2::INetworkObject
20 virtual bool RegisterNetworkSerializer(const Schematyc2::NetworkSerializeCallbackConnection& callbackConnection, int32 aspects) override;
21 virtual void MarkAspectsDirty(int32 aspects) override;
22 virtual void SetAspectDelegation(int32 aspects, const EAspectDelegation delegation) override;
23 virtual uint16 GetChannelId() const override;
24 virtual bool ServerAuthority() const override;
25 virtual bool ClientAuthority() const override;
26 virtual bool LocalAuthority() const override;
27 // ~Schematyc2::INetworkObject
29 // IGameObjectExtension
30 virtual bool Init(IGameObject* pGameObject) override;
31 virtual void InitClient(int channelId) override;
32 virtual void PostInit(IGameObject* pGameObject) override;
33 virtual void PostInitClient(int channelId) override;
34 virtual bool ReloadExtension(IGameObject* pGameObject, const SEntitySpawnParams& spawnParams) override;
35 virtual void PostReloadExtension(IGameObject* pGameObject, const SEntitySpawnParams& spawnParams) override;
37 virtual void FullSerialize(TSerialize serialize) override;
38 virtual bool NetSerialize(TSerialize serialize, EEntityAspects aspects, uint8 profile, int flags) override;
39 virtual void PostSerialize() override;
40 virtual void SerializeSpawnInfo(TSerialize serialize) override;
41 virtual ISerializableInfoPtr GetSpawnInfo() override;
42 virtual void Update(SEntityUpdateContext& context, int updateSlot) override;
43 virtual void PostUpdate(float frameTime) override;
44 virtual void PostRemoteSpawn() override;
45 virtual void ProcessEvent(const SEntityEvent& event) override;
46 virtual Cry::Entity::EventFlags GetEventMask() const override;
47 virtual void HandleEvent(const SGameObjectEvent& event) override;
48 virtual void SetChannelId(uint16 channelId) override;
49 virtual void GetMemoryUsage(ICrySizer* pSizer) const override;
50 // ~IGameObjectExtension
52 static const char* s_szExtensionName;
54 private:
56 enum class EObjectState
58 Uninitialized,
59 Initialized,
60 Running
63 void CreateObject(bool bEnteringGame);
64 void DestroyObject();
65 void RunObject();
67 Schematyc2::SGUID m_classGUID;
68 Schematyc2::ESimulationMode m_simulationMode;
69 EObjectState m_objectState;
70 Schematyc2::IObject* m_pObject;