修复可能导致缺少模组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;
}
public static string CachePath = AppDomain.CurrentDomain.BaseDirectory + @"\cache";
public static string CachePath = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName + @"\cache";
/// <summary>
/// 图像名字字典: 动画类型->动画名字

View File

@ -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
{
/// <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;
//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<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))
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());
}
}
}

View File

@ -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<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))
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"))
{

View File

@ -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