Skip to content

Commit bc7df11

Browse files
committed
up
1 parent 95edf9f commit bc7df11

18 files changed

Lines changed: 343 additions & 109 deletions

File tree

src/ColorMC.Core/Helpers/CurseForgeHelper.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ orderby item2.Name descending
182182
{
183183
return s_supportVersion;
184184
}
185-
var list = await CurseForgeAPI.GetCurseForgeVersionType();
185+
var list = await CurseForgeAPI.GetVersionType();
186186
if (list == null)
187187
{
188188
return null;
@@ -203,7 +203,7 @@ where item.Id < 18
203203
orderby item.Id ascending
204204
select item);
205205

206-
var list2 = await CurseForgeAPI.GetCurseForgeVersionAsync();
206+
var list2 = await CurseForgeAPI.GetVersionAsync();
207207
if (list2 == null)
208208
{
209209
return null;
@@ -409,7 +409,7 @@ await Parallel.ForEachAsync(data.Dependencies, async (item, cancel) =>
409409
}
410410

411411
var opt = item.RelationType != 2;
412-
var res1 = await CurseForgeAPI.GetCurseForgeFilesAsync(item.ModId.ToString(), mc, loader: loader);
412+
var res1 = await CurseForgeAPI.GetFilesAsync(item.ModId.ToString(), mc, loader: loader);
413413
if (res1 == null || res1.Data.Count == 0)
414414
{
415415
return;

src/ColorMC.Core/Net/Apis/CurseForgeAPI.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ public static async Task<List<CurseForgeModObj.CurseForgeDataObj>?>
229229
/// <summary>
230230
/// 获取版本信息
231231
/// </summary>
232-
public static async Task<CurseForgeVersionObj?> GetCurseForgeVersionAsync()
232+
public static async Task<CurseForgeVersionObj?> GetVersionAsync()
233233
{
234234
string temp = $"{UrlHelper.CurseForge}games/{GameID}/versions";
235235
try
@@ -251,7 +251,7 @@ public static async Task<List<CurseForgeModObj.CurseForgeDataObj>?>
251251
/// <summary>
252252
/// 获取版本类型
253253
/// </summary>
254-
public static async Task<CurseForgeVersionTypeObj?> GetCurseForgeVersionType()
254+
public static async Task<CurseForgeVersionTypeObj?> GetVersionType()
255255
{
256256
string temp = $"{UrlHelper.CurseForge}games/{GameID}/version-types";
257257
try
@@ -332,7 +332,7 @@ public static async Task<List<CurseForgeModObj.CurseForgeDataObj>?>
332332
/// <summary>
333333
/// 获取文件列表
334334
/// </summary>
335-
public static async Task<CurseForgeFileObj?> GetCurseForgeFilesAsync(string id, string? mc, int page = 0, Loaders loader = Loaders.Normal)
335+
public static async Task<CurseForgeFileObj?> GetFilesAsync(string id, string? mc, int page = 0, Loaders loader = Loaders.Normal)
336336
{
337337
mc ??= "";
338338
string temp = $"{UrlHelper.CurseForge}mods/{id}/files?index={page * 50}&pageSize=50&gameVersion={mc}";

src/ColorMC.Core/Worker/CurseForgeWork.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ public async Task<bool> GetInfo()
204204
}
205205

206206
Game.Mods.Clear();
207-
foreach (var item in Game.Mods)
207+
foreach (var item in list.Mods)
208208
{
209209
Game.Mods.Add(item.Key, item.Value);
210210
}

src/ColorMC.Core/Worker/ModrinthWork.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ public async Task<bool> GetInfo()
231231
}
232232

233233
Game.Mods.Clear();
234-
foreach (var item in Game.Mods)
234+
foreach (var item in list.Mods)
235235
{
236236
Game.Mods.Add(item.Key, item.Value);
237237
}

src/ColorMC.Gui/Manager/GameManager.cs

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ public static GameGuiSettingObj ReadConfig(GameSettingObj obj)
226226
{
227227
obj1.Log ??= MakeLog();
228228
obj1.Mod ??= MakeMod();
229-
obj1.ModName ??= [];
229+
obj1.Mod.ModName ??= [];
230230
obj1.Mod.Groups ??= [];
231231
s_datas.Add(obj.UUID, obj1);
232232
return obj1;
@@ -265,8 +265,7 @@ private static GameGuiSettingObj Make()
265265
return new GameGuiSettingObj
266266
{
267267
Log = MakeLog(),
268-
Mod = MakeMod(),
269-
ModName = []
268+
Mod = MakeMod()
270269
};
271270
}
272271

@@ -288,7 +287,8 @@ private static GameModSettingObj MakeMod()
288287
{
289288
return new GameModSettingObj
290289
{
291-
Groups = []
290+
Groups = [],
291+
ModName = []
292292
};
293293
}
294294

@@ -635,27 +635,4 @@ public static void StartGameHandle(GameSettingObj obj, GameHandle handle)
635635
IsBackground = true
636636
}.Start();
637637
}
638-
639-
/// <summary>
640-
/// 获取模组分组
641-
/// </summary>
642-
/// <param name="game">游戏实例</param>
643-
/// <returns>模组分组</returns>
644-
public static Dictionary<string, List<string>> GetModGroup(GameSettingObj game)
645-
{
646-
var config = ReadConfig(game);
647-
return config.Mod.Groups;
648-
}
649-
650-
/// <summary>
651-
/// 保存模组分组
652-
/// </summary>
653-
/// <param name="game">游戏实例</param>
654-
/// <param name="group">模组分组</param>
655-
public static void SetModGroup(GameSettingObj game, Dictionary<string, List<string>> group)
656-
{
657-
var config = ReadConfig(game);
658-
config.Mod.Groups = group;
659-
WriteConfig(game, config);
660-
}
661638
}

