diff --git a/BetterGenshinImpact/Core/MouseKeyMonitor.cs b/BetterGenshinImpact/Core/MouseKeyMonitor.cs index e644e0ce..e4c39eb6 100644 --- a/BetterGenshinImpact/Core/MouseKeyMonitor.cs +++ b/BetterGenshinImpact/Core/MouseKeyMonitor.cs @@ -50,7 +50,7 @@ public class MouseKeyMonitor _spaceTimer.Interval = si; _spaceTimer.Elapsed += (sender, args) => { - MySimulator.PostMessage(_hWnd).KeyPress(User32.VK.VK_SPACE); + Simulation.PostMessage(_hWnd).KeyPress(User32.VK.VK_SPACE); _spaceTimer.Interval = _random.Next(si, si + 20); }; @@ -58,7 +58,7 @@ public class MouseKeyMonitor _fTimer.Interval = fi; _fTimer.Elapsed += (sender, args) => { - MySimulator.PostMessage(_hWnd).KeyPress(User32.VK.VK_F); + Simulation.PostMessage(_hWnd).KeyPress(User32.VK.VK_F); _fTimer.Interval = _random.Next(fi, fi + 20); }; } diff --git a/BetterGenshinImpact/Core/Simulator/MySimulator.cs b/BetterGenshinImpact/Core/Simulator/Simulation.cs similarity index 58% rename from BetterGenshinImpact/Core/Simulator/MySimulator.cs rename to BetterGenshinImpact/Core/Simulator/Simulation.cs index fdab9d6f..05c919e8 100644 --- a/BetterGenshinImpact/Core/Simulator/MySimulator.cs +++ b/BetterGenshinImpact/Core/Simulator/Simulation.cs @@ -1,11 +1,17 @@ using System; +using WindowsInput; namespace BetterGenshinImpact.Core.Simulator; -public class MySimulator +public class Simulation { public static PostMessageSimulator PostMessage(IntPtr hWnd) { return new PostMessageSimulator(hWnd); } + + public static InputSimulator SenInput() + { + return new InputSimulator(); + } } \ No newline at end of file diff --git a/BetterGenshinImpact/GameTask/AutoPick/Assets/AutoPickAssets.cs b/BetterGenshinImpact/GameTask/AutoPick/Assets/AutoPickAssets.cs index c52d76cd..e4c7ac19 100644 --- a/BetterGenshinImpact/GameTask/AutoPick/Assets/AutoPickAssets.cs +++ b/BetterGenshinImpact/GameTask/AutoPick/Assets/AutoPickAssets.cs @@ -38,7 +38,7 @@ namespace BetterGenshinImpact.GameTask.AutoPick.Assets Name = "SettingsIcon", RecognitionType = RecognitionTypes.TemplateMatch, TemplateImageMat = GameTaskManager.LoadAssertImage("AutoPick", "settings.png"), - DrawOnWindow = true, + DrawOnWindow = false, DrawOnWindowPen = new Pen(Color.Chocolate, 2) }.InitTemplate(); } diff --git a/BetterGenshinImpact/GameTask/GameTaskManager.cs b/BetterGenshinImpact/GameTask/GameTaskManager.cs index 0aa6bec7..32c51cc5 100644 --- a/BetterGenshinImpact/GameTask/GameTaskManager.cs +++ b/BetterGenshinImpact/GameTask/GameTaskManager.cs @@ -6,6 +6,7 @@ using OpenCvSharp; using System.Collections.Generic; using System.IO; using System.Linq; +using BetterGenshinImpact.GameTask.Placeholder; using BetterGenshinImpact.View.Drawable; namespace BetterGenshinImpact.GameTask @@ -22,7 +23,7 @@ namespace BetterGenshinImpact.GameTask { TriggerDictionary = new Dictionary() { - { "RecognitionTest", new RecognitionTest.TestTrigger() }, + { "RecognitionTest", new TestTrigger() }, { "AutoPick", new AutoPick.AutoPickTrigger() }, { "AutoSkip", new AutoSkip.AutoSkipTrigger() }, { "AutoFishing", new AutoFishing.AutoFishingTrigger() } diff --git a/BetterGenshinImpact/GameTask/Placeholder/PlaceholderTrigger.cs b/BetterGenshinImpact/GameTask/Placeholder/PlaceholderTrigger.cs new file mode 100644 index 00000000..92b5abd5 --- /dev/null +++ b/BetterGenshinImpact/GameTask/Placeholder/PlaceholderTrigger.cs @@ -0,0 +1,54 @@ +using BetterGenshinImpact.Core.Recognition; +using BetterGenshinImpact.GameTask.AutoFishing.Assets; + +namespace BetterGenshinImpact.GameTask.Placeholder; + +/// +/// 一个用于开发测试的识别、或者全局占位触发器 +/// 这个触发器启动的时候,直接独占 +/// +public class TestTrigger : ITaskTrigger +{ + public string Name => "自定义占位触发器"; + public bool IsEnabled { get; set; } + public int Priority => 9999; + public bool IsExclusive { get; private set; } + + private readonly RecognitionObject _optionButtonRo; + + private readonly AutoFishingAssets _autoFishingAssets; + + public TestTrigger() + { + var info = TaskContext.Instance().SystemInfo; + _optionButtonRo = new RecognitionObject + { + Name = "OptionButton", + RecognitionType = RecognitionTypes.TemplateMatch, + TemplateImageMat = GameTaskManager.LoadAssertImage("AutoSkip", "option.png"), + DrawOnWindow = true + }.InitTemplate(); + _autoFishingAssets = new AutoFishingAssets(); + } + + public void Init() + { + IsEnabled = false; + IsExclusive = true; + } + + public void OnCapture(CaptureContent content) + { + //content.CaptureRectArea.Find(_optionButtonRo, (optionButtonRectArea) => + //{ + //}); + + //content.CaptureRectArea.Find(_autoFishingAssets.BaitButtonRo, (rectArea) => + //{ + //}); + + //content.CaptureRectArea.Find(_autoFishingAssets.WaitBiteButtonRo, (rectArea) => + //{ + //}); + } +} \ No newline at end of file diff --git a/BetterGenshinImpact/GameTask/RecognitionTest/TestTrigger.cs b/BetterGenshinImpact/GameTask/RecognitionTest/TestTrigger.cs deleted file mode 100644 index e8068b9a..00000000 --- a/BetterGenshinImpact/GameTask/RecognitionTest/TestTrigger.cs +++ /dev/null @@ -1,58 +0,0 @@ -using BetterGenshinImpact.Core.Recognition; -using BetterGenshinImpact.GameTask.AutoSkip.Assets; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using OpenCvSharp; -using BetterGenshinImpact.GameTask.AutoFishing.Assets; - -namespace BetterGenshinImpact.GameTask.RecognitionTest -{ - public class TestTrigger : ITaskTrigger - { - public string Name => "开发测试识别触发器"; - public bool IsEnabled { get; set; } - public int Priority => 9999; - public bool IsExclusive { get; private set; } - - private readonly RecognitionObject _optionButtonRo; - - private readonly AutoFishingAssets _autoFishingAssets; - - public TestTrigger() - { - var info = TaskContext.Instance().SystemInfo; - _optionButtonRo = new RecognitionObject - { - Name = "OptionButton", - RecognitionType = RecognitionTypes.TemplateMatch, - TemplateImageMat = GameTaskManager.LoadAssertImage("AutoSkip", "option.png"), - DrawOnWindow = true - }.InitTemplate(); - _autoFishingAssets = new AutoFishingAssets(); - } - - public void Init() - { - IsEnabled = false; - IsExclusive = false; - } - - public void OnCapture(CaptureContent content) - { - //content.CaptureRectArea.Find(_optionButtonRo, (optionButtonRectArea) => - //{ - //}); - - content.CaptureRectArea.Find(_autoFishingAssets.BaitButtonRo, (rectArea) => - { - }); - - content.CaptureRectArea.Find(_autoFishingAssets.WaitBiteButtonRo, (rectArea) => - { - }); - } - } -} diff --git a/BetterGenshinImpact/View/Pages/TaskSettingsPage.xaml b/BetterGenshinImpact/View/Pages/TaskSettingsPage.xaml new file mode 100644 index 00000000..67fef698 --- /dev/null +++ b/BetterGenshinImpact/View/Pages/TaskSettingsPage.xaml @@ -0,0 +1,14 @@ + + + + + + diff --git a/BetterGenshinImpact/View/Pages/TaskSettingsPage.xaml.cs b/BetterGenshinImpact/View/Pages/TaskSettingsPage.xaml.cs new file mode 100644 index 00000000..918a7d10 --- /dev/null +++ b/BetterGenshinImpact/View/Pages/TaskSettingsPage.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace BetterGenshinImpact.View.Pages +{ + /// + /// TaskSettingsPage.xaml 的交互逻辑 + /// + public partial class TaskSettingsPage : Page + { + public TaskSettingsPage() + { + InitializeComponent(); + } + } +} diff --git a/BetterGenshinImpact/View/Pages/TriggerSettingsPage.xaml b/BetterGenshinImpact/View/Pages/TriggerSettingsPage.xaml index d4f1c015..63657419 100644 --- a/BetterGenshinImpact/View/Pages/TriggerSettingsPage.xaml +++ b/BetterGenshinImpact/View/Pages/TriggerSettingsPage.xaml @@ -18,7 +18,7 @@ + Text="实时自动化任务设置" />