MCPcopy Create free account
hub / github.com/MaaXYZ/MaaFramework / parse_target_variant

Method parse_target_variant

source/MaaFramework/Resource/PipelineParser.cpp:1675–1706  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1673
1674template <typename TargetType>
1675bool PipelineParser::parse_target_variant(const json::value& input_target, TargetType& output)
1676{
1677 using namespace Action;
1678
1679 if (input_target.is_boolean() && input_target.as_boolean()) {
1680 output.type = Target::Type::Self;
1681 }
1682 else if (input_target.is_string()) {
1683 NodeAttr parsed;
1684 if (!parse_node_string_in_next(input_target.as_string(), parsed)) {
1685 LogError << "failed to parse target string" << VAR(input_target);
1686 return false;
1687 }
1688 output.type = parsed.anchor ? Target::Type::Anchor : Target::Type::PreTask;
1689 output.param = parsed.name;
1690 }
1691 else if (input_target.is_array()) {
1692 output.type = Target::Type::Region;
1693 cv::Rect rect { };
1694 if (!parse_rect(input_target, rect)) {
1695 LogError << "Target::Type::Region failed to parse_rect" << VAR(input_target);
1696 return false;
1697 }
1698 output.param = rect;
1699 }
1700 else {
1701 LogError << "param type error" << VAR(input_target);
1702 return false;
1703 }
1704
1705 return true;
1706}
1707
1708bool PipelineParser::parse_action_target(
1709 const json::value& input,

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected