WIn_RustTools/Views/CodeDataPage.xaml.cs
muqing 7735738c3d 简化和优化代码,添加新 JSON 文件
此次提交主要对代码进行了简化和优化,具体更改如下:

1. 在 `App.xaml` 中,将 `ConCernItem` 的 `DataTemplate` 从 `StackPanel` 改为 `Grid`,并添加了 `Grid.ColumnDefinitions` 和 `Grid.RowDefinitions`。
2. 在 `App.xaml.cs` 中,删除了创建和解压缩 `RustCode` 目录的代码,改为直接从 `Assets` 目录获取 `DataBaseManifest` 文件,并更新了异常处理逻辑。
3. 在 `RustTools.csproj` 中,添加了新的 `PackageReference`,更新了 `RestSharp` 的版本,并注释掉了 `squirrel.windows` 的引用。
4. 在 `PostRwmod.xaml.cs` 中,删除了 `SharpCompress.Common` 和 `TinyPinyin` 的引用。
5. 在 `CodeDataPage.xaml.cs` 中,更新了 `filePath` 的路径,从 `ApplicationData.Current.LocalFolder.Path` 改为 `AppContext.BaseDirectory`。
6. 在 `ConcernPage.xaml` 中,调整了 `StackPanelA` 的 `MinWidth` 属性,并删除了 `StackPanel` 的 `Background` 属性。
7. 在 `ConcernPage.xaml.cs` 中,更新了 `Getlist` 方法的逻辑,增加了对 `response` 的空值和错误码检查。
8. 在 `ModulePage.xaml.cs` 中,删除了 `SharpCompress.Common` 和 `WinRT.Interop` 的引用。
9. 在 `SettingsPage.xaml` 中,更新了 `PersonPicture` 的 `ToolTipService.ToolTip` 属性。
10. 在 `IniHelper.cs` 中,更新了 `Load` 方法的 `filePath` 路径,并添加了目录不存在时创建目录的逻辑。
11. 在 `wj.cs` 中,更新了 `CD` 的路径为 `AppContext.BaseDirectory`,并注释掉了废弃的路径。
12. 在 `config.ini` 中,添加了 `[Settings]` 节点和 `SystemBackdrop=Mica` 设置。

此外,添加了以下新 JSON 文件:
1. `DataBaseManifest.json`:包含数据集的基本信息和数据表的映射。
2. `game_version.json`:包含游戏版本数据。
3. `section.json`:包含铁锈助手节名数据。
4. `value_type.json`:定义了一个名为 "值类型表" 的数据结构,包含多个值类型及其详细信息。
2025-01-20 22:43:40 +08:00

141 lines
4.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections.ObjectModel;
using Microsoft.UI.Xaml.Controls;
using Newtonsoft.Json;
using RustTools.DataList;
using RustTools.Helpers;
using RustTools.muqing;
using RustTools.ViewModels;
using Windows.Storage;
using Windows.UI.Popups;
namespace RustTools.Views;
/// <summary>
/// Êý¾Ý¼¯ËéƬ
/// </summary>
public sealed partial class CodeDataPage : Page
{
public CodeDataViewModel ViewModel
{
get; set;
}
public ObservableCollection<DataBaseManifest> DataConfig { get; set; } = new();
public static DataBaseManifest codetable = new();
public CodeDataPage()
{
ViewModel = new CodeDataViewModel();
InitializeComponent();
var filePath = Path.Combine(AppContext.BaseDirectory, "Assets\\CodeTable");
if (!Directory.Exists(filePath)) { return; }
var directoryInfo = new DirectoryInfo(filePath);
var directoryInfos = directoryInfo.GetDirectories();
foreach (var item in directoryInfos)
{
var v = Path.Combine(item.FullName, "DataBaseManifest.json");
if (File.Exists(v))
{
var json = JsonConvert.DeserializeObject<DataBaseManifest>(File.ReadAllText(v));
json.Dir = item.FullName;
//gj.sc(json.Dir);
DataConfig.Add(json);
}
}
var FirstOrDefault = DataConfig.FirstOrDefault(any => any.id == "official");
if (FirstOrDefault != null)
{
DataConfig.Remove(FirstOrDefault);
DataConfig.Insert(0, FirstOrDefault);
}
var aa = DataConfig.FirstOrDefault(any => any.Dir == codetable.Dir);
if (aa?.Dir == codetable.Dir)
{
listview.SelectedItem = aa;
}
}
private void listview_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.AddedItems[0] is DataBaseManifest item)
{
var iniHelper = new IniHelper(IniHelper.FILE.Config);
iniHelper.SetValue("CodeTable", "Dir", item.Dir ?? string.Empty);
iniHelper.Save();
gj.sc(item.Dir);
codetable = item;
}
}
private async void MenuFlyoutItem_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e)
{
if (sender is MenuFlyoutItem item)
{
if (item.DataContext is DataBaseManifest data)
{
var str = item.Text;
if (str == "±à¼­")
{
//´ò¿ªÏµÍ³Îļþ¼ÐÈÃÓû§×Ô¼ºÑ¡ÔñJson±àÒëÆ÷
wj.OpenFileExplorer(data.Dir);
}
else if (str == "ɾ³ý")
{
var contentDialog = new ContentDialog()
{
XamlRoot = Content.XamlRoot,
Title = "Ìáʾ",
Content = $"ÊÇ·ñɾ³ý {data.name}\nλÖà {data.Dir}",
CloseButtonText = "È¡Ïû"
};
if (data.id == "official")
{
contentDialog.Title = "¾¯¸æ";
contentDialog.Content = "ÎÞ·¨É¾³ý¹Ù·½Êý¾Ý¼¯";
}
else
{
contentDialog.PrimaryButtonText = "È·¶¨";
}
var contentDialogResult = await contentDialog.ShowAsync();
if (contentDialogResult == ContentDialogResult.Primary)
{
gj.sc("ɾ³ýÎļþ¼Ð" + data.Dir);
}
}
}
}
}
private async void AppBarButton_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e)
{
if (sender is AppBarButton item)
{
var v = item.Tag.ToString();
if (v == "0")
{
//н¨
}
else if (v == "1")
{
//´ò¿ª
//var v1 = Path.Combine(wj.LocalFolder, "CodeTable");
//if (Directory.Exists(v1))
//{
// wj.OpenFileExplorer(v1);
//}
//else
//{
// await Dialog.DialogWarn("²»´æÔÚÎļþ¼Ð", XamlRoot);
//}
}
else if (v == "2")
{
}
}
}
}