MalumAtire832/BetaTeam-Toolkit
GitHub: MalumAtire832/BetaTeam-Toolkit
专门用于解析和解包 LEGO Alpha Team PC 版游戏资源文件的命令行工具包,支持 PAC 归档提取和 DDS 音频转 WAV。
Stars: 0 | Forks: 0
# BetaTeam
使用 C# 和 .NET 8 编写的 CLI 工具包,用于与 LEGO Alpha Team PC 源文件进行交互。
基于 [GNU General Public License v3.0](LICENSE) 授权。
## 前置条件
- [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)
- 源文件
## 解决方案结构
| 项目 | 描述 |
|--------------------------------|---------------------------------------------------------------------------|
| `Malumware.Common` | 共享工具 |
| `Malumware.BetaTeam.Lib` | 核心库 — 解析器、读取器、转换器 |
| `Malumware.BetaTeam.Lib.Tests` | 库的单元测试 |
| `Malumware.BetaTeam.Cli` | 基于 [Spectre.Console](https://spectreconsole.net/) 构建的 CLI 入口点 |
## 文件格式
### PAC 归档
PAC 文件是 LEGO Alpha Team 使用的平面打包归档文件,文件连续存储且未压缩。
文件头为 20 字节(`PACK` 魔术字、归档大小、有效载荷偏移量、文件数量),其后是一个变长目录,包含以空字符结尾的文件名条目,每个条目包含绝对偏移量、文件大小和 Windows FILETIME 时间戳。
### DDS 音频
`.DDS` 文件是一种专有的 PCM 音频格式,其 16 字节文件头在布局上与 WAV `fmt` 块完全相同(格式标签、通道数、采样率、字节率、块对齐、每样本位数)。
转换器将原始 PCM 数据封装在标准的 RIFF/WAVE 信封中,以生成有效的 `.wav` 文件。
## CLI
### `unpack` — 解包 PAC 归档
解压目录中的所有 `.pac` 归档文件。每个归档将被解包到以该归档文件命名的独立子文件夹中。
```
betateam unpack [--mask ]
```
| 参数 / 选项 | 描述 | 默认值 |
|--------------------|--------------------------------------|---------|
| `INPUT_DIRECTORY` | 包含 `.pac` 归档的目录 | — |
| `OUTPUT_DIRECTORY` | 用于写入提取文件的目录 | — |
| `-m`, `--mask` | 文件 glob 匹配模式 | `*.pac` |
示例:
```
betateam unpack /game/packs /game/extracted
betateam unpack /game/packs /game/extracted --mask *.pac
betateam unpack /game/packs /game/extracted --mask Audio.pac
```
### `convert dds wav` — 将 DDS 音频转换为 WAV
将 `.DDS` 专有音频文件(Digital Domain Sound)转换为标准 WAV 文件。
```
betateam convert dds wav [--mask ]
```
| 参数 / 选项 | 描述 | 默认值 |
|--------------------|--------------------------------------|---------|
| `INPUT_DIRECTORY` | 包含 `.DDS` 文件的目录 | — |
| `OUTPUT_DIRECTORY` | 用于写入 `.wav` 文件的目录 | — |
| `-m`, `--mask` | 文件 glob 匹配模式 | `*.DDS` |
示例:
```
betateam convert dds wav /game/extracted/audio /game/wav
betateam convert dds wav /game/extracted/audio /game/wav --mask *.DDS
betateam convert dds wav /game/extracted/audio /game/wav --mask BUILD1LOOP.DDS
```
标签:AlphaTeam, DDS音频, GNU GPL 3.0, LEGO, .NET 8, PAC归档, PCM音频, Spectre.Console, WAV转换, 乐高, 云资产清单, 单元测试, 开源, 控制台应用, 数据提取, 文件格式解析, 文件解析器, 游戏Mod, 游戏开发, 游戏源文件解析, 解包工具, 逆向工程