src/ColorMC.Gui/Objs/Config/GameGuiSettingObj.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ public record GameModSettingObj
2626
/// 模组分组列表
2727
/// </summary>
2828
public Dictionary<string, List<string>> Groups { get; set; }
29+
/// <summary>
30+
/// 备注
31+
/// </summary>
32+
public Dictionary<string, string?> ModName { get; set; }
2933
}
3034

3135
public record GameGuiSettingObj
@@ -39,10 +43,6 @@ public record GameGuiSettingObj
3943
/// </summary>
4044
public GameModSettingObj Mod { get; set; }
4145
/// <summary>
42-
/// 备注
43-
/// </summary>
44-
public Dictionary<string, string?> ModName { get; set; }
45-
/// <summary>
4646
/// 是否标星
4747
/// </summary>
4848
public bool IsStar { get; set; }

src/ColorMC.Gui/Resource/Language/zh-cn.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,9 @@
544544
"GameEditWindow.Tab4.Text47": "无法识别列表",
545545
"GameEditWindow.Tab4.Text48": "已启用列表",
546546
"GameEditWindow.Tab4.Text49": "已禁用列表",
547+
"GameEditWindow.Tab4.Text50": "模组备注信息",
548+
"GameEditWindow.Tab4.Text51": "模组在线信息不完整",
549+
"GameEditWindow.Tab4.Text52": "正在验证模组在线信息",
547550
"GameEditWindow.Tab5.Text1": "备份文件夹",
548551
"GameEditWindow.Tab5.Text2": "还原存档备份",
549552
"GameEditWindow.Tab5.Text3": "存档编辑器",
@@ -633,6 +636,8 @@
633636
"GameEditWindow.Flyouts.Text12": "删除资源包",
634637
"GameEditWindow.Flyouts.Text13": "复制到剪贴板",
635638
"GameEditWindow.Flyouts.Text14": "查看种子信息",
639+
"GameEditWindow.Flyouts.Text15": "设置备注",
640+
"GameEditWindow.Flyouts.Text16": "设置在线信息",
636641
"ErrorWindow.Title": "运行错误",
637642
"ErrorWindow.Text1": "保存内容",
638643
"ErrorWindow.Text2": "上传内容",

src/ColorMC.Gui/UI/Controls/GameEdit/Tab4Control.axaml.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using Avalonia.Threading;
55
using ColorMC.Gui.UI.Flyouts;
66
using ColorMC.Gui.UI.Model.GameEdit;
7+
using ColorMC.Gui.UI.Model.Items;
78

89
namespace ColorMC.Gui.UI.Controls.GameEdit;
910

