F4MP/f4mp_originalcode/f4mp/Entity.h
Jous99 37b16f1547 code upload
codigo original de f4mp y tilted para referencias
2026-01-06 18:45:00 +01:00

68 lines
No EOL
1.5 KiB
C++

#pragma once
#include "client.h"
namespace f4mp
{
class Entity
{
public:
static Entity* Get(librg_event* event);
static Entity* Get(librg_entity* entity);
template<class T>
static T* GetAs(librg_event* event);
template<class T>
static T* GetAs(librg_entity* entity);
public:
Entity();
virtual ~Entity();
static Entity* Create(librg_event* event);
virtual void OnConnectRequest(librg_event* event);
virtual void OnConnectAccept(librg_event* event);
virtual void OnDisonnect(librg_event* event);
virtual void OnEntityCreate(librg_event* event);
virtual void OnEntityUpdate(librg_event* event);
virtual void OnEntityRemove(librg_event* event);
virtual void OnClientUpdate(librg_event* event);
virtual void OnTick();
const librg_entity* GetNetworkEntity() const;
librg_entity* GetNetworkEntity();
UInt32 GetRefFormID() const;
TESObjectREFR* GetRef();
void SetRef(TESObjectREFR* ref);
Float32 GetNumber(const std::string& name) const;
void SetNumber(const std::string& name, Float32 number);
protected:
virtual void OnEntityUpdate(librg_event* event, bool syncTransform);
private:
librg_entity* entity;
//TESObjectREFR* ref;
UInt32 refFormID;
std::unordered_map<std::string, Float32> numbers;
};
template<class T>
inline T* Entity::GetAs(librg_event* event)
{
return dynamic_cast<T*>(Get(event));
}
template<class T>
inline T* Entity::GetAs(librg_entity* entity)
{
return dynamic_cast<T*>(Get(entity));
}
}