//================= Copyright kotofyt, All rights reserved ==================// // // Purpose: // //===========================================================================// #ifndef ENTITIES_H #define ENTITIES_H #include "networkbase.h" class IEntityFactory; class CBaseEntity; #define MAX_EDICTS 8192 class CEntitySystem { public: CEntitySystem(); virtual void RegisterEntityClass( IEntityFactory *pEntityFactory, const char *szClassName ); virtual CBaseEntity *CreateByClassname( const char *szName, int *pOutputIndex ); virtual IEntityFactory *GetFactoryByClassname( const char *szName ); virtual void Think( float fDelta ); virtual CBaseEntity **GetEntities(); virtual void NetRecvPacket( NetPacket_t *pPacket ); virtual void NetSendThink( INetworkBase *pBase ); virtual void SetAllowedEntityForPlayer( uint64_t ullPlayer, CBaseEntity *pEntity ); private: CBaseEntity *m_pEntities[MAX_EDICTS]; int m_nEntityCount; }; CEntitySystem *EntitySystem(); #endif