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

62 lines
1.6 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef FUNC_MOVELINEAR_H
#define FUNC_MOVELINEAR_H
#pragma once
#include "basetoggle.h"
#include "entityoutput.h"
class IPhysicsFluidController;
class CFuncMoveLinear : public CBaseToggle {
public:
DECLARE_CLASS(CFuncMoveLinear, CBaseToggle);
void Spawn(void);
void Precache(void);
bool CreateVPhysics(void);
bool ShouldSavePhysics(void);
void MoveTo(Vector vPosition, float flSpeed);
void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType,
float value);
void MoveDone(void);
void StopMoveSound(void);
void Blocked(CBaseEntity *pOther);
void SetPosition(float flPosition);
int DrawDebugTextOverlays(void);
// Input handlers
void InputOpen(inputdata_t &inputdata);
void InputClose(inputdata_t &inputdata);
void InputSetPosition(inputdata_t &inputdata);
void InputSetSpeed(inputdata_t &inputdata);
DECLARE_DATADESC();
Vector m_vecMoveDir; // Move direction.
string_t m_soundStart; // start and looping sound
string_t m_soundStop; // stop sound
string_t m_currentSound; // sound I'm playing
float m_flBlockDamage; // Damage inflicted when blocked.
float m_flStartPosition; // Position of brush when spawned
float m_flMoveDistance; // Total distance the brush can move
IPhysicsFluidController *m_pFluidController;
// Outputs
COutputEvent m_OnFullyOpen;
COutputEvent m_OnFullyClosed;
};
#endif // FUNC_MOVELINEAR_H