fix js pathingScript

This commit is contained in:
辉鸭蛋
2024-10-13 22:58:42 +08:00
parent 50aac5cea0
commit c4a7823c83
4 changed files with 11 additions and 11 deletions

View File

@@ -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<PathingTask>(json);
if (task == null)
{
return;
}
var task = PathingTask.BuildFromJson(json);
await new PathExecutor(CancellationContext.Instance.Cts).Pathing(task);
}

View File

@@ -34,6 +34,12 @@ public class PathingTask
return task;
}
public static PathingTask BuildFromJson(string json)
{
var task = JsonSerializer.Deserialize<PathingTask>(json, PathRecorder.JsonOptions) ?? throw new Exception("Failed to deserialize PathingTask");
return task;
}
public void SaveToFile(string filePath)
{
var json = JsonSerializer.Serialize(this, PathRecorder.JsonOptions);

View File

@@ -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;

View File

@@ -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);