From 89802e4b8d93260d3a42d13ecf2a7c1be9e46fae Mon Sep 17 00:00:00 2001 From: ZouJin Date: Sun, 10 Sep 2023 22:03:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=AF=E8=83=BD=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=BC=BA=E5=B0=91=E6=A8=A1=E7=BB=84Core=E7=9A=84?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VPet-Simulator.Core/Graph/GraphCore.cs | 2 +- .../ExtensionFunction.cs | 13 +++++- VPet-Simulator.Windows/MainWindow.cs | 18 ++++---- VPet-Simulator.Windows/MainWindow.xaml.cs | 41 ++++++++++--------- .../WinDesign/winGameSetting.xaml.cs | 10 ++--- 5 files changed, 48 insertions(+), 36 deletions(-) diff --git a/VPet-Simulator.Core/Graph/GraphCore.cs b/VPet-Simulator.Core/Graph/GraphCore.cs index 23ca0e0..10623ac 100644 --- a/VPet-Simulator.Core/Graph/GraphCore.cs +++ b/VPet-Simulator.Core/Graph/GraphCore.cs @@ -31,7 +31,7 @@ namespace VPet_Simulator.Core Resolution = resolution; } - public static string CachePath = AppDomain.CurrentDomain.BaseDirectory + @"\cache"; + public static string CachePath = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName + @"\cache"; /// /// 图像名字字典: 动画类型->动画名字 diff --git a/VPet-Simulator.Windows.Interface/ExtensionFunction.cs b/VPet-Simulator.Windows.Interface/ExtensionFunction.cs index c153b00..7a44448 100644 --- a/VPet-Simulator.Windows.Interface/ExtensionFunction.cs +++ b/VPet-Simulator.Windows.Interface/ExtensionFunction.cs @@ -1,8 +1,12 @@ -using System; +using LinePutScript.Localization.WPF; +using System; using System.Collections.Generic; +using System.Diagnostics; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows; using static VPet_Simulator.Core.GraphHelper; namespace VPet_Simulator.Windows.Interface @@ -31,4 +35,11 @@ namespace VPet_Simulator.Windows.Interface return rel > 2; // 推荐rel为1.0-1.4之间 超过2.0就是超模 } } + public static class ExtensionValue + { + /// + /// 当前运行目录 + /// + public static string BaseDirectory = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName; + } } diff --git a/VPet-Simulator.Windows/MainWindow.cs b/VPet-Simulator.Windows/MainWindow.cs index 0ed7f6f..b1422c4 100644 --- a/VPet-Simulator.Windows/MainWindow.cs +++ b/VPet-Simulator.Windows/MainWindow.cs @@ -174,14 +174,14 @@ namespace VPet_Simulator.Windows //Set.Statistics[(gint)"stat_time"] = (int)(DateTime.Now - timecount).TotalMinutes; //timecount = DateTime.Now; } - File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + @"\Setting.lps", Set.ToString()); + File.WriteAllText(ExtensionValue.BaseDirectory + @"\Setting.lps", Set.ToString()); - if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\BackUP")) - Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + @"\BackUP"); + if (!Directory.Exists(ExtensionValue.BaseDirectory + @"\BackUP")) + Directory.CreateDirectory(ExtensionValue.BaseDirectory + @"\BackUP"); if (Core != null && Core.Save != null) { - var ds = new List(Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory + @"\BackUP", "*.lps")).FindAll(x => x.Contains('_')).OrderBy(x => + var ds = new List(Directory.GetFiles(ExtensionValue.BaseDirectory + @"\BackUP", "*.lps")).FindAll(x => x.Contains('_')).OrderBy(x => { if (int.TryParse(x.Split('_')[1], out int i)) return i; @@ -192,11 +192,11 @@ namespace VPet_Simulator.Windows File.Delete(ds[0]); ds.RemoveAt(0); } - if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + $"\\BackUP\\Save_{st}.lps")) - File.Delete(AppDomain.CurrentDomain.BaseDirectory + $"\\BackUP\\Save_{st}.lps"); + if (File.Exists(ExtensionValue.BaseDirectory + $"\\BackUP\\Save_{st}.lps")) + File.Delete(ExtensionValue.BaseDirectory + $"\\BackUP\\Save_{st}.lps"); - if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\Save.lps")) - File.Move(AppDomain.CurrentDomain.BaseDirectory + @"\Save.lps", AppDomain.CurrentDomain.BaseDirectory + $"\\BackUP\\Save_{st}.lps"); + if (File.Exists(ExtensionValue.BaseDirectory + @"\Save.lps")) + File.Move(ExtensionValue.BaseDirectory + @"\Save.lps", ExtensionValue.BaseDirectory + $"\\BackUP\\Save_{st}.lps"); var l = Core.Save.ToLine(); if (HashCheck) { @@ -204,7 +204,7 @@ namespace VPet_Simulator.Windows } else l[(gint)"hash"] = -1; - File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + @"\Save.lps", l.ToString()); + File.WriteAllText(ExtensionValue.BaseDirectory + @"\Save.lps", l.ToString()); } } } diff --git a/VPet-Simulator.Windows/MainWindow.xaml.cs b/VPet-Simulator.Windows/MainWindow.xaml.cs index ff93215..da7bf56 100644 --- a/VPet-Simulator.Windows/MainWindow.xaml.cs +++ b/VPet-Simulator.Windows/MainWindow.xaml.cs @@ -44,6 +44,7 @@ namespace VPet_Simulator.Windows #else PNGAnimation.MaxLoadNumber = 20; #endif + ExtensionValue.BaseDirectory = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName; LocalizeCore.StoreTranslation = true; CultureInfo.CurrentCulture = new CultureInfo(CultureInfo.CurrentCulture.Name); @@ -70,9 +71,9 @@ namespace VPet_Simulator.Windows try { //加载游戏设置 - if (new FileInfo(AppDomain.CurrentDomain.BaseDirectory + @"\Setting.lps").Exists) + if (new FileInfo(ExtensionValue.BaseDirectory + @"\Setting.lps").Exists) { - Set = new Setting(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"\Setting.lps")); + Set = new Setting(File.ReadAllText(ExtensionValue.BaseDirectory + @"\Setting.lps")); } else Set = new Setting("Setting#VPET:|\n"); @@ -92,8 +93,8 @@ namespace VPet_Simulator.Windows _dwmEnabled = Win32.Dwmapi.DwmIsCompositionEnabled(); _hwnd = new WindowInteropHelper(this).EnsureHandle(); - //if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\ChatGPTSetting.json")) - // CGPTClient = ChatGPTClient.Load(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"\ChatGPTSetting.json")); + //if (File.Exists(ExtensionValue.BaseDirectory + @"\ChatGPTSetting.json")) + // CGPTClient = ChatGPTClient.Load(File.ReadAllText(ExtensionValue.BaseDirectory + @"\ChatGPTSetting.json")); //this.Width = 400 * ZoomSlider.Value; //this.Height = 450 * ZoomSlider.Value; InitializeComponent(); @@ -233,9 +234,9 @@ namespace VPet_Simulator.Windows public void LoadLatestSave(string petname) { - if (Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\BackUP")) + if (Directory.Exists(ExtensionValue.BaseDirectory + @"\BackUP")) { - var ds = new List(Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory + @"\BackUP", "*.lps")).FindAll(x => x.Contains('_')).OrderBy(x => + var ds = new List(Directory.GetFiles(ExtensionValue.BaseDirectory + @"\BackUP", "*.lps")).FindAll(x => x.Contains('_')).OrderBy(x => { if (int.TryParse(x.Split('_')[1], out int i)) return i; @@ -357,9 +358,9 @@ namespace VPet_Simulator.Windows else//新玩家,默认设置为 Set["CGPT"][(gstr)"type"] = "LB"; - if (Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\UserData") && !Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\BackUP")) + if (Directory.Exists(ExtensionValue.BaseDirectory + @"\UserData") && !Directory.Exists(ExtensionValue.BaseDirectory + @"\BackUP")) { - Directory.Move(AppDomain.CurrentDomain.BaseDirectory + @"\UserData", AppDomain.CurrentDomain.BaseDirectory + @"\BackUP"); + Directory.Move(ExtensionValue.BaseDirectory + @"\UserData", ExtensionValue.BaseDirectory + @"\BackUP"); } //加载数据合理化:食物 @@ -385,10 +386,10 @@ namespace VPet_Simulator.Windows await Dispatcher.InvokeAsync(new Action(() => LoadingText.Content = "尝试加载游戏存档".Translate())); //加载存档 Core.Controller = new MWController(this); - if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\Save.lps")) + if (File.Exists(ExtensionValue.BaseDirectory + @"\Save.lps")) try { - if (!GameLoad(new LpsDocument(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"\Save.lps")).First())) + if (!GameLoad(new LpsDocument(File.ReadAllText(ExtensionValue.BaseDirectory + @"\Save.lps")).First())) { //如果加载存档失败了,试试加载备份,如果没备份,就新建一个 LoadLatestSave(petloader.PetName); @@ -582,11 +583,11 @@ namespace VPet_Simulator.Windows Main.ToolBar.AddMenuButton(VPet_Simulator.Core.ToolBar.MenuType.Setting, "操作教程".Translate(), () => { if (LocalizeCore.CurrentCulture == "zh-Hans") - ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial.html"); + ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial.html"); else if (LocalizeCore.CurrentCulture == "zh-Hant") - ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial_zht.html"); + ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial_zht.html"); else - ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial_en.html"); + ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial_en.html"); }); Main.ToolBar.AddMenuButton(VPet_Simulator.Core.ToolBar.MenuType.Setting, "反馈中心".Translate(), () => { Main.ToolBar.Visibility = Visibility.Collapsed; new winReport(this).Show(); }); Main.ToolBar.AddMenuButton(VPet_Simulator.Core.ToolBar.MenuType.Setting, "设置面板".Translate(), () => @@ -648,11 +649,11 @@ namespace VPet_Simulator.Windows m_menu.MenuItems.Add(new MenuItem("操作教程".Translate(), (x, y) => { if (LocalizeCore.CurrentCulture == "zh-Hans") - ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial.html"); + ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial.html"); else if (LocalizeCore.CurrentCulture == "zh-Hant") - ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial_zht.html"); + ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial_zht.html"); else - ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial_en.html"); + ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial_en.html"); })); m_menu.MenuItems.Add(new MenuItem("重置位置与状态".Translate(), (x, y) => { @@ -693,15 +694,15 @@ namespace VPet_Simulator.Windows HashCheck = hashCheck; - if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial.html") && Set["SingleTips"].GetDateTime("tutorial") <= new DateTime(2023, 6, 20)) + if (File.Exists(ExtensionValue.BaseDirectory + @"\Tutorial.html") && Set["SingleTips"].GetDateTime("tutorial") <= new DateTime(2023, 6, 20)) { Set["SingleTips"].SetDateTime("tutorial", DateTime.Now); if (LocalizeCore.CurrentCulture == "zh-Hans") - ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial.html"); + ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial.html"); else if (LocalizeCore.CurrentCulture == "zh-Hant") - ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial_zht.html"); + ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial_zht.html"); else - ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial_en.html"); + ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial_en.html"); } if (!Set["SingleTips"].GetBool("helloworld")) { diff --git a/VPet-Simulator.Windows/WinDesign/winGameSetting.xaml.cs b/VPet-Simulator.Windows/WinDesign/winGameSetting.xaml.cs index 061ac62..e1151f9 100644 --- a/VPet-Simulator.Windows/WinDesign/winGameSetting.xaml.cs +++ b/VPet-Simulator.Windows/WinDesign/winGameSetting.xaml.cs @@ -844,9 +844,9 @@ namespace VPet_Simulator.Windows IWshRuntimeLibrary.IWshShortcut shortcut = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(path); shortcut.Description = "VPet Simulator"; - shortcut.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory; + shortcut.WorkingDirectory = ExtensionValue.BaseDirectory; shortcut.TargetPath = shortcutAddress; - shortcut.IconLocation = AppDomain.CurrentDomain.BaseDirectory + @"vpeticon.ico"; + shortcut.IconLocation = ExtensionValue.BaseDirectory + @"vpeticon.ico"; try { shortcut.Save(); @@ -1107,9 +1107,9 @@ namespace VPet_Simulator.Windows reloadid = mw.Set.Statistics[(gint)"savetimes"]; CBSaveReLoad.SelectedItem = null; CBSaveReLoad.Items.Clear(); - if (Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\BackUP")) + if (Directory.Exists(ExtensionValue.BaseDirectory + @"\BackUP")) { - foreach (var file in new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + @"\BackUP") + foreach (var file in new DirectoryInfo(ExtensionValue.BaseDirectory + @"\BackUP") .GetFiles().OrderByDescending(x => x.LastWriteTime)) { if (file.Extension.ToLower() == ".lps") @@ -1127,7 +1127,7 @@ namespace VPet_Simulator.Windows if (CBSaveReLoad.SelectedItem != null) { string txt = (string)CBSaveReLoad.SelectedItem; - string path = AppDomain.CurrentDomain.BaseDirectory + @"\BackUP\" + txt + ".lps"; + string path = ExtensionValue.BaseDirectory + @"\BackUP\" + txt + ".lps"; if (File.Exists(path)) { try