75 lines
1.5 KiB
C++
75 lines
1.5 KiB
C++
#include "player.h"
|
|
#include "game.h"
|
|
#include "entitysystem.h"
|
|
|
|
|
|
CMOBAPlayer::CMOBAPlayer()
|
|
{
|
|
m_hCuboid = g_pPhysics->CreateBall({1});
|
|
}
|
|
|
|
CMOBAPlayer::~CMOBAPlayer()
|
|
{
|
|
|
|
}
|
|
|
|
void CMOBAPlayer::Spawn()
|
|
{
|
|
CBaseEntity::Spawn();
|
|
<<<<<<< HEAD
|
|
=======
|
|
<<<<<<< HEAD
|
|
>>>>>>> a2652ed (merges)
|
|
SetPhysics(k_EPhysics_Static);
|
|
SetModel("game/core/models/sphere.fmdl");
|
|
SetScale(1);
|
|
SetAbsOrigin({0,-14.5, 0});
|
|
<<<<<<< HEAD
|
|
=======
|
|
=======
|
|
SetModel("game/core/models/sphere.fmdl");
|
|
SetScale(1);
|
|
SetAbsOrigin({0,-11.5, 0});
|
|
>>>>>>> c251089 (different stuff in physics)
|
|
>>>>>>> a2652ed (merges)
|
|
SetThink(Think);
|
|
};
|
|
|
|
void CMOBAPlayer::Think( float fDelta )
|
|
{
|
|
BaseClass::Think(fDelta);
|
|
|
|
|
|
Vector vPosition = GetAbsOrigin();
|
|
// player might lie to us
|
|
m_vMovementVector.x = glm_clamp(m_vMovementVector.x, -1, 1);
|
|
m_vMovementVector.y = glm_clamp(m_vMovementVector.y, -1, 1);
|
|
|
|
vPosition.x += m_vMovementVector.x*fDelta*5;
|
|
vPosition.z += m_vMovementVector.z*fDelta*5;
|
|
<<<<<<< HEAD
|
|
SetAbsOrigin(vPosition);
|
|
<<<<<<< HEAD
|
|
=======
|
|
=======
|
|
CastResult_t result = g_pPhysicsWorld->ShapeCast(m_hCuboid, {0,0,0,1}, vPosition, {vPosition.x, vPosition.y, -100});
|
|
if (result.m_bIsHit)
|
|
SetAbsOrigin(result.m_vCollisionPoint);
|
|
else
|
|
SetAbsOrigin(vPosition);
|
|
>>>>>>> c251089 (different stuff in physics)
|
|
>>>>>>> a2652ed (merges)
|
|
};
|
|
|
|
LINK_ENTITY_TO_CLASS(player, CMOBAPlayer)
|
|
|
|
BEGIN_DATADESC(CMOBAPlayer)
|
|
END_DATADESC()
|
|
|
|
IMPLEMENT_SEND_DT(CMOBAPlayer)
|
|
END_SEND_DT()
|
|
|
|
IMPLEMENT_RECV_DT(CMOBAPlayer)
|
|
NetPropFloat3(m_vMovementVector)
|
|
END_RECV_DT()
|