Files
sfcraft-docs/scripts/README.md
T

2.5 KiB
Raw Blame History

构建 / 开发脚本

用途

scripts/ 下全部为 Python 3 脚本(无其他语言):

  • sync-items.py —— 物品贴图自动同步(核心);
  • build.py —— 同步贴图 + hugo 构建;
  • dev.py —— 同步贴图 + hugo 开发服务器。

同步流程:

  1. 下载 sfcraft 仓库 的 全部自定义贴图到 assets/items/;
  2. 扫描 content/ 中所有 crafting 组件用到的物品 id(支持九格直填与 pattern 别名两种写法);
  3. 本地缺失的原版物品从 Minecraft wiki 自动获取(自动挑选最新版本渲染);
  4. 有任何物品无法找到时, 打印缺失清单并以非零码退出, 阻断构建 / 开发启动。

使用

Windows:

python scripts\build.py            # 同步贴图 + hugo 构建
python scripts\dev.py              # 同步贴图 + hugo server
python scripts\dev.py --no-sync    # 仅启动开发服务器, 不重新同步
python scripts\sync-items.py -f    # 仅同步贴图(强制刷新 sfcraft 贴图)

Linux / macOS:

python3 scripts/build.py
python3 scripts/dev.py
python3 scripts/dev.py --no-sync

也可以用 MakefileWindows / Unix 通用):

make build                    # 同步贴图 + hugo 构建
make dev                      # 同步贴图 + hugo server
make sync                     # 仅同步贴图
make dev HUGO_ARGS="--port 1314"
make PY=python build          # 指定 Python 解释器

脚本按 $HUGO 环境变量、PATH、winget 安装目录的顺序查找 hugo。

组件写法

crafting 组件支持两种设置方式, 详见 assets/items/README.md:

  • 九格直填: a1="diamond" a2="stick" ... out="diamond_pickaxe";
  • pattern 别名: pattern="a a a\nb b b\nc c c" + a="diamond" b="stick"

贴图同步扫描器对两种写法都会收集物品 id。

规则细节

  • sfcraft 自定义贴图: 每次构建比对远端文件大小, 缺失或变化时更新;
  • 原版贴图: 只在本地缺失时下载, 不会覆盖手动放入 assets/items/ 的贴图;
  • 物品 id 即 assets/items/ 下的文件名(不含 .png);
  • wiki 命名规则: <英文名>_JE<版本>[_BE<版本>].png, 特殊命名(如 TNTFlint_and_Steel) 由 sync-items.py 中的变体生成与别名表处理。

网络要求

需要能访问 api.github.comraw.githubusercontent.comzh.minecraft.wiki。 若 CI 或离线环境不允许联网, 建议把 assets/items/ 下的贴图提交进仓库。