# 物品贴图库

本目录存放 `crafting` 合成组件使用的物品贴图（PNG）。

## 命名规则

一个物品对应一个文件：`<名称>.png`，文件名（不含 `.png`）就是引用时的名字。

例如放入 `diamond.png` 后，在合成组件中写 `a1="diamond"` 即可显示钻石。

> 推荐使用 16×16（或 32×32）的 Minecraft 像素风贴图，`image-rendering: pixelated` 会保证缩放后依然清晰锐利。

## 自动同步（推荐）

构建 / 开发时由 `scripts/sync-items.py` 自动维护本目录：

- sfcraft 自定义贴图（`amethyst_cauldron_blank`、`exp_totem`、`lunch_box`、`pearl_token` 等）
  从 [sfcraft 仓库](https://github.com/saltedfishclub/sfcraft/tree/rev/26.2/src/main/resources/assets/sfcraft/textures/item)
  自动下载，缺失或远端变更时更新；
- 原版物品（`diamond`、`stick` 等）在本地缺失时从 Minecraft wiki 自动获取；
- 手动放入的贴图不会被覆盖；找不到的贴图会报错并列出物品 id，阻止构建 / 开发。

请使用 `python scripts\build.py` / `python scripts\dev.py` 而非直接运行 `hugo`，详见 `scripts/README.md`。

## 组件用法

```markdown
{{< crafting
  a1="diamond" a2="diamond" a3="diamond"
  b1=""        b2="stick"   b3=""
  c1=""        c2="stick"   c3=""
  out="diamond_pickaxe"
  caption="钻石镐（可选）"
>}}
```

- `a1`~`c3`：3×3 合成格的九个格子，`out`：输出格；
- 值 = 贴图文件名（不含 `.png`），**留空 / 省略 = 空格子**；
- 需要显示堆叠数量时写 `名称:数量`，例如 `b2="stick:2"`；
- `caption` 可选，显示在组件下方居中说明文字；
- 未运行自动同步且贴图缺失时，格子内会显示一个 `?` 占位，方便发现写错的名字。

### pattern 别名模式（另一种写法）

不想数格子时，可以用 `pattern` 先画好形状，再为每个字符别名指定物品：

```markdown
{{< crafting
  pattern="a a a\nb b b\nc c c"
  a="diamond"
  b="stick"
  c=""
  out="diamond_pickaxe"
  caption="钻石镐"
>}}
```

- `pattern` 共 9 个 token（3 行 × 3 列），**必须写在一行内**，行间用 `\n` 表示；
- 每个 token 对应一个同名参数（`a`、`b`、`c`…），参数值就是物品 id；
- token 也可以直接写物品 id：`pattern="diamond stick ."`；
- `.` 表示空格子；
- 同时给出 `pattern` 和 `a1`~`c3` 时，以 `pattern` 为准（`out` 两者通用）。
