#include "invisible_component.h" ComponentsInfoPull::ComponentsInfoPull() {} void ComponentsInfoPull::bindEntity(std::weak_ptr ins) { this->_bind_entity = ins; } QString ComponentsInfoPull::name() const { return NAME(ComponentsInfoPull); } #include #include void ComponentsInfoPull::execute(std::shared_ptr map, std::shared_ptr in, QList>& out) { auto rst = std::make_shared(); 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> comp_list; auto host_conv = std::dynamic_pointer_cast(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 map, std::shared_ptr in, QList>& out) { } std::shared_ptr ComponentsInfoPull::defaultNew() const { return std::make_shared(); } void ComponentsInfoPull::recoveryFrom(const QJsonObject& obj) {} void ComponentsInfoPull::saveTo(QJsonObject& obj) const {}