// // Created by koncord on 25.08.17. // #pragma once #include #include #include "NetActor.hpp" class LuaState; class Player; class Actor: public NetActor { friend class ActorController; public: static void Init(LuaState &lua); public: Actor(); std::string getRefId() const; void setRefId(const std::string &refId); unsigned getRefNumIndex() const; void setRefNumIndex(unsigned refNumIndex); unsigned getMpNum() const; void setMpNum(unsigned mpNum); bool doesHavePosition() const; // ???? bool doesHaveStatsDynamic() const; // ???? std::shared_ptr actor; }; class ActorController { public: static void Init(LuaState &lua); public: ActorController(); ~ActorController(); std::shared_ptr createActor(); void sendActors(std::shared_ptr player, std::vector> actors, const ESM::Cell &cell, bool sendToAll = false); void sendList(std::shared_ptr player, std::vector> actors, const ESM::Cell &cell, bool sendToAll = false); void requestList(std::shared_ptr player, const ESM::Cell &cell); std::vector> getActors(std::shared_ptr player, const ESM::Cell &cell); private: mwmp::BaseActorList actorList; };