客户端画作

客户端画作

一个模组,添加了完全客户端侧的自定义画作,且不替换原版画作。

装饰

Client Paintings

Client Paintings 是一个简单的、完全客户端的模组,可通过资源包添加新的画作,同时保持原版画作不变。 它通过查看画作实体的 UUID 并对其应用伪随机算法来决定渲染哪一幅画作。

本模组使用自定义资源包格式来添加新的画作, 你可以使用我网站上的 Client Paintings 资源包生成器 轻松生成此类资源包。或者,请参阅下方的资源包格式部分以获取技术说明。

特性

  • 通过资源包添加多组新的画作
  • 保持原版画作不变
  • 当显示原版画作时,它将与未安装该模组的玩家所看到的原版画作一致
  • 显示的自定义画作将与其他安装了该模组的玩家所看到的自定义画作一致
  • 自定义画作在重新登录和服务器重启后完全持久保留

注意事项

  • 只有当玩家使用完全相同的画作集时,自定义画作才会在玩家之间匹配
  • 画作集必须通过自定义资源包格式添加,详情见下文

示例

使用包含的默认资源包时:

原版玩家看到的内容:

资源包格式

资源包格式非常简单。它由位于资源包命名空间根目录下的单个 client_paintings 文件夹组成 (例如 assets/<namespace>/client_paintings)。 在此文件夹内,你可以放置任意数量的 json 文件,每个文件代表一幅自定义画作。

每个 json 文件必须具有以下结构:

{
  "texture": "<namespace>:client_paintings/painting_texture",
  "back": "<namespace>:client_paintings/painting_back_texture",
  "size": [2, 1]
}
  • texture 是画作的纹理,它必须是一张比例与 size 字段匹配的 png 图像, 其宽度和高度都必须是 16 的倍数。纹理必须位于 assets/<namespace>/textures/client_paintings 文件夹内。
  • back 是画作背面的纹理,它必须是一张正方形 png 图像,同样地,其宽度和高度 必须是 16 的倍数。
  • size 是画作以方块为单位的大小,第一个值是宽度,第二个值是高度。 请注意,由于需要替换原版画作,仅支持 1x1、1x2、2x1、2x2、4x2、4x4 和 4x3 尺寸的画作。

一个示例资源包结构如下所示:

pack.mcmeta
assets
└── namespace
    ├── textures
    │   └── client_paintings
    │       ├── painting1.png
    │       ├── painting2.png
    │       ├── painting3.png
    │       └── backs
    │           ├── back1.png
    │           └── back2.png
    └── client_paintings
        ├── painting1.json
        ├── painting2.json
        └── painting3.json

默认包含的资源包的源代码可在此处轻松浏览 here。