🗂️ 图集(Atlas)
绝大多数资源包都不需要配置 Atlas。CraftEngine 会验证常见的方块和物品图集,并可自动修复相关问题。只有在你有特殊的资源包需求时才需要手动配置,例如向原版图集加入纹理、创建自定义精灵图集,或使用原版的高级精灵来源。
Atlas 用于告诉 Minecraft:某个图集中有哪些可用的纹理精灵。CraftEngine 会读取资源包 configuration/ 目录下配置文件中的 atlases:,并将结果写入:
assets/<命名空间>/atlases/<图集 ID>.json
相同图集 ID 可以分散定义在多个配置文件中;CraftEngine 会按加载顺序合并它们的来源。
基础示例
下面的配置与 Minecraft 默认的 minecraft:blocks 图集一致。纹理路径不需要写 textures/ 前缀和 .png 后缀。
atlases:
minecraft:blocks:
sources:
- type: directory
source: block
prefix: block/
- type: single
resource: minecraft:entity/bell/bell_body
这段配置会生成或扩展 assets/minecraft/atlases/blocks.json。
来源类型
下面每个示例都是图集 sources: 列表中的一项。完整的原版行为可参考 Minecraft Wiki 的 Atlas 文档。
directory
加入一个纹理目录及其子目录中的全部 PNG。
- type: directory
source: block
prefix: block/
source 是 assets/<图集命名空间>/textures/ 下的目录;prefix 会添加到每个生成的精灵 ID 前。需要将整个纹理目录加入图集时,通常使用此类型。
single
加入单张纹理。resource 是纹理 ID。sprite 为可选项;填写后,它会替代 resource 作为生成的精灵 ID。
- type: single
resource: my_pack:entity/custom_machine
sprite: my_pack:machine
filter
移除命名空间或路径匹配给定正则表达式的精灵。namespace 和 path 均为可选项,但至少应提供其中一个。
- type: filter
pattern:
namespace: my_pack
path: gui/.*
unstitch
从一张纹理中裁出多个区域,并将它们分别命名为精灵。resource 是源纹理;divisor_x 和 divisor_y 用于按源纹理缩放区域坐标,默认值均为 1。regions 中每项定义一个输出精灵,包含 sprite ID 和 x、y、width、height 矩形。
- type: unstitch
resource: my_pack:gui/sprites
divisor_x: 256
divisor_y: 256
regions:
- sprite: my_pack:gui/button
x: 0
y: 0
width: 20
height: 20
paletted_permutations
根据调色板纹理生成重新着色的纹理变体。textures 是基础纹理列表,palette_key 是键调色板,permutations 将每个输出后缀映射到替换调色板。separator 用于连接基础纹理名和后缀,默认值为 _。
- type: paletted_permutations
textures:
- my_pack:trims/items/helmet_trim
palette_key: minecraft:trims/color_palettes/trim_palette
separator: _
permutations:
ruby: my_pack:trims/color_palettes/ruby