mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-20 07:53:51 +00:00
d4dbfdfdb6
Conflicts: apps/openmw-mp/Networking.cpp apps/openmw-mp/Script/Functions/World.cpp apps/openmw-mp/Script/Functions/World.hpp apps/openmw-mp/processors/WorldProcessor.cpp apps/openmw-mp/processors/WorldProcessor.hpp apps/openmw-mp/processors/world/ProcessorContainer.hpp apps/openmw-mp/processors/world/ProcessorDoorState.hpp apps/openmw-mp/processors/world/ProcessorObjectDelete.hpp apps/openmw-mp/processors/world/ProcessorObjectLock.hpp apps/openmw-mp/processors/world/ProcessorObjectPlace.hpp apps/openmw-mp/processors/world/ProcessorObjectScale.hpp apps/openmw-mp/processors/world/ProcessorObjectSpawn.hpp apps/openmw-mp/processors/world/ProcessorObjectState.hpp apps/openmw-mp/processors/world/ProcessorObjectTrap.hpp apps/openmw/mwgui/container.cpp apps/openmw/mwmp/Networking.cpp apps/openmw/mwmp/ObjectList.cpp apps/openmw/mwmp/ObjectList.hpp apps/openmw/mwmp/processors/world/ProcessorContainer.hpp components/CMakeLists.txt components/openmw-mp/Base/BaseObject.hpp components/openmw-mp/Packets/Object/ObjectPacket.cpp components/openmw-mp/Packets/Object/PacketConsoleCommand.cpp components/openmw-mp/Packets/Object/PacketContainer.cpp components/openmw-mp/Packets/Object/PacketDoorState.hpp components/openmw-mp/Packets/Object/PacketMusicPlay.hpp components/openmw-mp/Packets/Object/PacketObjectAnimPlay.hpp components/openmw-mp/Packets/Object/PacketObjectLock.hpp components/openmw-mp/Packets/Object/PacketObjectMove.hpp components/openmw-mp/Packets/Object/PacketObjectPlace.hpp components/openmw-mp/Packets/Object/PacketObjectRotate.hpp components/openmw-mp/Packets/Object/PacketObjectScale.hpp components/openmw-mp/Packets/Object/PacketObjectSpawn.hpp components/openmw-mp/Packets/Object/PacketObjectState.hpp components/openmw-mp/Packets/Object/PacketObjectTrap.hpp components/openmw-mp/Packets/Object/PacketScriptGlobalShort.hpp components/openmw-mp/Packets/Object/PacketScriptLocalFloat.hpp components/openmw-mp/Packets/Object/PacketScriptLocalShort.hpp components/openmw-mp/Packets/Object/PacketScriptMemberShort.hpp components/openmw-mp/Packets/Object/PacketVideoPlay.hpp
128 lines
3.4 KiB
C++
128 lines
3.4 KiB
C++
#pragma once
|
|
|
|
#include <tuple>
|
|
#include <components/openmw-mp/Base/BaseObject.hpp>
|
|
#include <memory>
|
|
|
|
class LuaState;
|
|
class Player;
|
|
|
|
class BaseObject
|
|
{
|
|
public:
|
|
BaseObject();
|
|
std::string getRefId() const;
|
|
void setRefId(const std::string &refId);
|
|
|
|
unsigned getRefNum() const;
|
|
void setRefNum(unsigned refNum);
|
|
|
|
unsigned getMpNum() const;
|
|
void setMpNum(unsigned mpNum);
|
|
|
|
RakNet::RakNetGUID getGuid() const;
|
|
void setGuid(const RakNet::RakNetGUID &guid);
|
|
|
|
//void setEventCell(const std::string &cellDescription);
|
|
|
|
|
|
mwmp::BaseObject object;
|
|
bool changedBase;
|
|
bool copied;
|
|
};
|
|
|
|
class Object : public BaseObject
|
|
{
|
|
public:
|
|
static void Init(LuaState &lua);
|
|
public:
|
|
Object();
|
|
~Object();
|
|
|
|
void update();
|
|
|
|
/**
|
|
*
|
|
* @return x, y, z
|
|
*/
|
|
|
|
std::tuple<float, float, float> getPosition() const;
|
|
void setPosition(float x, float y, float z);
|
|
|
|
/**
|
|
*
|
|
* @return x, y, z
|
|
*/
|
|
std::tuple<float, float, float> getRotation() const;
|
|
void setRotation(float x, float y, float z);
|
|
|
|
int getCount() const;
|
|
void setCount(int count);
|
|
|
|
int getCharge() const;
|
|
void setCharge(int charge);
|
|
|
|
float getEnchantmentCharge() const;
|
|
void setEnchantmentCharge(float enchantmentCharge);
|
|
|
|
int getGoldValue() const;
|
|
void setGoldValue(int gold);
|
|
|
|
float getScale() const;
|
|
void setScale(float scale);
|
|
|
|
bool getState() const;
|
|
void setState(bool state);
|
|
|
|
int getDoorState() const;
|
|
void setDoorState(int state);
|
|
|
|
int getLockLevel() const;
|
|
void setLockLevel(int locklevel);
|
|
|
|
void setTeleportState(bool state);
|
|
void setDoorDestination(const std::string &cellDescription, float posX, float posY, float posZ, float rotX, float rotY, float rotZ);
|
|
|
|
void setDisarmState(bool state);
|
|
void setMasterState(bool state);
|
|
|
|
bool changedDoorState, changedDoorDestination, changedObjectState, changedObjectScale, changedObjectTrap, changedObjectLock,
|
|
changedObjectDelete, changedObjectSpawn, changedObjectPlace;
|
|
};
|
|
|
|
class Container : public BaseObject
|
|
{
|
|
public:
|
|
static void Init(LuaState &lua);
|
|
public:
|
|
Container();
|
|
|
|
std::tuple<std::string, int, int, double> getItem(int i) const;
|
|
void addItem(const std::string &refId, int count, int charge, float enchantmentCharge);
|
|
|
|
void setItem(int i, const std::string &refId, int count, int charge, float enchantmentCharge);
|
|
int getActionCount(int i) const;
|
|
|
|
size_t size() const;
|
|
bool changed;
|
|
};
|
|
|
|
|
|
class ObjectController
|
|
{
|
|
public:
|
|
static void Init(LuaState &lua);
|
|
public:
|
|
|
|
std::shared_ptr<std::vector<std::shared_ptr<Object>>> copyObjects(mwmp::BaseObjectList &objectList);
|
|
std::shared_ptr<std::vector<std::shared_ptr<Container>>> copyContainers(mwmp::BaseObjectList &objectList);
|
|
|
|
void sendObjects(std::shared_ptr<Player> player, std::shared_ptr<std::vector<std::shared_ptr<Object>>> objects,
|
|
const ESM::Cell &cell, bool broadcast = false);
|
|
void sendConsoleCommand(std::shared_ptr<Player> player, std::shared_ptr<std::vector<std::shared_ptr<Object>>> objects,
|
|
const ESM::Cell &cell, const std::string &consoleCommand, bool broadcast = false);
|
|
void sendContainers(std::shared_ptr<Player> player, std::shared_ptr<std::vector<std::shared_ptr<Container>>> objects,
|
|
const ESM::Cell &cell, bool broadcast = false);
|
|
|
|
void requestContainers(std::shared_ptr<Player> player);
|
|
};
|