#include "baseentity.h" #include "cglm/mat4.h" #include "physics.h" #include "cglm/cglm.h" class CLight: public CBaseEntity { public: virtual void Precache ( void ) override; virtual void Spawn( void ) override; virtual void Destroy( void ) override; virtual void Think( float fDelta ) override; private: Collider* col; RigidBodyHandle *m_body; }; void CLight::Precache() { } void CLight::Spawn() { px_collider_params params = {}; params.friction = 0.7; col = px_box(0.5,0.5,0.5, params); px_matrix mat = {}; mat.m[0] = 1; mat.m[5] = 1; mat.m[10] = 1; mat.m[15] = 1; mat.m[11]=10; mat.m[7]=-4; mat.m[3]=12; px_rigidbody_params param = {}; param.gravity_scale = 1; m_body=px_rigidbody(px, col, mat, param); }; void CLight::Destroy() { } void CLight::Think( float fDelta ) { px_matrix pos = px_getmatrix(px, m_body); V_memcpy(m_matrix, pos.m, 64); V_printf("%p %f %f %f\n",col, pos.m[12], pos.m[13], pos.m[14]); }; DECLARE_ENTITY(light, CLight)