mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-12 11:49:09 +00:00
1
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// TF Entity Spawner
|
||||
//
|
||||
//=============================================================================
|
||||
#ifndef TF_ENTITY_SPAWNER_H
|
||||
#define TF_ENTITY_SPAWNER_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
class CEntitySpawnPoint;
|
||||
class CEntitySpawnManager;
|
||||
|
||||
class CEntitySpawnPoint : public CServerOnlyPointEntity, public IEntityListener
|
||||
{
|
||||
public:
|
||||
DECLARE_CLASS( CEntitySpawnPoint, CServerOnlyPointEntity );
|
||||
DECLARE_DATADESC();
|
||||
|
||||
CEntitySpawnPoint() {}
|
||||
|
||||
virtual void Spawn( void );
|
||||
virtual void UpdateOnRemove( void );
|
||||
bool IsUsed( void ) { return (m_hMyEntity.Get() != NULL); }
|
||||
void SetEntity( CBaseEntity* pEnt ) { m_hMyEntity = pEnt; }
|
||||
void RespawnNotifyThink( void );
|
||||
|
||||
virtual void OnEntityDeleted( CBaseEntity* pEntity );
|
||||
|
||||
private:
|
||||
string_t m_iszSpawnManagerName;
|
||||
float m_flNodeFree;
|
||||
|
||||
CHandle< CEntitySpawnManager > m_hSpawnManager;
|
||||
CHandle< CBaseEntity > m_hMyEntity;
|
||||
};
|
||||
|
||||
class CEntitySpawnManager : public CLogicalEntity
|
||||
{
|
||||
public:
|
||||
DECLARE_CLASS( CEntitySpawnManager, CLogicalEntity );
|
||||
DECLARE_DATADESC();
|
||||
|
||||
CEntitySpawnManager() {}
|
||||
|
||||
virtual void Spawn( void );
|
||||
void RegisterSpawnPoint( CEntitySpawnPoint* pNewPoint );
|
||||
virtual void Activate( void );
|
||||
void SpawnAllEntities( void );
|
||||
bool SpawnEntity( void );
|
||||
int GetRespawnTime( void ) { return m_iRespawnTime; }
|
||||
|
||||
private:
|
||||
int GetRandomUnusedIndex( void );
|
||||
bool SpawnEntityAt( int iIndex );
|
||||
|
||||
private:
|
||||
string_t m_iszEntityName;
|
||||
int m_iEntityCount;
|
||||
int m_iRespawnTime;
|
||||
bool m_bDropToGround;
|
||||
bool m_bRandomRotation;
|
||||
|
||||
int m_iMaxSpawnedEntities;
|
||||
CUtlVector< CHandle< CEntitySpawnPoint > > m_SpawnPoints;
|
||||
};
|
||||
|
||||
#endif //TF_ENTITY_SPAWNER_H
|
||||
Reference in New Issue
Block a user