Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

211 lines
5.9 KiB

5 years ago
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
#ifndef SMOKE_TRAIL_H
#define SMOKE_TRAIL_H
#include "baseparticleentity.h"
//==================================================
// SmokeTrail
//==================================================
class SmokeTrail : public CBaseParticleEntity
{
DECLARE_DATADESC();
public:
DECLARE_CLASS( SmokeTrail, CBaseParticleEntity );
DECLARE_SERVERCLASS();
SmokeTrail();
virtual bool KeyValue( const char *szKeyName, const char *szValue );
void SetEmit(bool bVal);
void FollowEntity( CBaseEntity *pEntity, const char *pAttachmentName = NULL);
static SmokeTrail* CreateSmokeTrail();
public:
// Effect parameters. These will assume default values but you can change them.
CNetworkVector( m_StartColor ); // Fade between these colors.
CNetworkVector( m_EndColor );
CNetworkVar( float, m_Opacity );
CNetworkVar( float, m_SpawnRate ); // How many particles per second.
CNetworkVar( float, m_ParticleLifetime ); // How long do the particles live?
CNetworkVar( float, m_StopEmitTime ); // When do I stop emitting particles?
CNetworkVar( float, m_MinSpeed ); // Speed range.
CNetworkVar( float, m_MaxSpeed );
CNetworkVar( float, m_StartSize ); // Size ramp.
CNetworkVar( float, m_EndSize );
CNetworkVar( float, m_SpawnRadius );
CNetworkVar( float, m_MinDirectedSpeed ); // Speed range.
CNetworkVar( float, m_MaxDirectedSpeed );
CNetworkVar( bool, m_bEmit );
CNetworkVar( int, m_nAttachment );
};
//==================================================
// RocketTrail
//==================================================
class RocketTrail : public CBaseParticleEntity
{
DECLARE_DATADESC();
public:
DECLARE_CLASS( RocketTrail, CBaseParticleEntity );
DECLARE_SERVERCLASS();
RocketTrail();
void SetEmit(bool bVal);
void FollowEntity( CBaseEntity *pEntity, const char *pAttachmentName = NULL);
static RocketTrail *CreateRocketTrail();
public:
// Effect parameters. These will assume default values but you can change them.
CNetworkVector( m_StartColor ); // Fade between these colors.
CNetworkVector( m_EndColor );
CNetworkVar( float, m_Opacity );
CNetworkVar( float, m_SpawnRate ); // How many particles per second.
CNetworkVar( float, m_ParticleLifetime ); // How long do the particles live?
CNetworkVar( float, m_StopEmitTime ); // When do I stop emitting particles?
CNetworkVar( float, m_MinSpeed ); // Speed range.
CNetworkVar( float, m_MaxSpeed );
CNetworkVar( float, m_StartSize ); // Size ramp.
CNetworkVar( float, m_EndSize );
CNetworkVar( float, m_SpawnRadius );
CNetworkVar( bool, m_bEmit );
CNetworkVar( int, m_nAttachment );
CNetworkVar( bool, m_bDamaged );
CNetworkVar( float, m_flFlareScale ); // Size of the flare
};
//==================================================
// SporeTrail
//==================================================
class SporeTrail : public CBaseParticleEntity
{
DECLARE_DATADESC();
public:
DECLARE_CLASS( SporeTrail, CBaseParticleEntity );
DECLARE_SERVERCLASS();
SporeTrail( void );
static SporeTrail* CreateSporeTrail();
//Data members
public:
CNetworkVector( m_vecEndColor );
CNetworkVar( float, m_flSpawnRate );
CNetworkVar( float, m_flParticleLifetime );
CNetworkVar( float, m_flStartSize );
CNetworkVar( float, m_flEndSize );
CNetworkVar( float, m_flSpawnRadius );
CNetworkVar( bool, m_bEmit );
};
//==================================================
// SporeExplosion
//==================================================
class SporeExplosion : public CBaseParticleEntity
{
DECLARE_DATADESC();
public:
DECLARE_CLASS( SporeExplosion, CBaseParticleEntity );
DECLARE_SERVERCLASS();
SporeExplosion( void );
void Spawn( void );
static SporeExplosion* CreateSporeExplosion();
void InputEnable( inputdata_t &inputdata );
void InputDisable( inputdata_t &inputdata );
//Data members
public:
bool m_bDisabled;
CNetworkVar( float, m_flSpawnRate );
CNetworkVar( float, m_flParticleLifetime );
CNetworkVar( float, m_flStartSize );
CNetworkVar( float, m_flEndSize );
CNetworkVar( float, m_flSpawnRadius );
CNetworkVar( bool, m_bEmit );
CNetworkVar( bool, m_bDontRemove );
};
//==================================================
// CFireTrail
//==================================================
class CFireTrail : public CBaseParticleEntity
{
DECLARE_DATADESC();
public:
DECLARE_CLASS( CFireTrail, CBaseParticleEntity );
DECLARE_SERVERCLASS();
static CFireTrail *CreateFireTrail( void );
void FollowEntity( CBaseEntity *pEntity, const char *pAttachmentName );
void Precache( void );
CNetworkVar( int, m_nAttachment );
CNetworkVar( float, m_flLifetime );
};
//==================================================
// DustTrail
//==================================================
class DustTrail : public CBaseParticleEntity
{
DECLARE_DATADESC();
public:
DECLARE_CLASS( DustTrail, CBaseParticleEntity );
DECLARE_SERVERCLASS();
DustTrail();
virtual bool KeyValue( const char *szKeyName, const char *szValue );
void SetEmit(bool bVal);
static DustTrail* CreateDustTrail();
public:
// Effect parameters. These will assume default values but you can change them.
CNetworkVector( m_Color );
CNetworkVar( float, m_Opacity );
CNetworkVar( float, m_SpawnRate ); // How many particles per second.
CNetworkVar( float, m_ParticleLifetime ); // How long do the particles live?
CNetworkVar( float, m_StopEmitTime ); // When do I stop emitting particles?
CNetworkVar( float, m_MinSpeed ); // Speed range.
CNetworkVar( float, m_MaxSpeed );
CNetworkVar( float, m_StartSize ); // Size ramp.
CNetworkVar( float, m_EndSize );
CNetworkVar( float, m_SpawnRadius );
CNetworkVar( float, m_MinDirectedSpeed ); // Speed range.
CNetworkVar( float, m_MaxDirectedSpeed );
CNetworkVar( bool, m_bEmit );
CNetworkVar( int, m_nAttachment );
};
#endif