This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

211 lines
6.1 KiB
C++

//========= 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