修复可能导致缺少模组Core的错误

This commit is contained in:
ZouJin 2023-09-10 22:03:47 +08:00
parent 5549edf8b1
commit 89802e4b8d
5 changed files with 48 additions and 36 deletions

View File

@ -31,7 +31,7 @@ namespace VPet_Simulator.Core
Resolution = resolution; Resolution = resolution;
} }
public static string CachePath = AppDomain.CurrentDomain.BaseDirectory + @"\cache"; public static string CachePath = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName + @"\cache";
/// <summary> /// <summary>
/// 图像名字字典: 动画类型->动画名字 /// 图像名字字典: 动画类型->动画名字

View File

@ -1,8 +1,12 @@
using System; using LinePutScript.Localization.WPF;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows;
using static VPet_Simulator.Core.GraphHelper; using static VPet_Simulator.Core.GraphHelper;
namespace VPet_Simulator.Windows.Interface namespace VPet_Simulator.Windows.Interface
@ -31,4 +35,11 @@ namespace VPet_Simulator.Windows.Interface
return rel > 2; // 推荐rel为1.0-1.4之间 超过2.0就是超模 return rel > 2; // 推荐rel为1.0-1.4之间 超过2.0就是超模
} }
} }
public static class ExtensionValue
{
/// <summary>
/// 当前运行目录
/// </summary>
public static string BaseDirectory = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName;
}
} }

View File

@ -174,14 +174,14 @@ namespace VPet_Simulator.Windows
//Set.Statistics[(gint)"stat_time"] = (int)(DateTime.Now - timecount).TotalMinutes; //Set.Statistics[(gint)"stat_time"] = (int)(DateTime.Now - timecount).TotalMinutes;
//timecount = DateTime.Now; //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")) if (!Directory.Exists(ExtensionValue.BaseDirectory + @"\BackUP"))
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + @"\BackUP"); Directory.CreateDirectory(ExtensionValue.BaseDirectory + @"\BackUP");
if (Core != null && Core.Save != null) if (Core != null && Core.Save != null)
{ {
var ds = new List<string>(Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory + @"\BackUP", "*.lps")).FindAll(x => x.Contains('_')).OrderBy(x => var ds = new List<string>(Directory.GetFiles(ExtensionValue.BaseDirectory + @"\BackUP", "*.lps")).FindAll(x => x.Contains('_')).OrderBy(x =>
{ {
if (int.TryParse(x.Split('_')[1], out int i)) if (int.TryParse(x.Split('_')[1], out int i))
return i; return i;
@ -192,11 +192,11 @@ namespace VPet_Simulator.Windows
File.Delete(ds[0]); File.Delete(ds[0]);
ds.RemoveAt(0); ds.RemoveAt(0);
} }
if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + $"\\BackUP\\Save_{st}.lps")) if (File.Exists(ExtensionValue.BaseDirectory + $"\\BackUP\\Save_{st}.lps"))
File.Delete(AppDomain.CurrentDomain.BaseDirectory + $"\\BackUP\\Save_{st}.lps"); File.Delete(ExtensionValue.BaseDirectory + $"\\BackUP\\Save_{st}.lps");
if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\Save.lps")) if (File.Exists(ExtensionValue.BaseDirectory + @"\Save.lps"))
File.Move(AppDomain.CurrentDomain.BaseDirectory + @"\Save.lps", AppDomain.CurrentDomain.BaseDirectory + $"\\BackUP\\Save_{st}.lps"); File.Move(ExtensionValue.BaseDirectory + @"\Save.lps", ExtensionValue.BaseDirectory + $"\\BackUP\\Save_{st}.lps");
var l = Core.Save.ToLine(); var l = Core.Save.ToLine();
if (HashCheck) if (HashCheck)
{ {
@ -204,7 +204,7 @@ namespace VPet_Simulator.Windows
} }
else else
l[(gint)"hash"] = -1; l[(gint)"hash"] = -1;
File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + @"\Save.lps", l.ToString()); File.WriteAllText(ExtensionValue.BaseDirectory + @"\Save.lps", l.ToString());
} }
} }
} }

