为 ADOFAI 游戏的 .adofai 关卡文件提供读写、查找、增删改等操作的库
Project description
ADOBase
ADOBase 是一个专为 ADOFAI 游戏 .adofai 关卡文件设计的 Python 库,支持关卡文件的读取、写入、格式转换、信息提取与编辑等操作。
主要功能
- 读取 .adofai 关卡文件(自动去除 BOM,自动修正非标准 JSON,如尾随逗号)
- 写入/导出关卡文件(支持标准 JSON 和 adofai 原格式风格,缩进、数组、对象数组等完全还原)
- 关卡信息提取、打印与编辑(支持打印全部、基础或指定字段信息,参数校验,支持关卡信息字段的安全编辑)
- 支持文件选择器交互(测试脚本可直接选择输入输出文件)
- 兼容大部分 ADOFAI 关卡文件格式细节
安装
pip install ADOBase
用法示例
from adobase import ADOFAILevel
# 读取关卡文件(自动处理 BOM 和非标准 JSON)
level = ADOFAILevel.load('main.adofai')
# 打印全部关卡信息(settings 下所有字段)
level.print_info()
# 打印关卡基础信息(曲名、曲师、谱师)
level.print_info('levelbase')
# 打印指定字段(如 bpm、难度)
level.print_info('bpm', 'difficulty')
# 打印不存在的字段会报错
# level.print_info('notexist') # KeyError: 关卡文件中不存在字段: notexist
# 编辑关卡信息(如修改版本号和 BPM)
level.edit_info(version=15, bpm=180)
# 验证修改
level.print_info('version', 'bpm')
# 导出为标准 JSON 文件(无 BOM,adodai 风格缩进)
level.export('output.json', as_original=False)
# 导出为 adofai 文件(加 BOM,adodai 风格缩进)
level.export('output.adofai', as_original=True)
API 说明
ADOFAILevel.load(filepath)
- 读取 .adofai 文件,自动去除 BOM,自动修正为标准 JSON。
- 返回
ADOFAILevel实例。
ADOFAILevel.export(filepath, as_original=False)
- 导出关卡文件。
as_original=True:导出为 adofai 文件(加 BOM,adodai 风格缩进)as_original=False:导出为标准 JSON 文件(无 BOM,adodai 风格缩进)
ADOFAILevel.save(filepath)
- 保存为标准 JSON 文件(无 BOM,adodai 风格缩进)。
ADOFAILevel.print_info(*fields)
- 打印关卡信息:
- 不传参数时,打印 settings 下所有字段及其值(完整关卡信息)
- 传参数为
'levelbase'时,打印关卡基础信息(曲名 song、曲师 artist、谱师 author) - 传参数为其它字段时,只打印指定字段,字段不存在则抛出异常
ADOFAILevel.edit_info(**kwargs)
- 编辑关卡信息:
- 传入要修改的字段和值,如
level.edit_info(version=15, bpm=180) - 字段不存在会抛出异常,防止误操作
- 传入要修改的字段和值,如
关卡格式兼容性
- 自动去除 UTF-8 BOM
- 自动修正尾随逗号等非标准 JSON 问题
- 输出文件严格还原 adofai 关卡风格:
- Tab 缩进
- angleData、parallax、position 等数组一行
- actions、decorations 等对象数组每个对象一行
- 其余对象递归缩进
交互式测试
运行:
python -m adobase.tests.test_level
即可弹窗选择输入输出文件,体验关卡格式转换与信息查看。
开发进度
- 关卡文件读取(BOM/非标准 JSON 兼容)
- 关卡文件写入/导出(adodai 风格格式化)
- 关卡信息打印(全部、基础、指定字段,参数校验)
- 关卡信息编辑(安全校验)
- 文件选择器交互测试
- 单元测试
- 关卡内容增删改查(计划中)
- 更复杂的事件/装饰物操作(计划中)
许可证
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
adobase-0.1.0.tar.gz
(11.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
adobase-0.1.0-py3-none-any.whl
(13.8 kB
view details)
File details
Details for the file adobase-0.1.0.tar.gz.
File metadata
- Download URL: adobase-0.1.0.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41a1d587286d58fba7b170017043d8d1967e80620f6ffde75c7089af2cce0e3e
|
|
| MD5 |
ecfe00eeda224c0bf59a0fe8447343e3
|
|
| BLAKE2b-256 |
de77c863ba4fcc25d422a85b126c6d8295f36bc9e249fd197e2fbaa654423e03
|
File details
Details for the file adobase-0.1.0-py3-none-any.whl.
File metadata
- Download URL: adobase-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91ee6544b695f7fc208a01555b1571caed8da9e9395c944c9a118c3f1a916526
|
|
| MD5 |
52229a317de251a431a421a811945687
|
|
| BLAKE2b-256 |
b52c8925a06e868d7f843a8c7532c3ac8e13aceb9ef4611c4dfcc385124d7e79
|