From c4a7823c832315cfe8b9d4eefe02471ce92e4c5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=89=E9=B8=AD=E8=9B=8B?= Date: Sun, 13 Oct 2024 22:58:42 +0800 Subject: [PATCH] fix js pathingScript --- .../Core/Script/Dependence/AutoPathingScript.cs | 11 +++-------- .../GameTask/AutoPathing/Model/PathingTask.cs | 6 ++++++ .../GameTask/AutoPathing/PathExecutor.cs | 3 +-- BetterGenshinImpact/GameTask/AutoTrackPath/TpTask.cs | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/BetterGenshinImpact/Core/Script/Dependence/AutoPathingScript.cs b/BetterGenshinImpact/Core/Script/Dependence/AutoPathingScript.cs index 0c60a50a..1ce916ca 100644 --- a/BetterGenshinImpact/Core/Script/Dependence/AutoPathingScript.cs +++ b/BetterGenshinImpact/Core/Script/Dependence/AutoPathingScript.cs @@ -1,7 +1,6 @@ -using System.Threading.Tasks; -using System.Text.Json; -using BetterGenshinImpact.GameTask.AutoPathing; +using BetterGenshinImpact.GameTask.AutoPathing; using BetterGenshinImpact.GameTask.AutoPathing.Model; +using System.Threading.Tasks; namespace BetterGenshinImpact.Core.Script.Dependence; @@ -9,11 +8,7 @@ public class AutoPathingScript(string rootPath) { public async Task Run(string json) { - var task = JsonSerializer.Deserialize(json); - if (task == null) - { - return; - } + var task = PathingTask.BuildFromJson(json); await new PathExecutor(CancellationContext.Instance.Cts).Pathing(task); } diff --git a/BetterGenshinImpact/GameTask/AutoPathing/Model/PathingTask.cs b/BetterGenshinImpact/GameTask/AutoPathing/Model/PathingTask.cs index d1c14187..b8678c3d 100644 --- a/BetterGenshinImpact/GameTask/AutoPathing/Model/PathingTask.cs +++ b/BetterGenshinImpact/GameTask/AutoPathing/Model/PathingTask.cs @@ -34,6 +34,12 @@ public class PathingTask return task; } + public static PathingTask BuildFromJson(string json) + { + var task = JsonSerializer.Deserialize(json, PathRecorder.JsonOptions) ?? throw new Exception("Failed to deserialize PathingTask"); + return task; + } + public void SaveToFile(string filePath) { var json = JsonSerializer.Serialize(this, PathRecorder.JsonOptions); diff --git a/BetterGenshinImpact/GameTask/AutoPathing/PathExecutor.cs b/BetterGenshinImpact/GameTask/AutoPathing/PathExecutor.cs index e4fa9c12..71890039 100644 --- a/BetterGenshinImpact/GameTask/AutoPathing/PathExecutor.cs +++ b/BetterGenshinImpact/GameTask/AutoPathing/PathExecutor.cs @@ -1,10 +1,10 @@ using BetterGenshinImpact.Core.Simulator; +using BetterGenshinImpact.GameTask.AutoPathing.Handler; using BetterGenshinImpact.GameTask.AutoPathing.Model; using BetterGenshinImpact.GameTask.AutoPathing.Model.Enum; using BetterGenshinImpact.GameTask.AutoTrackPath; using BetterGenshinImpact.GameTask.Common.BgiVision; using BetterGenshinImpact.GameTask.Common.Map; -using BetterGenshinImpact.GameTask.Model.Area; using CommunityToolkit.Mvvm.Messaging; using CommunityToolkit.Mvvm.Messaging.Messages; using Microsoft.Extensions.Logging; @@ -15,7 +15,6 @@ using System.Diagnostics; using System.Linq; using System.Threading; using System.Threading.Tasks; -using BetterGenshinImpact.GameTask.AutoPathing.Handler; using Vanara.PInvoke; using static BetterGenshinImpact.GameTask.Common.TaskControl; diff --git a/BetterGenshinImpact/GameTask/AutoTrackPath/TpTask.cs b/BetterGenshinImpact/GameTask/AutoTrackPath/TpTask.cs index b663f90a..a83764de 100644 --- a/BetterGenshinImpact/GameTask/AutoTrackPath/TpTask.cs +++ b/BetterGenshinImpact/GameTask/AutoTrackPath/TpTask.cs @@ -74,7 +74,7 @@ public class TpTask(CancellationTokenSource cts) // Debug.WriteLine($"({x},{y}) 在 {bigMapInAllMapRect} 内,计算它在窗体内的位置"); // 注意这个坐标的原点是中心区域某个点,所以要转换一下点击坐标(点击坐标是左上角为原点的坐标系),不能只是缩放 var (clickX, clickY) = ConvertToGameRegionPosition(bigMapInAllMapRect, x, y); - Logger.LogInformation("点击传送点:({X},{Y})", clickX, clickY); + Logger.LogInformation("点击传送点"); using var ra = CaptureToRectArea(); ra.ClickTo((int)clickX, (int)clickY);