@@ -53,15 +54,18 @@ private void DataGrid1_CellPointerPressed(object? sender, PointerPressedEventArg
5354

5455
private void DataGrid1_DoubleTapped(object? sender, RoutedEventArgs e)
5556
{
56-
if (sender is not DataGrid data || data.CurrentColumn == null)
57+
if (sender is not TreeDataGrid data || data.RowSelection?.SelectedItem is not ModNodeModel node)
5758
{
5859
return;
5960
}
60-
if (data.CurrentColumn.DisplayIndex == 1)
61+
if (node.IsGroup)
6162
{
62-
return;
63+
(DataContext as GameEditModel)?.DisableEnableMod(node.Children);
64+
}
65+
else
66+
{
67+
(DataContext as GameEditModel)?.DisableEnableMod(node);
6368
}
64-
(DataContext as GameEditModel)!.DisEMod();
6569
}
6670

6771
private void Flyout(Control control)

src/ColorMC.Gui/UI/Flyouts/GameEditFlyout1.cs

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -74,20 +74,19 @@ public static void Show(Control con, IReadOnlyList<object?> list, GameEditModel
7474
}
7575

7676
new FlyoutsControl(
77-
[
78-
new FlyoutMenuModel(LangUtils.Get("GameEditWindow.Flyouts.Text1"), true, () =>
77+
[
78+
new FlyoutMenuModel(LangUtils.Get("GameEditWindow.Flyouts.Text1"), true, () =>
7979
{
8080
if (single)
8181
{
82-
model.DisEMod(obj);
82+
model.DisableEnableMod(obj);
8383
}
8484
else
8585
{
86-
foreach (var item in mods)
87-
{
88-
model.DisEMod(item);
89-
}
86+
model.DisableEnableMod(mods);
9087
}
88+
89+
model.ModTreeUpdate();
9190
}),
9291
new FlyoutMenuModel(LangUtils.Get("GameEditWindow.Flyouts.Text2"), true, () =>
9392
{
@@ -109,11 +108,25 @@ public static void Show(Control con, IReadOnlyList<object?> list, GameEditModel
109108
var list = new List <IStorageFile>();
110109
if(TopLevel.GetTopLevel(con) is { } top)
111110
{
112-
foreach(var item in mods)
111+
if (single)
112+
{
113+
var data = await top.StorageProvider.TryGetFileFromPathAsync(obj.Local);
114+
if (data != null)
115+
{
116+
list.Add(data);
117+
}
118+
}
119+
foreach (var item in mods)
113120
{
121+
if (item.IsGroup)
122+
{
123+
continue;
124+
}
114125
var data = await top.StorageProvider.TryGetFileFromPathAsync(item.Local);
115-
if(data == null)
126+
if (data == null)
127+
{
116128
continue;
129+
}
117130
list.Add(data);
118131
}
119132
await BaseBinding.CopyFileClipboardAsync(top, list);
@@ -123,13 +136,21 @@ public static void Show(Control con, IReadOnlyList<object?> list, GameEditModel
123136
{
124137
WebBinding.OpenMcmod(obj);
125138
}),
139+
new FlyoutMenuModel(LangUtils.Get("GameEditWindow.Flyouts.Text15"), true, () =>
140+
{
141+
model.SetText(mods);
142+
}),
143+
new FlyoutMenuModel(LangUtils.Get("GameEditWindow.Flyouts.Text16"), single, () =>
144+
{
145+
model.SetProjectId(obj);
146+
}),
126147
new FlyoutMenuModel(LangUtils.Get("GameEditWindow.Flyouts.Text4"), single
127-
&& ! string.IsNullOrWhiteSpace(obj ?.Url), () =>
148+
&& !string.IsNullOrWhiteSpace(obj ?.Url), () =>
128149
{
129150
BaseBinding.OpenUrl(obj !.Url);
130151
}),
131152
new FlyoutMenuModel(LangUtils.Get("GameEditWindow.Flyouts.Text5"), single
132-
&& ! string.IsNullOrWhiteSpace(obj ?.PID) && ! string.IsNullOrWhiteSpace(obj ?.FID), () =>
153+
&& !string.IsNullOrWhiteSpace(obj?.PID) && ! string.IsNullOrWhiteSpace(obj?.FID), () =>
133154
{
134155
WindowManager.ShowAdd(obj!.Obj.Game, obj);
135156
}),

src/ColorMC.Gui/UI/Model/Dialog/BaseDialogModel.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@
44

55
namespace ColorMC.Gui.UI.Model.Dialog;
66

7-
public abstract partial class BaseDialogModel(string name) : ObservableObject
7+
public abstract partial class BaseDialogModel(string window) : ObservableObject
88
{
99
/// <summary>
1010
/// 取消
1111
/// </summary>
1212
[RelayCommand]
1313
public void Cancel()
1414
{
15-
DialogHost.Close(name, false, this);
15+
DialogHost.Close(window, false, this);
1616
}
1717
/// <summary>
1818
/// 同意
1919
/// </summary>
2020
[RelayCommand]
2121
public void Confirm()
2222
{
23-
DialogHost.Close(name, true, this);
23+
DialogHost.Close(window, true, this);
2424
}
2525
}

0 commit comments

Comments
 (0)