View File

@ -44,6 +44,7 @@ namespace VPet_Simulator.Windows
#else #else
PNGAnimation.MaxLoadNumber = 20; PNGAnimation.MaxLoadNumber = 20;
#endif #endif
ExtensionValue.BaseDirectory = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName;
LocalizeCore.StoreTranslation = true; LocalizeCore.StoreTranslation = true;
CultureInfo.CurrentCulture = new CultureInfo(CultureInfo.CurrentCulture.Name); CultureInfo.CurrentCulture = new CultureInfo(CultureInfo.CurrentCulture.Name);
@ -70,9 +71,9 @@ namespace VPet_Simulator.Windows
try 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 else
Set = new Setting("Setting#VPET:|\n"); Set = new Setting("Setting#VPET:|\n");
@ -92,8 +93,8 @@ namespace VPet_Simulator.Windows
_dwmEnabled = Win32.Dwmapi.DwmIsCompositionEnabled(); _dwmEnabled = Win32.Dwmapi.DwmIsCompositionEnabled();
_hwnd = new WindowInteropHelper(this).EnsureHandle(); _hwnd = new WindowInteropHelper(this).EnsureHandle();
//if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\ChatGPTSetting.json")) //if (File.Exists(ExtensionValue.BaseDirectory + @"\ChatGPTSetting.json"))
// CGPTClient = ChatGPTClient.Load(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"\ChatGPTSetting.json")); // CGPTClient = ChatGPTClient.Load(File.ReadAllText(ExtensionValue.BaseDirectory + @"\ChatGPTSetting.json"));
//this.Width = 400 * ZoomSlider.Value; //this.Width = 400 * ZoomSlider.Value;
//this.Height = 450 * ZoomSlider.Value; //this.Height = 450 * ZoomSlider.Value;
InitializeComponent(); InitializeComponent();
@ -233,9 +234,9 @@ namespace VPet_Simulator.Windows
public void LoadLatestSave(string petname) public void LoadLatestSave(string petname)
{ {
if (Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\BackUP")) if (Directory.Exists(ExtensionValue.BaseDirectory + @"\BackUP"))
{ {
var ds = new List<string>(Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory + @"\BackUP", "*.lps")).FindAll(x => x.Contains('_')).OrderBy(x => var ds = new List<string>(Directory.GetFiles(ExtensionValue.BaseDirectory + @"\BackUP", "*.lps")).FindAll(x => x.Contains('_')).OrderBy(x =>
{ {
if (int.TryParse(x.Split('_')[1], out int i)) if (int.TryParse(x.Split('_')[1], out int i))
return i; return i;
@ -357,9 +358,9 @@ namespace VPet_Simulator.Windows
else//新玩家,默认设置为 else//新玩家,默认设置为
Set["CGPT"][(gstr)"type"] = "LB"; 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())); await Dispatcher.InvokeAsync(new Action(() => LoadingText.Content = "尝试加载游戏存档".Translate()));
//加载存档 //加载存档
Core.Controller = new MWController(this); Core.Controller = new MWController(this);
if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\Save.lps")) if (File.Exists(ExtensionValue.BaseDirectory + @"\Save.lps"))
try 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); LoadLatestSave(petloader.PetName);
@ -582,11 +583,11 @@ namespace VPet_Simulator.Windows
Main.ToolBar.AddMenuButton(VPet_Simulator.Core.ToolBar.MenuType.Setting, "操作教程".Translate(), () => Main.ToolBar.AddMenuButton(VPet_Simulator.Core.ToolBar.MenuType.Setting, "操作教程".Translate(), () =>
{ {
if (LocalizeCore.CurrentCulture == "zh-Hans") if (LocalizeCore.CurrentCulture == "zh-Hans")
ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial.html"); ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial.html");
else if (LocalizeCore.CurrentCulture == "zh-Hant") else if (LocalizeCore.CurrentCulture == "zh-Hant")
ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial_zht.html"); ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial_zht.html");
else 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(), () => { Main.ToolBar.Visibility = Visibility.Collapsed; new winReport(this).Show(); });
Main.ToolBar.AddMenuButton(VPet_Simulator.Core.ToolBar.MenuType.Setting, "设置面板".Translate(), () => 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) => m_menu.MenuItems.Add(new MenuItem("操作教程".Translate(), (x, y) =>
{ {
if (LocalizeCore.CurrentCulture == "zh-Hans") if (LocalizeCore.CurrentCulture == "zh-Hans")
ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial.html"); ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial.html");
else if (LocalizeCore.CurrentCulture == "zh-Hant") else if (LocalizeCore.CurrentCulture == "zh-Hant")
ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial_zht.html"); ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial_zht.html");
else 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) => m_menu.MenuItems.Add(new MenuItem("重置位置与状态".Translate(), (x, y) =>
{ {
@ -693,15 +694,15 @@ namespace VPet_Simulator.Windows
HashCheck = hashCheck; 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); Set["SingleTips"].SetDateTime("tutorial", DateTime.Now);
if (LocalizeCore.CurrentCulture == "zh-Hans") if (LocalizeCore.CurrentCulture == "zh-Hans")
ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial.html"); ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial.html");
else if (LocalizeCore.CurrentCulture == "zh-Hant") else if (LocalizeCore.CurrentCulture == "zh-Hant")
ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial_zht.html"); ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial_zht.html");
else else
ExtensionSetting.StartURL(AppDomain.CurrentDomain.BaseDirectory + @"\Tutorial_en.html"); ExtensionSetting.StartURL(ExtensionValue.BaseDirectory + @"\Tutorial_en.html");
} }
if (!Set["SingleTips"].GetBool("helloworld")) if (!Set["SingleTips"].GetBool("helloworld"))
{ {

View File

@ -844,9 +844,9 @@ namespace VPet_Simulator.Windows
IWshRuntimeLibrary.IWshShortcut shortcut = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(path); IWshRuntimeLibrary.IWshShortcut shortcut = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(path);
shortcut.Description = "VPet Simulator"; shortcut.Description = "VPet Simulator";
shortcut.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory; shortcut.WorkingDirectory = ExtensionValue.BaseDirectory;
shortcut.TargetPath = shortcutAddress; shortcut.TargetPath = shortcutAddress;
shortcut.IconLocation = AppDomain.CurrentDomain.BaseDirectory + @"vpeticon.ico"; shortcut.IconLocation = ExtensionValue.BaseDirectory + @"vpeticon.ico";
try try
{ {
shortcut.Save(); shortcut.Save();
@ -1107,9 +1107,9 @@ namespace VPet_Simulator.Windows
reloadid = mw.Set.Statistics[(gint)"savetimes"]; reloadid = mw.Set.Statistics[(gint)"savetimes"];
CBSaveReLoad.SelectedItem = null; CBSaveReLoad.SelectedItem = null;
CBSaveReLoad.Items.Clear(); 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)) .GetFiles().OrderByDescending(x => x.LastWriteTime))
{ {
if (file.Extension.ToLower() == ".lps") if (file.Extension.ToLower() == ".lps")
@ -1127,7 +1127,7 @@ namespace VPet_Simulator.Windows
if (CBSaveReLoad.SelectedItem != null) if (CBSaveReLoad.SelectedItem != null)
{ {
string txt = (string)CBSaveReLoad.SelectedItem; string txt = (string)CBSaveReLoad.SelectedItem;
string path = AppDomain.CurrentDomain.BaseDirectory + @"\BackUP\" + txt + ".lps"; string path = ExtensionValue.BaseDirectory + @"\BackUP\" + txt + ".lps";
if (File.Exists(path)) if (File.Exists(path))
{ {
try try