troytt
|
1fa3f8b7a2
|
chore(git): ignore node_modules symlinks in worktrees
|
2026-09-17 05:50:28 +00:00 |
troytt
|
cd87c2c5fa
|
chore(git): 忽略 vitest 覆盖率报告输出目录
`npm run test:coverage` 会在仓库根目录生成 coverage/,属于可随时重建的
构建产物,不应入库,也不该在 `git status` 里制造噪音。
refs #14
|
2026-09-14 13:27:18 +00:00 |
troytt
|
b3368e552a
|
chore: 在 .gitignore 中忽略 Diablo II*/ 用户数据目录
|
2026-09-14 08:55:08 +00:00 |
troytt
|
afa5597168
|
把图集包移出 Git:改从 /diablo2/assets/ 的归档获取
samples/d2-packs 是 63 MB 的索引色 PNG 图集,每次重烘几乎全部文件都变,
而 PNG 无法被 git 的 delta 压缩,导致每烘焙一次仓库就再长 ~60 MB
(实测:63 MB → 117 MB,两次快照 64.3/66.1 MB 都完整留存在历史里)。
原计划放到 Gitea 的 Release 附件,但本实例的附件上传是坏的:
1 KB / 256 KB / 1 MB / 3 MB / 59.5 MB 全部返回 HTTP 500(空 message),
附件列表始终为空 —— 不是 MAX_SIZE 的问题,需要服务端(124.221.104.39)查
data/attachments 目录与 [attachment] 配置;我没有那台机器的 SSH 访问。
因此改为发布归档(与线上部署同源,零仓库体积):
https://www.laiseek.xyz/diablo2/assets/d2-packs-2026-09-14.tar.xz (63.2 MB)
sha256 9cdfd0c19ac68de842c6725070b65d056e25f5bcc77f36d6d9a29cd9f1b431e8
本地 /var/www/d2assets/ → nginx location /diablo2/assets/
包出现在 samples/d2-packs 才能跑资源包模式(页面默认走它);解包方式见 README。
|
2026-09-14 11:37:40 +08:00 |
troytt
|
255915036e
|
加入烘焙图集包(samples/d2-packs,66 MB / 275 个文件)
62 张地图的索引色 PNG 图集页 + scene.json(画家序绘制列表、碰撞 RLE、出生点、对象
元数据)+ index.json(含各 act 调色板)。这是原版美术的解码产物,仓库已改为私有后入库。
有了它,在没有原版 MPQ 的机器上也能跑资源包模式(/acts.html、/diablo2/);
?live=1 与 pack:data 仍需要自备 samples/d2/ 下的原版数据。
没走 Release 附件的原因:本实例的上传接口对 3 MB 与 59.5 MB 都返回 HTTP 500
(大概率是 [attachment] MAX_SIZE 或存储路径限制),所以直接进 Git。
若之后把附件上限调大,可以把这份数据从历史里挪到 Release。
|
2026-09-13 18:29:28 +08:00 |
troytt
|
7a24a3f806
|
加入自产夹具美术(samples/fixtures,492 KB)
这些文件全部由仓库内脚本生成,无第三方版权问题:
node scripts/make-fixtures.ts samples/fixtures # DC6/调色板/文本表/期望网格
node scripts/make-map-fixtures.ts samples/fixtures # DT1/DS1/夹具 MPQ
入库后 clone 即可跑夹具相关的校验与页面(verify:all、map.html?data=samples/fixtures),
不必先拿到原版 MPQ。
.gitignore 相应调整:用 `samples/*` 而不是 `samples/`(git 不允许反选被整体排除的目录),
并单独放行 samples/fixtures/*.mpq(那个 MPQ 是我们自己生成的)。原版 MPQ、烘焙图集包
与第三方参考源码仍然不入库。
|
2026-09-13 18:27:16 +08:00 |
troytt
|
897b3735d6
|
初始提交:从零实现的暗黑破坏神 II WebGL2 引擎(TypeScript + Vite,零运行时依赖)
内容概览
- 归档层:MPQ v1 容器(hash/block 表、Storm 加密、分扇区编解码),含 PKWARE
implode/explode 移植;支持 HTTP Range 只读取所需字节。
- 格式层:dc6 / ds1 / dt1 / pal / pl2 / cel / pcx / tbl / sprite,以及 dcc / cof / bitstream。
- 地图层:等距投影场景构建(地板/墙/屋顶分层、逐格瓦片变体加权随机、sub-tile 碰撞),
资源包(索引色 PNG 图集 + scene.json)离线烘焙与逐像素差分校验。
- 角色层:DCC + COF 合成(8 方向),法师行走/站立替换占位棋子。
- 页面:acts.html 全屏画布 + 三级选择器(章节 / 场景 / 细分场景),资源包优先、
可回退到直读归档(?live=1)。
- 验证脚本:verify:all / implode / acts / d2 / packs / dcc / deploy / listfile /
object-lookup / alignment / tiles / generators 等,均带断言与退出码。
数据与许可
- 游戏数据(samples/)与第三方参考源码(reference/)不入库:体积大且无再分发许可,
见 THIRD_PARTY_NOTICES.md。
- 生成关卡(70 迷宫 + 31 野外)尚未烘焙,现状与修复清单见 HANDOVER.md §4f。
|
2026-09-13 18:10:28 +08:00 |