From 419b3ae82d0ccf390e7a54cc24735f50b3fed9cd Mon Sep 17 00:00:00 2001 From: status102 <102887808+status102@users.noreply.github.com> Date: Tue, 8 Apr 2025 19:28:03 +0800 Subject: [PATCH] =?UTF-8?q?rft:=20Wpf=E5=9F=BA=E5=BB=BA=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=9B=B4=E6=96=B0=E8=BF=81=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Main/AsstProxy.cs | 26 +++++++++---------- .../ViewModels/UI/TaskQueueViewModel.cs | 11 +++++--- .../InfrastSettingsUserControlModel.cs | 3 ++- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index 90cc381c78..9ea8b0da92 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -2036,6 +2036,8 @@ namespace MaaWpfGui.Main private readonly Dictionary _taskStatus = []; private static JObject SerializeFightTaskParams( + public IReadOnlyDictionary TaskStatus => _taskStatus; + string stage, int maxMedicine, int maxStone, @@ -2150,19 +2152,6 @@ namespace MaaWpfGui.Main return MaaService.AsstBackToHome(_handle); } - public bool AsstSetInfrastTaskParams() - { - const TaskType Type = TaskType.Infrast; - int id = _taskStatus.FirstOrDefault(i => i.Value == Type).Key; - if (id == 0) - { - return false; - } - - var taskParams = InfrastSettingsUserControlModel.Instance.Serialize().Params; - return AsstSetTaskParamsWithEncoding(id, taskParams); - } - /// /// 仓库识别。 /// @@ -2215,6 +2204,17 @@ namespace MaaWpfGui.Main return true; } + public bool AsstSetTaskParamsEncoded(AsstTaskId id, JObject? taskParams = null) + { + if (id == 0) + { + return false; + } + + taskParams ??= []; + return AsstSetTaskParams(_handle, id, JsonConvert.SerializeObject(taskParams)); + } + public bool ContainsTask(TaskType type) { return _taskStatus.ContainsValue(type); diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs index 469ebf9982..152ad44e53 100644 --- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs @@ -27,6 +27,7 @@ using MaaWpfGui.Extensions; using MaaWpfGui.Helper; using MaaWpfGui.Main; using MaaWpfGui.Models; +using MaaWpfGui.Models.AsstTasks; using MaaWpfGui.Services; using MaaWpfGui.States; using MaaWpfGui.Utilities; @@ -36,6 +37,7 @@ using MaaWpfGui.ViewModels.UserControl.TaskQueue; using Newtonsoft.Json.Linq; using Serilog; using Stylet; +using static MaaWpfGui.Main.AsstProxy; using Application = System.Windows.Application; using IContainer = StyletIoC.IContainer; using Screen = Stylet.Screen; @@ -1691,14 +1693,17 @@ namespace MaaWpfGui.ViewModels.UI Instances.AsstProxy.AsstSetFightTaskParams(FightTask.RemainingSanityStage, 0, 0, int.MaxValue, 1, string.Empty, 0, false); } - public void SetInfrastParams() + public static void SetInfrastParams() { - if (!Instances.AsstProxy.ContainsTask(AsstProxy.TaskType.Infrast)) + const TaskType Type = TaskType.Infrast; + int id = Instances.AsstProxy.TaskStatus.FirstOrDefault(i => i.Value == Type).Key; + if (id == default) { return; } - Instances.AsstProxy.AsstSetInfrastTaskParams(); + var taskParams = InfrastSettingsUserControlModel.Instance.Serialize().Params; + Instances.AsstProxy.AsstSetTaskParamsEncoded(id, taskParams); } public bool AppendInfrast() diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs index 0903932f66..958b3d0d56 100644 --- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs +++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs @@ -23,6 +23,7 @@ using MaaWpfGui.Models; using MaaWpfGui.Models.AsstTasks; using MaaWpfGui.Services; using MaaWpfGui.Utilities.ValueType; +using MaaWpfGui.ViewModels.UI; using Microsoft.Win32; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -440,7 +441,7 @@ public class InfrastSettingsUserControlModel : TaskViewModel } SetAndNotify(ref _customInfrastPlanIndex, value); - Instances.TaskQueueViewModel.SetInfrastParams(); + TaskQueueViewModel.SetInfrastParams(); ConfigurationHelper.SetValue(ConfigurationKeys.CustomInfrastPlanIndex, value.ToString()); } }