Skip to content

ADOFAI-JS

ADOFAI-JS 是一个零依赖的 JavaScript / TypeScript 关卡库,用于解析、编辑和导出 ADOFAI 关卡文件,完全兼容浏览器。

特性

  • 多种解析器 —— StringParserBufferParserArrayBufferParserLargeFileParser(超大文件增量解析)
  • Level 管理 —— 加载、编辑、导出 .adofai 文件,完整的地块与事件访问
  • 类型化事件 —— 56 种 ADOFAI 事件类型的类型定义
  • 共享类型 —— 常量枚举与工具类型(角度、判定、滤镜等)
  • PathData 转换 —— pathData 字符串与 angleData 数组互转
  • 特效过滤 —— 预设与自定义事件过滤(去除特效、保留/排除事件)
  • 预计算模式 —— 批量处理并缓存进度事件,供渲染管线轮询
  • 轻量数据 —— 大关卡的内存优化数据提取

开始前建议先读认识关卡文件,了解 .adofai 文件的结构与 Path Data 编码。

安装

bash
npm install adofai
# 或
yarn add adofai
# 或
pnpm add adofai

导入

ESM:

ts
import * as adofai from 'adofai'
import { Level, Parsers, Types, Events, Structure } from 'adofai'

CommonJS:

ts
const adofai = require('adofai')

子路径导入:

ts
import { StringParser } from 'adofai/parser/string'
import { BufferParser } from 'adofai/parser/buffer'
import { ArrayBufferParser } from 'adofai/parser/array-buffer'
import * as Types from 'adofai/types'
import * as Events from 'adofai/event'

包导出一览

导入路径内容
adofai主入口:Level、Parsers、Types、Events、Structure、Presets、pathData
adofai/parser解析器类
adofai/parser/stringStringParser
adofai/parser/bufferBufferParser
adofai/parser/array-bufferArrayBufferParser
adofai/typesTypes(常量枚举、工具类型与函数)
adofai/event全部事件类型接口
adofai/structure核心接口(LevelOptions、Tile 等)
adofai/filter过滤预设
adofai/filter/effect-processor底层特效处理器
adofai/pathdataPathData 转换表

快速开始

ts
import { Level } from 'adofai'
import fs from 'node:fs'

const raw = fs.readFileSync('level.adofai', 'utf-8')
const level = new Level(raw)
await level.load()

// 地块数
console.log(level.tiles.length)

// 读取设置
console.log(level.settings.bpm, level.settings.artist)

// 去除所有特效
level.clearEffect('preset_noeffect')

// 导出回 ADOFAI JSON
fs.writeFileSync('output.adofai', level.export('string', 0, true))

章节

联动

An organization that researches and expands the functions of ADOFAI