SimsWorld/MessageBasic/entity_operate.h

102 lines
2.7 KiB
C++

#pragma once
#include "messagebasic.h"
/// <summary>
/// 查询系统中的组件类型和实体类型
/// </summary>
struct MESSAGEBASIC_EXPORT TypesQuery : public AbstractMessage {
TypesQuery();
std::shared_ptr<Serializable> newDefault() const override;
};
/// <summary>
/// 返回系统内所有的组件类型和实体模板类型
/// </summary>
struct MESSAGEBASIC_EXPORT TypesQueryResult : public AbstractMessage {
QStringList _component_types;
QHash<QString, uint64_t> _entity_templets;
TypesQueryResult();
// 通过 WsMessage 继承
std::shared_ptr<Serializable> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 操作类型
/// </summary>
enum class EntityOperateType {
NEW, DELETE, MODIFY
};
/// <summary>
/// 模板操作支持增、删、改
/// </summary>
struct MESSAGEBASIC_EXPORT TempletOperate : public AbstractMessage {
uint64_t _operate_code = (uint64_t)EntityOperateType::NEW;
QString _template_name = "";
uint64_t _template_id_within_0x2ff_0xffff = 0x2ff;
TempletOperate();
// 通过 WsMessage 继承
std::shared_ptr<Serializable> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 实体构造操作
/// </summary>
struct MESSAGEBASIC_EXPORT EntityOperate : public AbstractMessage {
uint64_t _operate_code = (uint64_t)EntityOperateType::NEW;
QString _template_name = "";
QString _entity_name = "";
uint64_t _entity_id_over_0xffff = 0xffff;
EntityOperate();
// 通过 WsMessage 继承
std::shared_ptr<Serializable> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 对指定实体的组件进行操作
/// </summary>
struct MESSAGEBASIC_EXPORT ComponentOperate : public AbstractMessage {
uint64_t _entity_id_within_0x2ff_0xffffffffffffffff = 0x2ff;
QStringList _component_types;
ComponentOperate();
// 通过 WsMessage 继承
std::shared_ptr<Serializable> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};
/// <summary>
/// 获取所有实体句柄
/// </summary>
struct MESSAGEBASIC_EXPORT EntityTotalGet : public AbstractMessage {
EntityTotalGet();
std::shared_ptr<Serializable> newDefault() const override;
};
/// <summary>
/// 所有实体列表
/// </summary>
struct MESSAGEBASIC_EXPORT EntityTotalList : public AbstractMessage {
QList<uint64_t> _entities_list;
EntityTotalList();
// 通过 WsMessage 继承
std::shared_ptr<Serializable> newDefault() const override;
void recoveryFrom(const QJsonObject& obj) override;
void saveTo(QJsonObject& obj) const override;
};