所有类型Task的实现

This commit is contained in:
辉鸭蛋
2025-06-08 22:40:53 +08:00
parent 56d23c47fc
commit fda93cf78e
3 changed files with 75 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
using System.IO;
using System.Threading.Tasks;
using BetterGenshinImpact.Core.Config;
using BetterGenshinImpact.Core.Recorder;
using BetterGenshinImpact.Core.Script;
namespace BetterGenshinImpact.Model.Gear;
public class KeyMouseGearTask : BaseGearTask
{
public KeyMouseGearTask(string path)
{
FilePath = path;
}
public override async Task Run(params object[] configs)
{
// 加载并执行
var json = await File.ReadAllTextAsync(FilePath);
await KeyMouseMacroPlayer.PlayMacro(json, CancellationContext.Instance.Cts.Token, false);
}
}

View File

@@ -0,0 +1,32 @@
using System.Threading.Tasks;
using BetterGenshinImpact.Core.Config;
using BetterGenshinImpact.Core.Script;
using BetterGenshinImpact.GameTask;
using BetterGenshinImpact.GameTask.AutoPathing;
using BetterGenshinImpact.GameTask.AutoPathing.Model;
namespace BetterGenshinImpact.Model.Gear;
public class PathingGearTask : BaseGearTask
{
public PathingGearTask(string path)
{
FilePath = path;
}
public override async Task Run(params object[] configs)
{
// 加载并执行
var task = PathingTask.BuildFromFilePath(FilePath);
var pathingTask = new PathExecutor(CancellationContext.Instance.Cts.Token);
if (configs.Length > 0)
{
pathingTask.PartyConfig = (PathingPartyConfig)configs[0];
}
if (pathingTask.PartyConfig.AutoPickEnabled)
{
TaskTriggerDispatcher.Instance().AddTrigger("AutoPick", null);
}
await pathingTask.Pathing(task);
}
}

View File

@@ -0,0 +1,21 @@
using System.Threading.Tasks;
using BetterGenshinImpact.Core.Config;
using BetterGenshinImpact.Core.Script;
using BetterGenshinImpact.GameTask.Shell;
namespace BetterGenshinImpact.Model.Gear;
public class ShellGearTask : BaseGearTask
{
public override async Task Run(params object[] configs)
{
ShellConfig? shellConfig = null;
if (configs.Length > 0)
{
shellConfig = (ShellConfig)configs[0];
}
var task = new ShellTask(ShellTaskParam.BuildFromConfig(Name, shellConfig ?? new ShellConfig()));
await task.Start(CancellationContext.Instance.Cts.Token);
}
}