mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-16 09:50:40 +08:00
refactor.重构添加任务接口
This commit is contained in:
@@ -42,10 +42,12 @@ bool asst::InfrastProductionTask::shift_facility_list()
|
||||
}
|
||||
const auto tab_task_ptr = m_task_data->get("InfrastFacilityListTab" + facility_name());
|
||||
MatchImageAnalyzer add_analyzer;
|
||||
add_analyzer.set_task_data(m_task_data);
|
||||
const auto add_task_ptr = m_task_data->get("InfrastAddOperator" + facility_name() + m_work_mode_name);
|
||||
add_analyzer.set_task_info(add_task_ptr);
|
||||
MultiMatchImageAnalyzer locked_analyzer;
|
||||
locked_analyzer.set_task_info(StaticTaskData::get_instance().get("InfrastOperLocked" + facility_name()));
|
||||
locked_analyzer.set_task_data(m_task_data);
|
||||
locked_analyzer.set_task_info(m_task_data->get("InfrastOperLocked" + facility_name()));
|
||||
|
||||
for (; m_cur_facility_index < m_facility_list_tabs.size(); ++m_cur_facility_index) {
|
||||
Rect tab = m_facility_list_tabs.at(m_cur_facility_index);
|
||||
@@ -78,11 +80,12 @@ bool asst::InfrastProductionTask::shift_facility_list()
|
||||
|
||||
/* 识别当前正在造什么 */
|
||||
MatchImageAnalyzer product_analyzer(image);
|
||||
product_analyzer.set_task_data(m_task_data);
|
||||
auto& all_products = Resrc.infrast().get_facility_info(facility_name()).products;
|
||||
std::string cur_product = all_products.at(0);
|
||||
double max_score = 0;
|
||||
for (const std::string& product : all_products) {
|
||||
product_analyzer.set_task_info(StaticTaskData::get_instance().get("InfrastFlag" + product));
|
||||
product_analyzer.set_task_info(m_task_data->get("InfrastFlag" + product));
|
||||
if (product_analyzer.analyze()) {
|
||||
double score = product_analyzer.get_result().score;
|
||||
if (score > max_score) {
|
||||
@@ -179,6 +182,7 @@ size_t asst::InfrastProductionTask::opers_detect()
|
||||
const auto image = m_ctrler->get_image();
|
||||
|
||||
InfrastOperImageAnalyzer oper_analyzer(image);
|
||||
oper_analyzer.set_task_data(m_task_data);
|
||||
oper_analyzer.set_facility(facility_name());
|
||||
|
||||
if (!oper_analyzer.analyze()) {
|
||||
@@ -462,6 +466,7 @@ bool asst::InfrastProductionTask::opers_choose()
|
||||
const auto image = m_ctrler->get_image();
|
||||
|
||||
InfrastOperImageAnalyzer oper_analyzer(image);
|
||||
oper_analyzer.set_task_data(m_task_data);
|
||||
oper_analyzer.set_facility(facility_name());
|
||||
|
||||
if (!oper_analyzer.analyze()) {
|
||||
@@ -619,7 +624,8 @@ bool asst::InfrastProductionTask::facility_list_detect()
|
||||
|
||||
const auto image = m_ctrler->get_image();
|
||||
MultiMatchImageAnalyzer mm_analyzer(image);
|
||||
mm_analyzer.set_task_info(StaticTaskData::get_instance().get("InfrastFacilityListTab" + facility_name()));
|
||||
mm_analyzer.set_task_data(m_task_data);
|
||||
mm_analyzer.set_task_info(m_task_data->get("InfrastFacilityListTab" + facility_name()));
|
||||
|
||||
if (!mm_analyzer.analyze()) {
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user