2 个版本 (1 个稳定版)
1.0.0 | 2024年5月10日 |
---|---|
0.1.0 | 2024年5月10日 |
#599 在 文件系统
32KB
597 代码行
Proton-Finder
Rust 库,用于查找和处理 Steam 的 proton 前缀,以及访问其中的常见路径。
此外,提供通用的包装器,允许一个代码库同时支持 Windows 和 Linux。
用途
主要用途是用于开发跨平台模组工具/存档文件编辑器。
许多游戏在 Windows 的 AppData 或 Documents 文件夹中保存存档文件/加载模组(这些在 Windows 上通过库如 dirs 很容易访问)。
当在 Linux + Proton(或 Wine)下运行时,这些文件夹存储在前缀中,因此难以访问。
因此,此库提供了允许将这些前缀抽象化的函数,这样您就可以通过通用函数访问 Windows 和 Linux 上的相同文件夹。
当目标操作系统为 Linux 时,可使用额外的 linux
模块,这允许更原始的访问,
包括打开 wine 前缀和从前缀中读取 .reg 注册表文件。
示例
let res = proton-finder::get_game_drive(2420510).map_or_else(|e| {
println!("Steam Dir provided is not correctly formated, ignored...");
e
}, |k| k);
if let Some(game_drive) = res {
if let Some(mut path) = game_drive.config_local_dir() {
path.push("HoloCure");
path.push("settings.json");
if let Ok(text) = std::fs::read_to_string(path) {
println!("{}", text);
}
}
} else {
println!("Unable to find game drive. Did you install the game?");
}
此代码读取 HoloCure 游戏的 settings.json 设置
Steam 根目录优先级
默认情况下,如果 env 值 $STEAM_DIR
(与 Protontricks 相同)存在,它将使用此作为第一个要搜索的 steam 根目录。
您可以使用 no_tricks
功能禁用自动读取 env。
然后检查以下内容:
~/.steam/steam
~/.local/share/Steam
~/.var/app/com.valvesoftware.Steam/data/Steam/
(Flatpak)
测试
需要已安装 Steam 和 HoloCure(免费游戏)(并且至少运行过一次游戏)。
依赖项
~0–10MB
~47K SLoC