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