This commit is contained in:
codeboss 2025-06-13 12:22:26 +08:00
parent 22be09682d
commit d7a6270dfe
1 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1,56 @@
#include "invisible_component.h"
ComponentsInfoPull::ComponentsInfoPull() {}
void ComponentsInfoPull::bindEntity(std::weak_ptr<WsEntity> ins)
{
this->_bind_entity = ins;
}
QString ComponentsInfoPull::name() const
{
return NAME(ComponentsInfoPull);
}
#include <QVariant>
#include <QJsonArray>
void ComponentsInfoPull::execute(std::shared_ptr<Immediate> map,
std::shared_ptr<const ComponentDatasQuery> in, QList<std::shared_ptr<ComponentDatasQueryResult>>& out)
{
auto rst = std::make_shared<ComponentDatasQueryResult>();
rst->reset(in->targetEntity(), in->sourceEntity());
auto bind_e = this->_bind_entity.lock();
rst->_entity_json["entity_templet"] = bind_e->templetName();
rst->_entity_json["entity_id"] = QJsonValue::fromVariant(QVariant::fromValue(bind_e->entityID()));
rst->_entity_json["entity_name"] = bind_e->name();
QList<std::shared_ptr<WsComponent>> comp_list;
auto host_conv = std::dynamic_pointer_cast<ComponentSet>(bind_e);
comp_list = host_conv->components();
auto array = QJsonArray();
for (auto ins : comp_list) {
auto info_comp = QJsonObject();
info_comp["component_type"] = ins->name();
ins->saveTo(info_comp);
array.append(info_comp);
}
rst->_entity_json["component_list"] = array;
out << rst;
}
void ComponentsInfoPull::execute(std::shared_ptr<Immediate> map,
std::shared_ptr<const ProcedureSignatureQuery> in, QList<std::shared_ptr<ProcedureSignatureQueryResult>>& out)
{
dd
}
std::shared_ptr<WsComponent> ComponentsInfoPull::defaultNew() const
{
return std::make_shared<ComponentsInfoPull>();
}
void ComponentsInfoPull::recoveryFrom(const QJsonObject& obj) {}
void ComponentsInfoPull::saveTo(QJsonObject& obj) const {}