From 5c0a48b3f4719027876045bb3c3290ab7e8b69e6 Mon Sep 17 00:00:00 2001 From: codeboss <2422523675@qq.com> Date: Sun, 6 Jul 2025 14:36:43 +0800 Subject: [PATCH] update --- ComponentBasic/BehaviorPerform.cpp | 29 +++++++++++++++++++++--- SimsWorld/ActionNodeConfiguration.cpp | 4 ++-- SimsWorld/BehaviorConfigurationPanel.cpp | 4 ++-- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/ComponentBasic/BehaviorPerform.cpp b/ComponentBasic/BehaviorPerform.cpp index c080466..7a59bf0 100644 --- a/ComponentBasic/BehaviorPerform.cpp +++ b/ComponentBasic/BehaviorPerform.cpp @@ -95,10 +95,33 @@ void MapKernel::registExecute(std::shared_ptr ins) _execute_types[ins->typeName()] = ins; } +struct JsonString : public TopicData { + QString _string_content; + + // 通过 TopicData 继承 + std::shared_ptr newDefault() const override + { + return std::shared_ptr(); + } + void recoveryFrom(const QJsonObject& obj) override + { + STRING_PEAK(_string_content); + } + void saveTo(QJsonObject& obj) const override + { + STRING_SAVE(_string_content); + } + QString topicString() const override + { + return NAME(JsonString); + } +}; + void MapKernel::initial() { // 注册基础数据类型 registData(std::make_shared()); + registData(std::make_shared()); for (auto key : _bind_loader->allType()) registData(_bind_loader->makeDefault(key)); @@ -181,8 +204,8 @@ void MapKernel::recoveryFrom(const QJsonObject& obj) if (this->executeTypes().contains(key)) continue; throw new UniException("当前环境不包含指定执行器类型:" + key); - } - + } + // 变量类型校验 for (auto key : variable_keys) { if (this->dataTypes().contains(key)) @@ -940,7 +963,7 @@ QList> ExecuteNode::getForwards() const QString ExecuteNode::rtName() const { - return QString("%1<%2>(%3)").arg(typeName(),delegateName()).arg(getID()); + return QString("%1<%2>(%3)").arg(typeName(), delegateName()).arg(getID()); } QString ExecuteNode::typeName() const diff --git a/SimsWorld/ActionNodeConfiguration.cpp b/SimsWorld/ActionNodeConfiguration.cpp index 9f50e34..c8b561f 100644 --- a/SimsWorld/ActionNodeConfiguration.cpp +++ b/SimsWorld/ActionNodeConfiguration.cpp @@ -26,9 +26,9 @@ ActionNodeConfiguration::ActionNodeConfiguration(QWidget* p) p_layout->setColumnStretch(1, 1); _input_model->setHorizontalHeaderLabels(QStringList() - << u8"变量名" << u8"变量类型" << u8"关联变量序列" << u8"关联转换器类型"); + << u8"变量名" << u8"变量类型" << u8"关联转换器类型"<< u8"关联输入序列" ); _output_model->setHorizontalHeaderLabels(QStringList() - << u8"变量名" << u8"变量类型" << u8"关联变量序列" << u8"关联转换器类型"); + << u8"变量名" << u8"变量类型" << u8"关联转换器类型"<< u8"关联目标变量" ); } void ActionNodeConfiguration::setTarget(NodePresent* ins) diff --git a/SimsWorld/BehaviorConfigurationPanel.cpp b/SimsWorld/BehaviorConfigurationPanel.cpp index 07b71ba..85fb21e 100644 --- a/SimsWorld/BehaviorConfigurationPanel.cpp +++ b/SimsWorld/BehaviorConfigurationPanel.cpp @@ -99,8 +99,8 @@ VariableAdd::VariableAdd(std::shared_ptr node, QWidget* parent) auto cancel = new QPushButton(u8"取消"); auto yes = new QPushButton(u8"确定"); - d_layout->addWidget(yes, 2, 0); - d_layout->addWidget(cancel, 2, 2); + d_layout->addWidget(yes, 3, 0); + d_layout->addWidget(cancel, 3, 2); connect(cancel, &QPushButton::clicked, this, &QDialog::reject); connect(yes, &QPushButton::clicked, this, &VariableAdd::appendVariable);