F4MP/f4mp_originalcode/f4mp_server/Entity.cpp

107 lines
1.7 KiB
C++
Raw Normal View History

#include "Entity.h"
#include "Player.h"
#include "NPC.h"
f4mp::Entity* f4mp::Entity::Get(librg_entity* entity)
{
if (entity == nullptr)
{
return nullptr;
}
return (Entity*)entity->user_data;
}
f4mp::Entity* f4mp::Entity::Get(librg_event* event)
{
return Get(event->entity);
}
f4mp::Entity* f4mp::Entity::Get(librg_peer* peer)
{
return (Entity*)peer->data;
}
f4mp::Entity* f4mp::Entity::Create(librg_entity* entity)
{
Entity* instance = nullptr;
switch (entity->type)
{
case EntityType::Player:
instance = new Player();
break;
case EntityType::NPC:
instance = new NPC();
break;
}
return Create(entity, instance);
}
f4mp::Entity* f4mp::Entity::Create(librg_event* event)
{
return Create(event->entity);
}
f4mp::Entity::Entity() : entityID((u32)-1)
{
}
f4mp::Entity::~Entity()
{
}
void f4mp::Entity::OnConnectRequest(librg_event* event)
{
}
void f4mp::Entity::OnConnectAccept(librg_event* event)
{
}
void f4mp::Entity::OnConnectRefuse(librg_event* event)
{
}
void f4mp::Entity::OnDisonnect(librg_event* event)
{
delete this;
event->entity->user_data = nullptr;
}
void f4mp::Entity::OnEntityCreate(librg_event* event)
{
}
void f4mp::Entity::OnEntityUpdate(librg_event* event)
{
librg_data_wf32(event->data, angles[0]);
librg_data_wf32(event->data, angles[1]);
librg_data_wf32(event->data, angles[2]);
}
void f4mp::Entity::OnEntityRemove(librg_event* event)
{
}
void f4mp::Entity::OnClientUpdate(librg_event* event)
{
angles[0] = librg_data_rf32(event->data);
angles[1] = librg_data_rf32(event->data);
angles[2] = librg_data_rf32(event->data);
}
u32 f4mp::Entity::GetEntityID() const
{
return entityID;
}
void f4mp::Entity::SetEntityID(u32 id)
{
entityID = id;
}