feat(instance): 实现 Forge Like 安装器#2284
Conversation
|
171 ++ = Size:L( 确信 |
|
umm 看了看,这东西还需要完整的实例支持,但是 Core 的实例实现是半成品...... 实例那边要不完全重构好了,反正看不懂 pynickle 写了什么东西 |
我可以做一些地方的优化和修复)当然你们要是觉得整体架构不好那你们整体重构也无所谓) |
你来啦?问问实例什么时候能用上 inheritFrom? |
给点用例?比如从哪里加载/获取实例信息 |
我是真没看懂inheritFrom这个玩意到底有什么实际意义) |
过几天再说)沉迷终末地 ing,要不你先写些别的) 题外话(可能是): |
Leave Team 的这几天有了新想法(是的,我回来的理由就是这么荒谬,因为有新想法就跑回来继续 PR),现在脑子里已经有了事件驱动一切的想法了,所以那几个坑可能还得挖大点( |
规范,规范,还是 tmd 规范(这辈子和规范过不去了) |
事实上,第三方组件为了和 Mojang 资源解耦合(避免被告)才有的,并且 @Big-Cake-jpg 似乎很喜欢这个设计(虽然我也不理解为什么) |
|
@pynickle 大概什么时候能把用例补齐?因为 2 月 5 那会放假了,进度会继续往前推一些 |
我的 PCL CE 现在都运行不起来)有猎奇小 Bug |
// 获取当前文件夹
var currentFolder = FolderService.FolderManager.CurrentFolder;
// 创建实例
var instancePath = Path.Combine(currentFolder.Path, "versions", "forge-1.19.2-43.2.0");
var instance = await InstanceFactory.CreateInstanceAsync(instancePath, currentFolder);
// 加载实例
instance.Load();
// 获取实例信息
var instanceInfo = instance.InstanceInfo;
var forgePatch = instanceInfo.GetPatch("Forge"); // 参考 PCL.Core/Minecraft/Instance/Interface/IMcInstance.cs
// 版本隔离路径
Path.Combine(instance.IsolatedPath, "mods"); |
|
ummm 有没有可枚举实例列表,以及附加组件的安装信息 暂时还没空研究源代码 |
var instanceManager = FolderService.FolderManager.CurrentFolder?.InstanceList;
// 枚举所有实例
foreach (var instance in instanceManager.McInstanceList) {
Console.WriteLine($"{instance.Name} - {instance.CardType}");
var forgePatch = instance.InstanceInfo.GetPatch("Forge");
if (instance.InstanceInfo.HasPatch("Forge")) {
Console.WriteLine($"Forge 版本: {forgePatch.Version}");
}
} |



No description provided.