41 lines
1016 B
C++
41 lines
1016 B
C++
#ifndef PHYSICS_PROP_H
|
|
#define PHYSICS_PROP_H
|
|
|
|
#include "basemodelentity.h"
|
|
|
|
class CPhysicsProp: public CBaseModelEntity
|
|
{
|
|
friend CBaseEntity;
|
|
friend CBaseModelEntity;
|
|
public:
|
|
|
|
DECLARE_CLASS(CPhysicsProp, CBaseModelEntity)
|
|
DECLARE_DATADESC()
|
|
CPhysicsProp();
|
|
virtual void Spawn() override;
|
|
virtual void Precache() override;
|
|
|
|
virtual void SetAbsAngles( Quat vQuat ) override;
|
|
virtual void SetAbsQAngles( float fPitch, float fYaw, float fRoll ) override;
|
|
virtual void SetAbsOrigin( Vector origin ) override;
|
|
|
|
virtual void OnModelChanged( const char *szName ) override;
|
|
virtual void EnableMovement();
|
|
virtual void DisableMovement();
|
|
|
|
virtual void SetPhysics( EPhysicsBodyType eType );
|
|
|
|
void Think( float fDelta );
|
|
private:
|
|
EPhysicsBodyType m_ePhysicsType = k_EPhysics_Dynamic;
|
|
EPhysicsBodyType m_eCurrentPhysicsType = k_EPhysics_Dynamic;
|
|
HFunnyModel m_hModel = 0;
|
|
FunnyModel_t *m_pModel = NULL;
|
|
FunnyPhysics_t *m_pPhysics = NULL;
|
|
HCollider m_hCollider = 0;
|
|
IPhysicsBody *m_pBody = NULL;
|
|
|
|
};
|
|
|
|
#endif
|