using BetterGenshinImpact.GameTask; using BetterGenshinImpact.GameTask.AutoCook; using BetterGenshinImpact.GameTask.AutoDomain; using BetterGenshinImpact.GameTask.AutoFight; using BetterGenshinImpact.GameTask.AutoFishing; using BetterGenshinImpact.GameTask.AutoGeniusInvokation; using BetterGenshinImpact.GameTask.AutoPick; using BetterGenshinImpact.GameTask.AutoSkip; using BetterGenshinImpact.GameTask.AutoWood; using BetterGenshinImpact.GameTask.AutoMusicGame; using BetterGenshinImpact.GameTask.QuickTeleport; using BetterGenshinImpact.Service.Notification; using CommunityToolkit.Mvvm.ComponentModel; using Fischless.GameCapture; using System; using System.Collections.Generic; using System.ComponentModel; using System.Text.Json.Serialization; using System.Threading.Tasks; using BetterGenshinImpact.GameTask.AutoTrackPath; using BetterGenshinImpact.GameTask.AutoArtifactSalvage; using BetterGenshinImpact.GameTask.AutoStygianOnslaught; using BetterGenshinImpact.GameTask.GetGridIcons; using BetterGenshinImpact.GameTask.AutoEat; using BetterGenshinImpact.GameTask.AutoLeyLineOutcrop; using BetterGenshinImpact.GameTask.MapMask; using BetterGenshinImpact.GameTask.SkillCd; using BetterGenshinImpact.GameTask.UseRedeemCode; namespace BetterGenshinImpact.Core.Config; /// /// 更好的原神配置 /// [Serializable] public partial class AllConfig : ObservableObject { /// /// 窗口捕获的方式 /// [ObservableProperty] private string _captureMode = CaptureModes.BitBlt.ToString(); /// /// 详细的错误日志 /// [ObservableProperty] private bool _detailedErrorLogs; /// /// 不展示新版本提示的最新版本 /// [ObservableProperty] private string _notShowNewVersionNoticeEndVersion = ""; /// /// 触发器触发频率(ms) /// [ObservableProperty] private int _triggerInterval = 50; // /// // /// WGC使用位图缓存 // /// 高帧率情况下,可能会导致卡顿 // /// 云原神可能会出现黑屏 // /// // [ObservableProperty] // private bool _wgcUseBitmapCache = true; /// /// 自动修复Win11下BitBlt截图方式不可用的问题 /// [ObservableProperty] private bool _autoFixWin11BitBlt = true; // /// // /// 推理使用的设备 // /// // [ObservableProperty] // private string _inferenceDevice = "CPU"; [ObservableProperty] private List> _nextScheduledTask = []; /// /// 连续执行任务时,从此任务开始执行 /// [JsonIgnore] public string NextScriptGroupName { get; set; }= string.Empty; /// /// 一条龙选中使用的配置 /// [ObservableProperty] private string _selectedOneDragonFlowConfigName = string.Empty; /// /// 遮罩窗口配置 /// public MaskWindowConfig MaskWindowConfig { get; set; } = new(); /// /// 通用配置 /// public CommonConfig CommonConfig { get; set; } = new(); /// /// 原神启动配置 /// public GenshinStartConfig GenshinStartConfig { get; set; } = new(); /// /// 自动拾取配置 /// public AutoPickConfig AutoPickConfig { get; set; } = new(); /// /// 自动剧情配置 /// public AutoSkipConfig AutoSkipConfig { get; set; } = new(); /// /// 自动钓鱼配置 /// public AutoFishingConfig AutoFishingConfig { get; set; } = new(); /// /// 快速传送配置 /// public QuickTeleportConfig QuickTeleportConfig { get; set; } = new(); /// /// 自动烹饪配置 /// public AutoCookConfig AutoCookConfig { get; set; } = new(); /// /// 自动打牌配置 /// public AutoGeniusInvokationConfig AutoGeniusInvokationConfig { get; set; } = new(); /// /// 自动伐木配置 /// public AutoWoodConfig AutoWoodConfig { get; set; } = new(); /// /// 自动战斗配置 /// public AutoFightConfig AutoFightConfig { get; set; } = new(); /// /// 自动乐曲配置 - 千音雅集 /// public AutoMusicGameConfig AutoMusicGameConfig { get; set; } = new(); /// /// 自动秘境配置 /// public AutoDomainConfig AutoDomainConfig { get; set; } = new(); /// /// 自动秘境配置 /// public AutoStygianOnslaughtConfig AutoStygianOnslaughtConfig { get; set; } = new(); /// /// 自动分解圣遗物配置 /// public AutoArtifactSalvageConfig AutoArtifactSalvageConfig { get; set; } = new(); /// /// 自动吃药配置 /// public AutoEatConfig AutoEatConfig { get; set; } = new(); /// /// 自动地脉花配置 /// public AutoLeyLineOutcropConfig AutoLeyLineOutcropConfig { get; set; } = new(); /// /// 地图遮罩 /// public MapMaskConfig MapMaskConfig { get; set; } = new(); /// /// 技能 CD 提示 /// public SkillCdConfig SkillCdConfig { get; set; } = new(); /// /// 自动使用 /// public AutoRedeemCodeConfig AutoRedeemCodeConfig { get; set; } = new(); /// /// 截取物品图标配置 /// public GetGridIconsConfig GetGridIconsConfig { get; set; } = new(); /// /// 宏配置 /// public MacroConfig MacroConfig { get; set; } = new(); public RecordConfig RecordConfig { get; set; } = new(); /// /// 脚本配置 /// public ScriptConfig ScriptConfig { get; set; } = new(); /// /// 地图追踪配置 /// public PathingConditionConfig PathingConditionConfig { get; set; } = PathingConditionConfig.Default; /// /// 快捷键配置 /// public HotKeyConfig HotKeyConfig { get; set; } = new(); /// /// 通知配置 /// public NotificationConfig NotificationConfig { get; set; } = new(); /// /// 原神按键绑定配置 /// public KeyBindingsConfig KeyBindingsConfig { get; set; } = new(); /// /// 其他配置 /// public OtherConfig OtherConfig { get; set; } = new(); /// /// 传送相关配置 /// public TpConfig TpConfig { get; set; } = new(); /// /// 开发者配置 /// public DevConfig DevConfig { get; set; } = new(); /// /// 硬件加速设置 /// public HardwareAccelerationConfig HardwareAccelerationConfig { get; set; } = new(); [JsonIgnore] public Action? OnAnyChangedAction { get; set; } public void InitEvent() { PropertyChanged += OnAnyPropertyChanged; MaskWindowConfig.PropertyChanged += OnAnyPropertyChanged; CommonConfig.PropertyChanged += OnAnyPropertyChanged; GenshinStartConfig.PropertyChanged += OnAnyPropertyChanged; NotificationConfig.PropertyChanged += OnAnyPropertyChanged; NotificationConfig.PropertyChanged += OnNotificationPropertyChanged; KeyBindingsConfig.PropertyChanged += OnAnyPropertyChanged; AutoPickConfig.PropertyChanged += OnAnyPropertyChanged; AutoSkipConfig.PropertyChanged += OnAnyPropertyChanged; AutoFishingConfig.PropertyChanged += OnAnyPropertyChanged; QuickTeleportConfig.PropertyChanged += OnAnyPropertyChanged; AutoCookConfig.PropertyChanged += OnAnyPropertyChanged; MacroConfig.PropertyChanged += OnAnyPropertyChanged; HotKeyConfig.PropertyChanged += OnAnyPropertyChanged; AutoWoodConfig.PropertyChanged += OnAnyPropertyChanged; AutoFightConfig.PropertyChanged += OnAnyPropertyChanged; AutoDomainConfig.PropertyChanged += OnAnyPropertyChanged; AutoStygianOnslaughtConfig.PropertyChanged += OnAnyPropertyChanged; AutoArtifactSalvageConfig.PropertyChanged += OnAnyPropertyChanged; AutoRedeemCodeConfig.PropertyChanged += OnAnyPropertyChanged; AutoEatConfig.PropertyChanged += OnAnyPropertyChanged; AutoLeyLineOutcropConfig.PropertyChanged += OnAnyPropertyChanged; MapMaskConfig.PropertyChanged += OnAnyPropertyChanged; AutoMusicGameConfig.PropertyChanged += OnAnyPropertyChanged; TpConfig.PropertyChanged += OnAnyPropertyChanged; ScriptConfig.PropertyChanged += OnAnyPropertyChanged; PathingConditionConfig.PropertyChanged += OnAnyPropertyChanged; DevConfig.PropertyChanged += OnAnyPropertyChanged; HardwareAccelerationConfig.PropertyChanged += OnAnyPropertyChanged; SkillCdConfig.PropertyChanged += OnAnyPropertyChanged; } public void OnAnyPropertyChanged(object? sender, EventArgs args) { GameTaskManager.RefreshTriggerConfigs(); OnAnyChangedAction?.Invoke(); } public void OnNotificationPropertyChanged(object? sender, PropertyChangedEventArgs args) { NotificationService.Instance().RefreshNotifiers(); } }