mirror of
https://github.com/babalae/better-genshin-impact.git
synced 2026-05-27 10:15:50 +08:00
所有类型Task的实现
This commit is contained in:
22
BetterGenshinImpact/Model/Gear/KeyMouseGearTask.cs
Normal file
22
BetterGenshinImpact/Model/Gear/KeyMouseGearTask.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
32
BetterGenshinImpact/Model/Gear/PathingGearTask.cs
Normal file
32
BetterGenshinImpact/Model/Gear/PathingGearTask.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
21
BetterGenshinImpact/Model/Gear/ShellGearTask.cs
Normal file
21
BetterGenshinImpact/Model/Gear/ShellGearTask.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user