LSKit

用于操作《博德之门3》文件的工具

示例

从Mod加载信息

let bg3 = URL.homeDirectory.appending(path: "Library/Application Support/Baldur's Gate 3/")
let url = bg3.appending(path: "Mods/<mod>.pak")
let pak = try ModLSPK(url: url)

guard let moduleInfo = pak.meta.moduleInfo else {
    return // File does not contain a meta.lsx with ModuleInfo
}
guard let moduleInfo = moduleInfo.publishVersion else {
    return // ModuleInfo does not contain publish version info
}

// Access desired information e.g.
print(moduleInfo.uuid) // UUID
print(moduleInfo.name) // Name
print(moduleInfo.folder) // Folder

加载Mod设置

let bg3 = URL.homeDirectory.appending(path: "Library/Application Support/Baldur's Gate 3/")
let url = bg3.appending(path: "PlayerProfiles/Public/modsettings.lsx")

guard let lsx = LSX(url: url) else {
    return // Unable to read or parse given LSX file
}
guard let moduleSettings = LSX.ModuleSettings(lsx: lsx) else {
    return // LSX is not in the correct format
}

// Access desired information e.g.
print(moduleSettings.modOrder) // Mod Order
print(moduleSettings.mods) // Mods

致谢

如果没有 NorbyteLSLib,这个软件包就不可能存在。

此软件包旨在提供 LSLib 功能的一小部分子集,并以 Swift 重新实现,使其可在 Apple 平台上使用。

许可

请参阅 LICENSE