Skip to main content

为 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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

adobase-0.1.0-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

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

Hashes for adobase-0.1.0.tar.gz
Algorithm Hash digest
SHA256 41a1d587286d58fba7b170017043d8d1967e80620f6ffde75c7089af2cce0e3e
MD5 ecfe00eeda224c0bf59a0fe8447343e3
BLAKE2b-256 de77c863ba4fcc25d422a85b126c6d8295f36bc9e249fd197e2fbaa654423e03

See more details on using hashes here.

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

Hashes for adobase-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 91ee6544b695f7fc208a01555b1571caed8da9e9395c944c9a118c3f1a916526
MD5 52229a317de251a431a421a811945687
BLAKE2b-256 b52c8925a06e868d7f843a8c7532c3ac8e13aceb9ef4611c4dfcc385124d7e79

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page