From 044bedca92aecfe798a094c31d51d7887b278e8a Mon Sep 17 00:00:00 2001 From: Tastror Date: Wed, 24 Aug 2022 12:40:28 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20=E7=BB=9F=E4=B8=80gui.json=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E7=9A=84=E5=86=85=E5=AE=B9=EF=BC=8C=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E5=8C=96=E4=B8=8D=E5=85=BC=E5=AE=B9=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MeoAsstGui/Helper/DragItemViewModel.cs | 26 ++++++ src/MeoAsstGui/Helper/ViewStatusStorage.cs | 20 +++++ .../ViewModels/SettingsViewModel.cs | 22 ++--- .../ViewModels/TaskQueueViewModel.cs | 84 +++++++++++++------ 4 files changed, 117 insertions(+), 35 deletions(-) diff --git a/src/MeoAsstGui/Helper/DragItemViewModel.cs b/src/MeoAsstGui/Helper/DragItemViewModel.cs index 0d8ff45c8b..94fd442700 100644 --- a/src/MeoAsstGui/Helper/DragItemViewModel.cs +++ b/src/MeoAsstGui/Helper/DragItemViewModel.cs @@ -28,10 +28,36 @@ namespace MeoAsstGui public DragItemViewModel(string name, string storageKey) { this.Name = name; + this.OriginalName = name; this._isCheckedStorageKey = storageKey + name + ".IsChecked"; this.IsChecked = System.Convert.ToBoolean(ViewStatusStorage.Get(_isCheckedStorageKey, bool.TrueString)); } + /// + /// Initializes a new instance of the class. + /// + /// The name (viewed name). + /// The original name (may not be the same as viewed name). + /// The storage key. + public DragItemViewModel(string name, string original_name, string storageKey) + { + this.Name = name; + this.OriginalName = original_name; + this._isCheckedStorageKey = storageKey + original_name + ".IsChecked"; + this.IsChecked = System.Convert.ToBoolean(ViewStatusStorage.Get(_isCheckedStorageKey, bool.TrueString)); + } + + private string _original_name; + + /// + /// Gets or sets the original_name. + /// + public string OriginalName + { + get { return _original_name; } + set { SetAndNotify(ref _original_name, value); } + } + private string _name; /// diff --git a/src/MeoAsstGui/Helper/ViewStatusStorage.cs b/src/MeoAsstGui/Helper/ViewStatusStorage.cs index f5eaf3d773..91adedb566 100644 --- a/src/MeoAsstGui/Helper/ViewStatusStorage.cs +++ b/src/MeoAsstGui/Helper/ViewStatusStorage.cs @@ -101,6 +101,26 @@ namespace MeoAsstGui return true; } + /// + /// Deletes configuration. + /// + /// The key. + /// Whether the operation is successful. + public static bool Delete(string key) + { + try + { + _viewStatus.Remove(key); + Save(); + } + catch (Exception) + { + return false; + } + + return true; + } + /// /// Saves configuration. /// diff --git a/src/MeoAsstGui/ViewModels/SettingsViewModel.cs b/src/MeoAsstGui/ViewModels/SettingsViewModel.cs index b91713b655..7146ac545c 100644 --- a/src/MeoAsstGui/ViewModels/SettingsViewModel.cs +++ b/src/MeoAsstGui/ViewModels/SettingsViewModel.cs @@ -119,13 +119,13 @@ namespace MeoAsstGui /* 基建设置 */ var facility_list = new string[] { - Localization.GetString("Mfg"), - Localization.GetString("Trade"), - Localization.GetString("Control"), - Localization.GetString("Power"), - Localization.GetString("Reception"), - Localization.GetString("Office"), - Localization.GetString("Dorm"), + "Mfg", + "Trade", + "Control", + "Power", + "Reception", + "Office", + "Dorm", }; var temp_order_list = new List(new DragItemViewModel[facility_list.Length]); @@ -136,11 +136,11 @@ namespace MeoAsstGui if (!parsed || order < 0) { - temp_order_list[i] = new DragItemViewModel(facility, "Infrast."); + temp_order_list[i] = new DragItemViewModel(Localization.GetString(facility), facility, "Infrast."); } else { - temp_order_list[order] = new DragItemViewModel(facility, "Infrast."); + temp_order_list[order] = new DragItemViewModel(Localization.GetString(facility), facility, "Infrast."); } } @@ -574,7 +574,7 @@ namespace MeoAsstGui continue; } - orderList.Add(_facilityKey[item.Name]); + orderList.Add(_facilityKey[item.OriginalName]); } return orderList; @@ -587,7 +587,7 @@ namespace MeoAsstGui { for (int i = 0; i < InfrastItemViewModels.Count; i++) { - ViewStatusStorage.Set("Infrast.Order." + InfrastItemViewModels[i].Name, i.ToString()); + ViewStatusStorage.Set("Infrast.Order." + InfrastItemViewModels[i].OriginalName, i.ToString()); } } diff --git a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs index 0d96766165..9c30cee075 100644 --- a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs +++ b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs @@ -153,21 +153,51 @@ namespace MeoAsstGui } } + + // TODO: Delete this. + + /// + /// Delete old configurations. + /// Note that this feature ought to be removed in later versions. + /// + public void DeleteOldConfig() + { + string[] old_list_name = new string[] + { + "开始唤醒", "自动公招", "基建换班", "刷理智", "访问好友", "收取信用及购物", "领取日常奖励", "自动肉鸽", + "宿舍", "制造站", "贸易站", "发电站", "会客室", "办公室", "控制中枢", + "ウェイクアップ", "公開求人", "基地仕事", "作戦", "戦友訪問", "FP交換", "報酬受取", "自動ローグ", + "宿舎", "製造所", "貿易所", "発電所", "応接室", "事務所", "制御中枢", + "웨이크업", "공개모집", "기반시설 교대", "작전", "친구 방문", "상점", "일일 퀘스트 보상을 수집", "통합전략", + "숙소", "제조소", "무역소", "발전소", "응접실", "사무실", "제어 센터", + }; + foreach (var name in old_list_name) + { + ViewStatusStorage.Delete("TaskQueue." + name + ".IsChecked"); + ViewStatusStorage.Delete("TaskQueue.Order." + name); + ViewStatusStorage.Delete("Infrast." + name + ".IsChecked"); + ViewStatusStorage.Delete("Infrast.Order." + name); + } + } + + /// /// Initializes items. /// public void InitializeItems() { + DeleteOldConfig(); + string[] task_list = new string[] { - Localization.GetString("WakeUp"), - Localization.GetString("Recruiting"), - Localization.GetString("Base"), - Localization.GetString("Combat"), - Localization.GetString("Visiting"), - Localization.GetString("Mall"), - Localization.GetString("Mission"), - Localization.GetString("AutoRoguelike"), + "WakeUp", + "Recruiting", + "Base", + "Combat", + "Visiting", + "Mall", + "Mission", + "AutoRoguelike", }; ActionAfterCompletedList = new List> { @@ -189,8 +219,8 @@ namespace MeoAsstGui int order; bool parsed = int.TryParse(ViewStatusStorage.Get("TaskQueue.Order." + task, "-1"), out order); - var vm = new DragItemViewModel(task, "TaskQueue."); - if (task == Localization.GetString("AutoRoguelike")) + var vm = new DragItemViewModel(Localization.GetString(task), task, "TaskQueue."); + if (task == "AutoRoguelike") { vm.IsChecked = false; } @@ -443,7 +473,7 @@ namespace MeoAsstGui { foreach (var item in TaskItemViewModels) { - if (item.Name == Localization.GetString("AutoRoguelike")) + if (item.OriginalName == "AutoRoguelike") { continue; } @@ -606,7 +636,7 @@ namespace MeoAsstGui { foreach (var item in TaskItemViewModels) { - if (item.Name == Localization.GetString("AutoRoguelike")) + if (item.OriginalName == "AutoRoguelike") { continue; } @@ -635,6 +665,16 @@ namespace MeoAsstGui Idle = false; + // 点击开始后先保存两大顺序:任务顺序和基建顺序 + // TODO: optimize me: 要不要改成类似 check,在拖动后保存? + int index = 0; + foreach (var item in TaskItemViewModels) + { + ViewStatusStorage.Set("TaskQueue.Order." + item.OriginalName, index.ToString()); + ++index; + } + _container.Get().SaveInfrastOrderList(); + ClearLog(); AddLog(Localization.GetString("ConnectingToEmulator")); @@ -678,47 +718,43 @@ namespace MeoAsstGui // 直接遍历TaskItemViewModels里面的内容,是排序后的 int count = 0; - int index = 0; foreach (var item in TaskItemViewModels) { - ViewStatusStorage.Set("TaskQueue.Order." + item.Name, index.ToString()); - ++index; - if (item.IsChecked == false) { continue; } ++count; - if (item.Name == Localization.GetString("Base")) + if (item.OriginalName == "Base") { ret &= appendInfrast(); } - else if (item.Name == Localization.GetString("WakeUp")) + else if (item.OriginalName == "WakeUp") { ret &= appendStart(); } - else if (item.Name == Localization.GetString("Combat")) + else if (item.OriginalName == "Combat") { ret &= appendFight(); } - else if (item.Name == Localization.GetString("Recruiting")) + else if (item.OriginalName == "Recruiting") { ret &= appendRecruit(); } - else if (item.Name == Localization.GetString("Visiting")) + else if (item.OriginalName == "Visiting") { ret &= asstProxy.AsstAppendVisit(); } - else if (item.Name == Localization.GetString("Mall")) + else if (item.OriginalName == "Mall") { ret &= appendMall(); } - else if (item.Name == Localization.GetString("Mission")) + else if (item.OriginalName == "Mission") { ret &= asstProxy.AsstAppendAward(); } - else if (item.Name == Localization.GetString("AutoRoguelike")) + else if (item.OriginalName == "AutoRoguelike") { ret &= appendRoguelike(); } From 366f0311c4a9bb31f1e4f4dbfd3824b9be29cd34 Mon Sep 17 00:00:00 2001 From: Tastror Date: Wed, 24 Aug 2022 19:49:21 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20=E5=B0=86=E6=97=A7=E6=9C=89?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BF=9D=E5=AD=98=E5=90=8E=E5=86=8D=E5=88=A0?= =?UTF-8?q?=E9=99=A4=EF=BC=88=E4=B8=AD=E6=96=87=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModels/TaskQueueViewModel.cs | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs index 9c30cee075..443d76813e 100644 --- a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs +++ b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs @@ -162,6 +162,55 @@ namespace MeoAsstGui /// public void DeleteOldConfig() { + + string[] saved_list_name_1 = new string[] + { + "开始唤醒", "自动公招", "基建换班", "刷理智", "访问好友", "收取信用及购物", "领取日常奖励", "自动肉鸽", + }; + string[] saved_list_name_1_ori = new string[] + { + "WakeUp", "Recruiting", "Base", "Combat", "Visiting", "Mall", "Mission", "AutoRoguelike", + }; + int index = 0; + foreach (var name in saved_list_name_1) + { + string check = ViewStatusStorage.Get("TaskQueue." + name + ".IsChecked", string.Empty); + string order = ViewStatusStorage.Get("TaskQueue.Order." + name, string.Empty); + if (check != string.Empty) + { + ViewStatusStorage.Set("TaskQueue." + saved_list_name_1_ori[index] + ".IsChecked", check); + } + if (order != string.Empty) + { + ViewStatusStorage.Set("TaskQueue.Order." + saved_list_name_1_ori[index], order); + } + index++; + } + + string[] saved_list_name_2 = new string[] + { + "制造站", "贸易站", "控制中枢", "发电站", "会客室", "办公室", "宿舍", + }; + string[] saved_list_name_2_ori = new string[] + { + "Mfg", "Trade", "Control", "Power", "Reception", "Office", "Dorm", + }; + index = 0; + foreach (var name in saved_list_name_2) + { + string check = ViewStatusStorage.Get("Infrast." + name + ".IsChecked", string.Empty); + string order = ViewStatusStorage.Get("Infrast.Order." + name, string.Empty); + if (check != string.Empty) + { + ViewStatusStorage.Set("Infrast." + saved_list_name_2_ori[index] + ".IsChecked", check); + } + if (order != string.Empty) + { + ViewStatusStorage.Set("Infrast.Order." + saved_list_name_2_ori[index], order); + } + index++; + } + string[] old_list_name = new string[] { "开始唤醒", "自动公招", "基建换班", "刷理智", "访问好友", "收取信用及购物", "领取日常奖励", "自动肉鸽", From d9c9b227b2b2ba56d2f8d02b5d5e09ae93e3c1ee Mon Sep 17 00:00:00 2001 From: Tastror Date: Thu, 25 Aug 2022 17:52:26 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20=E5=8E=BB=E9=99=A4=E9=83=A8?= =?UTF-8?q?=E5=88=86=E7=A1=AC=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModels/TaskQueueViewModel.cs | 30 +++++++------------ 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs index 443d76813e..2406a179f4 100644 --- a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs +++ b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs @@ -164,51 +164,41 @@ namespace MeoAsstGui { string[] saved_list_name_1 = new string[] - { - "开始唤醒", "自动公招", "基建换班", "刷理智", "访问好友", "收取信用及购物", "领取日常奖励", "自动肉鸽", - }; - string[] saved_list_name_1_ori = new string[] { "WakeUp", "Recruiting", "Base", "Combat", "Visiting", "Mall", "Mission", "AutoRoguelike", }; - int index = 0; foreach (var name in saved_list_name_1) { - string check = ViewStatusStorage.Get("TaskQueue." + name + ".IsChecked", string.Empty); - string order = ViewStatusStorage.Get("TaskQueue.Order." + name, string.Empty); + string local_name = Localization.GetString(name); + string check = ViewStatusStorage.Get("TaskQueue." + local_name + ".IsChecked", string.Empty); + string order = ViewStatusStorage.Get("TaskQueue.Order." + local_name, string.Empty); if (check != string.Empty) { - ViewStatusStorage.Set("TaskQueue." + saved_list_name_1_ori[index] + ".IsChecked", check); + ViewStatusStorage.Set("TaskQueue." + name + ".IsChecked", check); } if (order != string.Empty) { - ViewStatusStorage.Set("TaskQueue.Order." + saved_list_name_1_ori[index], order); + ViewStatusStorage.Set("TaskQueue.Order." + name, order); } - index++; } string[] saved_list_name_2 = new string[] - { - "制造站", "贸易站", "控制中枢", "发电站", "会客室", "办公室", "宿舍", - }; - string[] saved_list_name_2_ori = new string[] { "Mfg", "Trade", "Control", "Power", "Reception", "Office", "Dorm", }; - index = 0; foreach (var name in saved_list_name_2) { - string check = ViewStatusStorage.Get("Infrast." + name + ".IsChecked", string.Empty); - string order = ViewStatusStorage.Get("Infrast.Order." + name, string.Empty); + string local_name = Localization.GetString(name); + string check = ViewStatusStorage.Get("Infrast." + local_name + ".IsChecked", string.Empty); + string order = ViewStatusStorage.Get("Infrast.Order." + local_name, string.Empty); if (check != string.Empty) { - ViewStatusStorage.Set("Infrast." + saved_list_name_2_ori[index] + ".IsChecked", check); + ViewStatusStorage.Set("Infrast." + name + ".IsChecked", check); } if (order != string.Empty) { - ViewStatusStorage.Set("Infrast.Order." + saved_list_name_2_ori[index], order); + ViewStatusStorage.Set("Infrast.Order." + name, order); } - index++; } string[] old_list_name = new string[] From 69eced2044f39f1dfa9ceaa5361f6688bf8aacf8 Mon Sep 17 00:00:00 2001 From: Tastror Date: Thu, 25 Aug 2022 22:43:42 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dlinkstart=E4=BB=A5?= =?UTF-8?q?=E5=90=8E=E7=9A=84=E9=97=AA=E9=80=80bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MeoAsstGui/ViewModels/SettingsViewModel.cs | 11 +---------- src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs | 4 ++++ 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/MeoAsstGui/ViewModels/SettingsViewModel.cs b/src/MeoAsstGui/ViewModels/SettingsViewModel.cs index 7146ac545c..e72d9b6ae0 100644 --- a/src/MeoAsstGui/ViewModels/SettingsViewModel.cs +++ b/src/MeoAsstGui/ViewModels/SettingsViewModel.cs @@ -146,14 +146,6 @@ namespace MeoAsstGui InfrastItemViewModels = new ObservableCollection(temp_order_list); - _facilityKey.Add(Localization.GetString("Dorm"), "Dorm"); - _facilityKey.Add(Localization.GetString("Mfg"), "Mfg"); - _facilityKey.Add(Localization.GetString("Trade"), "Trade"); - _facilityKey.Add(Localization.GetString("Power"), "Power"); - _facilityKey.Add(Localization.GetString("Reception"), "Reception"); - _facilityKey.Add(Localization.GetString("Office"), "Office"); - _facilityKey.Add(Localization.GetString("Control"), "Control"); - UsesOfDronesList = new List { new CombData { Display = Localization.GetString("DronesNotUse"), Value = "_NotUse" }, @@ -480,7 +472,6 @@ namespace MeoAsstGui } /* 基建设置 */ - private readonly Dictionary _facilityKey = new Dictionary(); /// /// Gets or sets the infrast item view models. @@ -574,7 +565,7 @@ namespace MeoAsstGui continue; } - orderList.Add(_facilityKey[item.OriginalName]); + orderList.Add(item.OriginalName); } return orderList; diff --git a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs index 2406a179f4..38887ba83e 100644 --- a/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs +++ b/src/MeoAsstGui/ViewModels/TaskQueueViewModel.cs @@ -205,10 +205,14 @@ namespace MeoAsstGui { "开始唤醒", "自动公招", "基建换班", "刷理智", "访问好友", "收取信用及购物", "领取日常奖励", "自动肉鸽", "宿舍", "制造站", "贸易站", "发电站", "会客室", "办公室", "控制中枢", + "開始喚醒", "自動公招", "基建換班", "刷理智", "訪問好友", "收取信用及購物", "領取日常獎勵", "自動肉鴿", + "宿舍", "製造站", "貿易站", "發電站", "會客室", "辦公室", "控制中樞", "ウェイクアップ", "公開求人", "基地仕事", "作戦", "戦友訪問", "FP交換", "報酬受取", "自動ローグ", "宿舎", "製造所", "貿易所", "発電所", "応接室", "事務所", "制御中枢", "웨이크업", "공개모집", "기반시설 교대", "작전", "친구 방문", "상점", "일일 퀘스트 보상을 수집", "통합전략", "숙소", "제조소", "무역소", "발전소", "응접실", "사무실", "제어 센터", + "🍻💃", "🕺🍺", "🍺🍺", "🍺🍸", "🍺🍻", "🕺🍸", "🍻🍸🍻", + "🍸💃💃", "🍸🍺🍻", "🍺🍸🍺", "🍸🍷", "🍺🍸🍷", "🍻🍺🍸🍻", "🍺🍸🕺🍸", "🍺🍸🍸", }; foreach (var name in old_list_name) {