ZJustin117/ArtFramework
GitHub: ZJustin117/ArtFramework
为《杀戮尖塔》桌面模组提供双轨制(合成/原生)表示层框架,通过 SignalBus、布局 DSL 和原生模板统一 UI 开发体验。
Stars: 1 | Forks: 0
# ArtFramework
**ART Framework** — 《杀戮尖塔》1(桌面版 ModTheSpire + 兼容 Amethyst 的 jar)的表示层。
版本:参见 `gradle.properties` → `artframework.version`(当前为 **1.0.0-alpha.4**)。
- 与多人游戏逻辑(例如 CrossSpire)**独立的仓库** — 此处不包含 protocol/party 类型。
- **双轨制**([`docs/design/dual-track.md`](docs/design/dual-track.md)):
1. **C1 Synthetic** — scene2d.ui 窗口(layout DSL / LML + StageHost + StsSkin)
2. **C2 Native** — 轻量级模板 + **全呈现**界面(手牌/地图/事件/选择/奖励/…)
- **SignalBus** + **HostAssets** + **EntityPresent** 合作式外观插槽
- 已交付里程碑 **0–28**(房间 FULL 量产 + C1 网格/标签页 + alpha.4)
待办工作:[`docs/task.md`](docs/task.md)。设计中心:[`docs/design/art-framework.md`](docs/design/art-framework.md)。
消费者:[`docs/development/consumer.md`](docs/development/consumer.md)。
API 稳定性:[`docs/development/api-stability.md`](docs/development/api-stability.md)。
更新日志:[`CHANGELOG.md`](CHANGELOG.md)。
发布门控:`./scripts/release-gate.sh`。
## 环境要求
- JDK 8+(字节码目标版本 1.8)
- 以下内容的绝对路径:
| 环境变量 | 典型来源 |
|---------------|----------------|
| `ART_STS_JAR` | STS `desktop-1.0.jar` |
| `ART_BASEMOD_JAR` | BaseMod.jar |
| `ART_MODTHESPIRE_JAR` | ModTheSpire.jar |
复制 [`.env.example`](.env.example) → `.env.local`。**重用与 CrossSpire 相同的文件路径**,但请使用 **`ART_*` 键名**(而不是 `CROSSSPIRE_*`)。
可选:`ART_D1_SERIAL` / `ART_D2_SERIAL`(设备 jar 推送);`ART_INSTALL_DIR` / `ART_CONSUMER_JAR`(publish-art-local)。
## 构建与测试
```
./scripts/with-art-env.sh test
./scripts/with-art-env.sh jar
./scripts/release-gate.sh # JUnit + art-verify + version + consumer fixture
./scripts/publish-art-local.sh # jar + optional install via env
```
构建产物:`build/libs/ArtFramework.jar`。
**默认门控为 JUnit。** OpenCode:`@junit-test`。可选的设备测试:`@android-deploy-jar`。
UI 工具:`cd tools/art-verify && python3 -m unittest discover -s tests -v` 或 `@art-verify`。
## ModTheSpire
- `modid`:`artframework`
- 依赖于:`basemod`
- 消费者:`"dependencies": ["basemod", "artframework"]` 并同时附带 **这两个** jar(不要将 ArtFramework 以 fat-jar 的方式打包进消费者中)。
## 包结构
| Package | 作用 |
|---------|------|
| `artframework.api` | Facade, UiOps/UiProbe, 窗口定义 |
| `artframework.core` | UiTree, 信号, Theme, HostBackend |
| `artframework.context` | ContextFrame, 呈现界面, intents |
| `artframework.assets` | HostAssets 资源包 / ResourceId |
| `artframework.c1` | Synthetic 运行时, StageHost, 布局/LML |
| `artframework.c2` | 原生模板 + EntityPresent |
| `artframework.sts1` | STS1 宿主后端, 绘制路径, 补丁, 实验室 |
| `artframework.component` / `render` | 组合式 AST + 特效 |
| `artframework.ArtFrameworkMod` | MTS 入口 |
## 许可证
[MIT](LICENSE) — 版权所有 (c) 2026 ZJustin117。
本项目**不**授予对《杀戮尖塔》、MegaCrit 资产或第三方模组(如 BaseMod、ModTheSpire)的权利。运行时使用需要合法安装的游戏,并且这些依赖项需遵守其各自的条款。
标签:JS文件枚举, UI框架, 前端组件, 后台面板检测, 域名枚举, 杀戮尖塔, 游戏Mod