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.
69 lines
2.4 KiB
69 lines
2.4 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
//=============================================================================// |
|
|
|
#ifndef ENV_LIGHTRAIL_ENDPOINT_SHARED_H |
|
#define ENV_LIGHTRAIL_ENDPOINT_SHARED_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#define SF_ENDPOINT_START_SMALLFX (1<<0) //Define spawnflags |
|
//#define SF_ENDPOINT_START_LARGEFX (1<<1) |
|
|
|
enum //Enumeration of the 4 states the endpoints can be in. |
|
{ |
|
ENDPOINT_STATE_OFF, //No FX displayed |
|
ENDPOINT_STATE_SMALLFX, //Just the small particle trail is displayed and a faint glow |
|
ENDPOINT_STATE_CHARGING, //Ramp up over a certain amount of time to the large bright glow |
|
ENDPOINT_STATE_LARGEFX, //Shows a particle trail and a large bright glow |
|
ENDPOINT_STATE_COUNT, |
|
}; |
|
|
|
#ifndef CLIENT_DLL |
|
|
|
// ============================================================================ |
|
// |
|
// Energy core - charges up and then releases energy from its position |
|
// |
|
// ============================================================================ |
|
|
|
class CEnv_Lightrail_Endpoint : public CBaseEntity |
|
{ |
|
DECLARE_CLASS( CEnv_Lightrail_Endpoint, CBaseEntity ); |
|
DECLARE_SERVERCLASS(); |
|
DECLARE_DATADESC(); |
|
|
|
public: |
|
void InputStartCharge( inputdata_t &inputdata ); |
|
void InputStartSmallFX(inputdata_t &inputdata ); |
|
void InputStartLargeFX( inputdata_t &inputdata ); |
|
void InputStop( inputdata_t &inputdata ); |
|
void SetSmallFXScale( float flSmallScale ) { m_flSmallScale = flSmallScale; } |
|
void SetLargeFXScale( float flLargeScale ) { m_flLargeScale = flLargeScale; } |
|
|
|
void StartCharge( float flWarmUpTime ); //Charging difference between the small and large fx |
|
void StartSmallFX(); //Start discharging the scaled down version of the FX |
|
void StartLargeFX(); //Start discharging the larger brighter version of the FX |
|
void StopSmallFX( float flCoolDownTime ); //Stop discharging the small fx |
|
void StopLargeFX( float flCoolDownTime ); //Stop discharging the small fx |
|
|
|
virtual int ShouldTransmit( const CCheckTransmitInfo *pInfo ); |
|
virtual int UpdateTransmitState( void ); |
|
|
|
virtual void Precache(); |
|
void Spawn( void ); |
|
|
|
private: |
|
CNetworkVar( float, m_flSmallScale ); //Scale of the small fx |
|
CNetworkVar( float, m_flLargeScale ); //Scale of the large fx |
|
CNetworkVar( int, m_nState ); //Current state of the fx |
|
CNetworkVar( float, m_flDuration ); |
|
CNetworkVar( float, m_flStartTime ); |
|
}; |
|
|
|
#endif |
|
|
|
#endif // ENV_LIGHTRAIL_ENDPOINT_SHARED_H
|
|
|