Files
xyou f70b061d1a
CI / Go Backend (push) Canceled after 0s
feat: 项目初始化 + 3D方块世界原型 + AI助搭系统
初始化 monorepo: Go后端(7微服务) + Unity客户端(9模块) + 启动器

HTML5原型: Three.js 3D体素世界, Perlin噪声地形, 原版材质, 22种方块

Minecraft创造模式背包: 双栏布局, 拖拽移动物品, 方向性元件引脚

AI助搭策划文档 + 客户端/服务端骨架 + Docker Compose + CI
2026-08-08 14:07:56 +08:00

73 lines
2.4 KiB
C#

using System.Collections;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using PCL.Core.App.Localization;
namespace PCL;
public partial class PageDownloadNeoForge
{
public PageDownloadNeoForge()
{
Initialized += (_, _) => LoaderInit();
Loaded += (_, _) => Init();
InitializeComponent();
}
private void LoaderInit()
{
PageLoaderInit(Load, PanLoad, PanMain, CardTip, ModDownload.dlNeoForgeListLoader, _ => Load_OnFinish());
}
private void Init()
{
PanBack.ScrollToHome();
}
private void Load_OnFinish()
{
// 结果数据化
try
{
// 归类
var dict = ModDownload.dlNeoForgeListLoader.output.Value.GroupBy(d => d.Inherit)
.OrderByDescending(g => g.Key).ToDictionary(g => g.Key, g => g.ToList());
// 清空当前
PanMain.Children.Clear();
// 转化为 UI
foreach (var Pair in dict)
{
if (!Pair.Value.Any())
continue;
// 增加卡片
var newCard = new MyCard
{ Title = Pair.Key + " (" + Pair.Value.Count + ")", Margin = new Thickness(0d, 0d, 0d, 15d) };
var newStack = new StackPanel
{
Margin = new Thickness(20d, MyCard.SwapedHeight, 18d, 0d),
VerticalAlignment = VerticalAlignment.Top, RenderTransform = new TranslateTransform(0d, 0d),
Tag = Pair.Value
};
newCard.Children.Add(newStack);
newCard.SwapControl = newStack;
newCard.IsSwapped = true;
newCard.InstallMethod = stack =>
{
foreach (var item in (IEnumerable)stack.Tag)
stack.Children.Add(ModDownloadLib.NeoForgeDownloadListItem(
(ModDownload.DlNeoForgeListEntry)item, ModDownloadLib.NeoForgeSave_Click, true));
};
PanMain.Children.Add(newCard);
}
}
catch (Exception ex)
{
ModBase.Log(
ex,
"可视化 NeoForge 版本列表出错",
ModBase.LogLevel.Feedback,
userSummary: Lang.Text("Download.Error.OperationFailed"));
}
}
}