From a7f4f8b326387d0d16db0a7bf85e8a91d7fdd5a0 Mon Sep 17 00:00:00 2001 From: CroakFang <1605296300@qq.com> Date: Tue, 14 Feb 2023 05:05:42 +0800 Subject: [PATCH] bug fix --- Assets/Scripts/Config.cs | 6 ++---- Assets/Scripts/Manifest/ManifestDB.cs | 12 ++++++++++-- Assets/Scripts/UmaDatabase/UmaDataTypes.cs | 3 +-- .../UmaDatabase/UmaDatabaseController.cs | 17 ++++++++--------- Assets/Scripts/UmaViewerUI.cs | 8 +++++++- 5 files changed, 28 insertions(+), 18 deletions(-) diff --git a/Assets/Scripts/Config.cs b/Assets/Scripts/Config.cs index 4465a5c..ab583d7 100644 --- a/Assets/Scripts/Config.cs +++ b/Assets/Scripts/Config.cs @@ -36,8 +36,7 @@ public class Config } catch (Exception ex) { - UmaViewerUI.Instance.MessagePannel.SetActive(true); - UmaViewerUI.Instance.MessageText.text = "Config load error. Using default. " + ex.Message; + UmaViewerUI.Instance.ShowMessage("Config load error. Using default. " + ex.Message); MainPath = $@"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "Low"}\Cygames\umamusume"; } } @@ -48,8 +47,7 @@ public class Config public void UpdateConfig() { File.WriteAllText(configPath, JsonUtility.ToJson(this, true)); - UmaViewerUI.Instance.MessagePannel.SetActive(true); - UmaViewerUI.Instance.MessageText.text = "The configuration has changed. Please restart the application."; + UmaViewerUI.Instance.ShowMessage("The configuration has changed. Please restart the application."); } } diff --git a/Assets/Scripts/Manifest/ManifestDB.cs b/Assets/Scripts/Manifest/ManifestDB.cs index 93e53eb..d642764 100644 --- a/Assets/Scripts/Manifest/ManifestDB.cs +++ b/Assets/Scripts/Manifest/ManifestDB.cs @@ -199,9 +199,17 @@ public class ManifestDB } callback?.Invoke($"Decompress master.mdb"); - var masterPath = $"{Path.GetDirectoryName(DBPath)}/master/master.mdb"; + var masterPath = $"{Path.GetDirectoryName(DBPath)}/master/master_umaviewer.mdb"; Directory.CreateDirectory(Path.GetDirectoryName(masterPath)); - File.WriteAllBytes(masterPath, LZ4Util.DecompressFromFile(path)); + try + { + File.WriteAllBytes(masterPath, LZ4Util.DecompressFromFile(path)); + } + catch + { + callback?.Invoke($"Decompress master.mdb error"); + yield break; + } } } diff --git a/Assets/Scripts/UmaDatabase/UmaDataTypes.cs b/Assets/Scripts/UmaDatabase/UmaDataTypes.cs index b0b2aeb..8a96cf3 100644 --- a/Assets/Scripts/UmaDatabase/UmaDataTypes.cs +++ b/Assets/Scripts/UmaDatabase/UmaDataTypes.cs @@ -30,8 +30,7 @@ public class UmaDatabaseEntry var path = $"{Config.Instance.MainPath}\\dat\\{entry.Url.Substring(0, 2)}\\{entry.Url}"; UmaViewerDownload.DownloadAssetSync(entry, path , delegate(string msg) { - UmaViewerUI.Instance.MessagePannel.SetActive(true); - UmaViewerUI.Instance.MessageText.text = msg; + UmaViewerUI.Instance.ShowMessage(msg); }); } diff --git a/Assets/Scripts/UmaDatabase/UmaDatabaseController.cs b/Assets/Scripts/UmaDatabase/UmaDatabaseController.cs index 168703d..c59c5b8 100644 --- a/Assets/Scripts/UmaDatabase/UmaDatabaseController.cs +++ b/Assets/Scripts/UmaDatabase/UmaDatabaseController.cs @@ -60,13 +60,14 @@ public class UmaDatabaseController if(Config.Instance.WorkMode == WorkMode.Standalone) { metaDb = new SqliteConnection($@"Data Source={Config.Instance.MainPath}\meta_umaviewer;"); + masterDb = new SqliteConnection($@"Data Source={Config.Instance.MainPath}\master\master_umaviewer.mdb;"); } else { metaDb = new SqliteConnection($@"Data Source={Config.Instance.MainPath}\meta;"); + masterDb = new SqliteConnection($@"Data Source={Config.Instance.MainPath}\master\master.mdb;"); } - masterDb = new SqliteConnection($@"Data Source={Config.Instance.MainPath}\master\master.mdb;"); metaDb.Open(); MetaEntries = ReadMeta(metaDb); @@ -77,21 +78,19 @@ public class UmaDatabaseController LiveData = ReadAllLiveData(masterDb); DressData = ReadAllDressData(masterDb); } - catch + catch { - UmaViewerUI.Instance.MessagePannel.SetActive(true); - UmaViewerUI.Instance.MessageText.text = $"Database not found at: {Config.Instance.MainPath}"; + CloseAllConnection(); + var msg = $"Database not found at: {Config.Instance.MainPath}"; if(Config.Instance.WorkMode == WorkMode.Standalone) { - UmaViewerUI.Instance.MessageText.text += "\nPlease update the database in the settings panel"; + msg += "\nPlease update the database in the settings panel"; } else { - UmaViewerUI.Instance.MessageText.text += "\nPlease install the dmm game client"; + msg += "\nPlease install the dmm game client"; } - - masterDb.Close(); - metaDb.Close(); + UmaViewerUI.Instance.ShowMessage(msg); } } diff --git a/Assets/Scripts/UmaViewerUI.cs b/Assets/Scripts/UmaViewerUI.cs index 6f29238..b9efea3 100644 --- a/Assets/Scripts/UmaViewerUI.cs +++ b/Assets/Scripts/UmaViewerUI.cs @@ -1160,7 +1160,7 @@ public class UmaViewerUI : MonoBehaviour if (UpdateResVerCoroutine != null&&Config.Instance.WorkMode != WorkMode.Standalone) return; UmaDatabaseController.Instance.CloseAllConnection(); ManifestDB dB = new ManifestDB(); - UpdateResVerCoroutine = dB.UpdateResourceVersion(delegate (string msg) { MessagePannel.SetActive(true); MessageText.text = msg; }); + UpdateResVerCoroutine = dB.UpdateResourceVersion(delegate (string msg) { ShowMessage(msg); }); StartCoroutine(UpdateResVerCoroutine); } @@ -1191,4 +1191,10 @@ public class UmaViewerUI : MonoBehaviour Shader.SetGlobalFloat("_GlobalOutlineWidth", val); } + public void ShowMessage(string msg) + { + MessagePannel.SetActive(true); + MessageText.text = msg; + } + }