1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
5 #include "BaseEnv/BaseEnv_Prerequisites.h"
7 #include <IGameObject.h>
9 namespace SchematycBaseEnv
11 class CEntityGameObjectExtension
: public Schematyc2::INetworkObject
, public CGameObjectExtensionHelper
<CEntityGameObjectExtension
, IGameObjectExtension
>
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
;
56 enum class EObjectState
63 void CreateObject(bool bEnteringGame
);
67 Schematyc2::SGUID m_classGUID
;
68 Schematyc2::ESimulationMode m_simulationMode
;
69 EObjectState m_objectState
;
70 Schematyc2::IObject
* m_pObject
;