fix: 移除find_plugin

[skip changelog]
This commit is contained in:
status102
2024-07-23 17:41:59 +08:00
parent c89b63b78e
commit 20ddfedfb7
4 changed files with 9 additions and 4 deletions

View File

@@ -45,7 +45,7 @@ asst::RoguelikeTask::RoguelikeTask(const AsstCallback& callback, Assistant* inst
// ------------------ 通用插件 ------------------
m_roguelike_task_ptr->register_plugin<ScreenshotTaskPlugin>();
m_roguelike_task_ptr->register_plugin<RoguelikeFormationTaskPlugin>(m_config_ptr);
m_roguelike_task_ptr->register_plugin<RoguelikeControlTaskPlugin>(m_config_ptr);
m_control_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeControlTaskPlugin>(m_config_ptr);
m_roguelike_task_ptr->register_plugin<RoguelikeResetTaskPlugin>(m_config_ptr);
m_roguelike_task_ptr->register_plugin<RoguelikeSettlementTaskPlugin>(m_config_ptr);
m_invest_ptr = m_roguelike_task_ptr->register_plugin<RoguelikeInvestTaskPlugin>(m_config_ptr);
@@ -213,6 +213,8 @@ bool asst::RoguelikeTask::set_params(const json::value& params)
m_foldartal_use_ptr->set_enable(theme == RoguelikeTheme::Sami);
m_cp_ptr->set_enable(theme == RoguelikeTheme::Sami);
m_invest_ptr->set_control_plugin_ptr(m_control_ptr);
const auto& ptr = m_custom_ptr;
ptr->set_custom(RoguelikeCustomType::Squad, params.get("squad", "")); // 开局分队
ptr->set_custom(RoguelikeCustomType::Roles, params.get("roles", "")); // 开局职业组

View File

@@ -5,6 +5,7 @@ namespace asst
{
class ProcessTask;
class RoguelikeConfig;
class RoguelikeControlTaskPlugin;
class RoguelikeInvestTaskPlugin;
class RoguelikeDebugTaskPlugin;
class RoguelikeCustomStartTaskPlugin;
@@ -26,6 +27,7 @@ namespace asst
private:
std::shared_ptr<ProcessTask> m_roguelike_task_ptr = nullptr;
std::shared_ptr<RoguelikeConfig> m_config_ptr = nullptr;
std::shared_ptr<RoguelikeControlTaskPlugin> m_control_ptr = nullptr;
std::shared_ptr<RoguelikeInvestTaskPlugin> m_invest_ptr = nullptr;
std::shared_ptr<RoguelikeDebugTaskPlugin> m_debug_ptr = nullptr;
std::shared_ptr<RoguelikeCustomStartTaskPlugin> m_custom_ptr = nullptr;

View File

@@ -161,9 +161,8 @@ bool asst::RoguelikeInvestTaskPlugin::is_investment_error(const cv::Mat& image)
void asst::RoguelikeInvestTaskPlugin::stop_roguelike() const
{
auto control_ptr = m_task_ptr->find_plugin<RoguelikeControlTaskPlugin>();
if (control_ptr) {
control_ptr->exit_then_stop(true);
if (m_roguelike_task_ptr) {
m_roguelike_task_ptr->exit_then_stop(true);
}
m_task_ptr->set_enable(false);
}

View File

@@ -12,6 +12,7 @@ public:
virtual bool verify(AsstMsg msg, const json::value& details) const override;
void set_invest_maximum(int value) { m_maximum = value; }
void set_stop_when_full(bool value) { m_stop_when_full = value; }
void set_control_plugin_ptr(const auto& ptr) { m_roguelike_task_ptr = ptr; }
private:
virtual bool _run() override;
@@ -23,5 +24,6 @@ private:
int m_invest_count = 0;
int m_maximum = 0;
bool m_stop_when_full = false; // 存款满了就停止
std::shared_ptr<RoguelikeControlTaskPlugin> m_roguelike_task_ptr = nullptr;
};
} // namespace asst