update
This commit is contained in:
parent
f9fbba72db
commit
0272af06d4
|
@ -165,8 +165,8 @@ std::shared_ptr<Serializable> MapKernal::newDefault() const
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
LogicalNode::LogicalNode(NodeKind t /*= NodeKind::ACTIONNODE*/)
|
LogicalNode::LogicalNode(NodeKind t, std::shared_ptr<MapKernal> kernal)
|
||||||
:_node_type(t) {
|
:_node_type(t), _bind_kernal(kernal) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void LogicalNode::_set_parent_node(std::weak_ptr<LogicalNode> pnode)
|
void LogicalNode::_set_parent_node(std::weak_ptr<LogicalNode> pnode)
|
||||||
|
@ -220,7 +220,7 @@ std::weak_ptr<LogicalNode> LogicalNode::parent() const
|
||||||
}
|
}
|
||||||
|
|
||||||
BehaviorMapNode::BehaviorMapNode(std::shared_ptr<MapKernal> core)
|
BehaviorMapNode::BehaviorMapNode(std::shared_ptr<MapKernal> core)
|
||||||
:LogicalNode(NodeKind::MAPNODE), _bind_kernal(core) {
|
:LogicalNode(NodeKind::MAPNODE, core), _bind_kernal(core) {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<MapKernal> BehaviorMapNode::getKernal() const
|
std::shared_ptr<MapKernal> BehaviorMapNode::getKernal() const
|
||||||
|
@ -312,8 +312,9 @@ QHash<QString, std::shared_ptr<TopicData>> BehaviorMapNode::outputList() const
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
SequenceNode::SequenceNode()
|
|
||||||
: LogicalNode(NodeKind::SEQUENCENODE) {
|
SequenceNode::SequenceNode(std::shared_ptr<MapKernal> kernal)
|
||||||
|
: LogicalNode(NodeKind::SEQUENCENODE, kernal) {
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<std::shared_ptr<LogicalNode>> SequenceNode::getForwards() const
|
QList<std::shared_ptr<LogicalNode>> SequenceNode::getForwards() const
|
||||||
|
@ -393,7 +394,7 @@ bool SequenceNode::fallback(std::shared_ptr<LogicalNode> node, LogicalResult ste
|
||||||
|
|
||||||
std::shared_ptr<Serializable> SequenceNode::newDefault() const
|
std::shared_ptr<Serializable> SequenceNode::newDefault() const
|
||||||
{
|
{
|
||||||
return std::make_shared<SequenceNode>();
|
return std::make_shared<SequenceNode>(this->bindMap()->getKernal());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SequenceNode::reset()
|
void SequenceNode::reset()
|
||||||
|
@ -424,8 +425,8 @@ void LogicalNode::remove(std::shared_ptr<LogicalNode> node)
|
||||||
_child_list.removeAll(node);
|
_child_list.removeAll(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
SelectorNode::SelectorNode()
|
SelectorNode::SelectorNode(std::shared_ptr<MapKernal> kernal)
|
||||||
: LogicalNode(NodeKind::SEQUENCENODE) {
|
: LogicalNode(NodeKind::SEQUENCENODE, kernal) {
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<std::shared_ptr<LogicalNode>> SelectorNode::getForwards() const
|
QList<std::shared_ptr<LogicalNode>> SelectorNode::getForwards() const
|
||||||
|
@ -543,8 +544,8 @@ std::shared_ptr<Serializable> ParallelNode::newDefault() const
|
||||||
return std::make_shared<ParallelNode>();
|
return std::make_shared<ParallelNode>();
|
||||||
}
|
}
|
||||||
|
|
||||||
ParallelNode::ParallelNode()
|
ParallelNode::ParallelNode(std::shared_ptr<MapKernal> kernal)
|
||||||
: LogicalNode(NodeKind::PARALLELNODE) {
|
: LogicalNode(NodeKind::PARALLELNODE, kernal) {
|
||||||
}
|
}
|
||||||
|
|
||||||
QHash<QString, std::shared_ptr<TopicData>> ParallelNode::inputList() const
|
QHash<QString, std::shared_ptr<TopicData>> ParallelNode::inputList() const
|
||||||
|
@ -615,7 +616,7 @@ std::shared_ptr<Serializable> CompareNode::newDefault() const
|
||||||
}
|
}
|
||||||
|
|
||||||
CompareNode::CompareNode(std::shared_ptr<MapKernal> ins)
|
CompareNode::CompareNode(std::shared_ptr<MapKernal> ins)
|
||||||
: LogicalNode(NodeKind::COMPARENODE), _bind_kernal(ins) {
|
: LogicalNode(NodeKind::COMPARENODE, ins), _bind_kernal(ins) {
|
||||||
_data_map[u8"×óÖµ"] = std::make_shared<GeneralData>();
|
_data_map[u8"×óÖµ"] = std::make_shared<GeneralData>();
|
||||||
_data_map[u8"ÓÒÖµ"] = std::make_shared<GeneralData>();
|
_data_map[u8"ÓÒÖµ"] = std::make_shared<GeneralData>();
|
||||||
}
|
}
|
||||||
|
|
|
@ -323,6 +323,7 @@ enum class NodeKind {
|
||||||
PARALLELNODE, // 并行节点
|
PARALLELNODE, // 并行节点
|
||||||
COMPARENODE, // 比较节点
|
COMPARENODE, // 比较节点
|
||||||
ACTIONNODE, // 动作节点
|
ACTIONNODE, // 动作节点
|
||||||
|
MODIFYNODE, // 修饰节点
|
||||||
};
|
};
|
||||||
class BehaviorMapNode;
|
class BehaviorMapNode;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -332,6 +333,7 @@ class COMPONENTBASIC_EXPORT LogicalNode : virtual public Serializable, public st
|
||||||
private:
|
private:
|
||||||
int _node_id = 0;
|
int _node_id = 0;
|
||||||
NodeKind _node_type = NodeKind::ACTIONNODE;
|
NodeKind _node_type = NodeKind::ACTIONNODE;
|
||||||
|
std::shared_ptr<MapKernal> _bind_kernal;
|
||||||
|
|
||||||
std::weak_ptr<LogicalNode> _parent_bind;
|
std::weak_ptr<LogicalNode> _parent_bind;
|
||||||
QList<std::shared_ptr<LogicalNode>> _child_list;
|
QList<std::shared_ptr<LogicalNode>> _child_list;
|
||||||
|
@ -343,7 +345,7 @@ private:
|
||||||
void _set_parent_node(std::weak_ptr<LogicalNode> pnode);
|
void _set_parent_node(std::weak_ptr<LogicalNode> pnode);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
LogicalNode(NodeKind t);
|
LogicalNode(NodeKind t, std::shared_ptr<MapKernal> kernal);
|
||||||
virtual ~LogicalNode() = default;
|
virtual ~LogicalNode() = default;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -556,7 +558,7 @@ private:
|
||||||
QHash<int, LogicalResult> _state_map;
|
QHash<int, LogicalResult> _state_map;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SequenceNode();
|
SequenceNode(std::shared_ptr<MapKernal> kernal);
|
||||||
|
|
||||||
QList<std::shared_ptr<LogicalNode>> getForwards() const override;
|
QList<std::shared_ptr<LogicalNode>> getForwards() const override;
|
||||||
QString typeName() const override;
|
QString typeName() const override;
|
||||||
|
@ -581,7 +583,7 @@ private:
|
||||||
QHash<int, LogicalResult> _state_map;
|
QHash<int, LogicalResult> _state_map;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SelectorNode();
|
SelectorNode(std::shared_ptr<MapKernal> kernal);
|
||||||
|
|
||||||
QList<std::shared_ptr<LogicalNode>> getForwards() const override;
|
QList<std::shared_ptr<LogicalNode>> getForwards() const override;
|
||||||
QString typeName() const override;
|
QString typeName() const override;
|
||||||
|
@ -606,7 +608,7 @@ private:
|
||||||
QHash<int, LogicalResult> _state_map;
|
QHash<int, LogicalResult> _state_map;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ParallelNode();
|
ParallelNode(std::shared_ptr<MapKernal> kernal);
|
||||||
|
|
||||||
QList<std::shared_ptr<LogicalNode>> getForwards() const override;
|
QList<std::shared_ptr<LogicalNode>> getForwards() const override;
|
||||||
QString typeName() const override;
|
QString typeName() const override;
|
||||||
|
@ -687,6 +689,30 @@ public:
|
||||||
void saveTo(QJsonObject& obj) const override;
|
void saveTo(QJsonObject& obj) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 修饰节点类型
|
||||||
|
/// </summary>
|
||||||
|
enum class ModifyType {
|
||||||
|
NONE,
|
||||||
|
ALWAYS_SUCCESS, // 永远成功
|
||||||
|
ALWAYS_FAILURE, // 永远失败
|
||||||
|
RESULT_INVENTER, // 结果翻转
|
||||||
|
};
|
||||||
|
class COMPONENTBASIC_EXPORT ModifiedNode : public LogicalNode {
|
||||||
|
private:
|
||||||
|
std::shared_ptr<MapKernal> _bind_kernal;
|
||||||
|
ModifyType _type_appoint = ModifyType::NONE;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ModifiedNode(std::shared_ptr<MapKernal> kernal)
|
||||||
|
: _bind_kernal(kernal){}
|
||||||
|
|
||||||
|
ModifyType modifyType() const;
|
||||||
|
void resetModify(ModifyType t);
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
// 行为节点 ====================================================================
|
// 行为节点 ====================================================================
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
Loading…
Reference in New Issue