86 lines
2.1 KiB
C++
86 lines
2.1 KiB
C++
#include "baseentity.h"
|
|
#include "rendering.h"
|
|
|
|
class C_Light: public C_BaseEntity
|
|
{
|
|
public:
|
|
virtual void Precache ( void ) override;
|
|
virtual void Spawn( void ) override;
|
|
virtual void Destroy( void ) override;
|
|
virtual void Think( float fDelta ) override;
|
|
IVertexBuffer *vertexBuffer;
|
|
IMesh *mesh;
|
|
};
|
|
|
|
void C_Light::Precache()
|
|
{
|
|
|
|
}
|
|
|
|
void C_Light::Spawn()
|
|
{
|
|
float cubeVertices[] = {
|
|
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
|
|
0.5f, -0.5f, 0.5f, 1.0f, 0.0f,
|
|
0.5f, 0.5f, 0.5f, 1.0f, 1.0f,
|
|
0.5f, 0.5f, 0.5f, 1.0f, 1.0f,
|
|
-0.5f, 0.5f, 0.5f, 0.0f, 1.0f,
|
|
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
|
|
|
|
-0.5f, -0.5f, -0.5f, 1.0f, 0.0f,
|
|
-0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
|
|
0.5f, 0.5f, -0.5f, 0.0f, 1.0f,
|
|
0.5f, 0.5f, -0.5f, 0.0f, 1.0f,
|
|
0.5f, -0.5f, -0.5f, 0.0f, 0.0f,
|
|
-0.5f, -0.5f, -0.5f, 1.0f, 0.0f,
|
|
|
|
-0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
|
|
-0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
|
|
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
|
|
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
|
|
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
|
|
-0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
|
|
|
|
0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
|
|
0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
|
|
0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
|
|
0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
|
|
0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
|
|
0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
|
|
|
|
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f,
|
|
-0.5f, 0.5f, 0.5f, 0.0f, 0.0f,
|
|
0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
|
|
0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
|
|
0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
|
|
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f,
|
|
|
|
-0.5f, -0.5f, -0.5f, 1.0f, 1.0f,
|
|
0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
|
|
0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
|
|
0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
|
|
-0.5f, -0.5f, 0.5f, 1.0f, 0.0f,
|
|
-0.5f, -0.5f, -0.5f, 1.0f, 1.0f,
|
|
};
|
|
vertexBuffer = IRenderer::CreateVertexBuffer(sizeof(cubeVertices));
|
|
void *pTriangles = vertexBuffer->Map();
|
|
V_memcpy(pTriangles, cubeVertices, sizeof(cubeVertices));
|
|
vertexBuffer->Unmap();
|
|
|
|
mesh = IMeshRenderer::CreateMesh();
|
|
mesh->SetVertexBuffer(vertexBuffer);
|
|
};
|
|
|
|
void C_Light::Destroy()
|
|
{
|
|
|
|
}
|
|
void C_Light::Think( float fDelta )
|
|
{
|
|
IRenderer::SetMaterial(0);
|
|
mesh->SetMatrix(pEntity->m_matrix);
|
|
mesh->Draw();
|
|
};
|
|
|
|
LINK_CLIENT_ENTITY(C_Light, CLight)
|