绘画选择界面:Lagn't

绘画选择界面:Lagn't

绘画选择界面的无尘室移植版,修复了大型自定义绘画集合导致的荒谬延迟问题。50多幅画?没问题。大概吧。

绘画选择界面:Lagn't

MC 1.12.2 // Cleanroom

tl;dr

这是 Paintings++ 选择界面的 Cleanroom 移植版,修复了大型自定义绘画集合带来的卡顿问题。

(这是一个很小的修复。说实话,制作缩略图可能比编写代码花的时间还长。)

1.4 版本可不是这样。

改动内容

  • 绘画尺寸现在每种尺寸只检查一次。 这意味着添加数百个相同尺寸的绘画不再会使放置检查变慢数百倍。
  • 移植到 Cleanroom。
  • 新增:右键点击已放置的绘画即可更换。 只需右键点击绘画即可打开选择界面并挑选新的绘画。
  • 移除了一些未使用的代码。

1.4 及以上版本:

  • 新增配置文件。
  • 更多性能改进。
  • 改进了界面布局。 布局计算现在能更好地利用可用空间。
  • 新增平滑滚动。 在界面中浏览大型绘画集合时现在更流畅、更快速。
  • 移除了更多未使用的代码。
  • 更多改动和细节请查看更新日志。

适用场景

如果你通过 JSON Paintings 使用了大量自定义绘画,这个模组应该能让绘画界面流畅得多,即使有数百或数千个绘画也是如此。

添加你自己的绘画

想添加你自己的绘画?这很简单。

安装 JSON Paintings 和本模组,然后找到 JSON Paintings 创建的 paintings 文件夹。在其中你会找到 paintings.json 和一个 textures 文件夹。把你实际的绘画图片放在 textures 文件夹内。你可以随意命名;在本示例中,为了简单起见,我使用 1.png、2.png、3.png 等。

paintings/
├── paintings.json
└── textures/
    ├── 1.png
    ├── 2.png
    ├── 3.png
    └── ...

接下来,打开 paintings.json 并为每个绘画添加一个条目,包括其宽度和高度:

[
    {
        "motive": "1",
        "width": 3,
        "height": 2
    },
    {
        "motive": "2",
        "width": 4,
        "height": 4
    },
    {
        "motive": "3",
        "width": 3,
        "height": 2
    },
    {
        "motive": "4",
        "width": 2,
        "height": 4
    }
]

motive 是不带 .png 后缀的纹理名称。width 和 height 是绘画以方块为单位的尺寸。

例如,"motive": "1" 使用 textures/1.png,而 "width": 3, "height": 2 使其成为一个 3×2 的绘画。

一个小性能提示

如果你打算添加数百个绘画,最好先优化你的图片。诸如 Pinga 之类的工具可以减小 PNG 文件大小并节省一些空间。尽量让单个绘画保持合理的小尺寸;如果你要构建大型收藏集,每张图片约 100–200 KB 或更小 是一个不错的目标。

还要确保你的文件实际上是 PNG 编码的,而不仅仅是具有 .png 扩展名。正确编码和优化的 PNG 可以使纹理文件更小,并有助于减少不必要的加载开销。

如果你不想从零开始构建收藏集,你还可以从 Rebirth of the Night 获取 paintings 文件夹并根据自己的需求进行修改,或者直接拿来使用并欣赏 RotN 的画作。

准备图片

如果你从互联网上获取图片,你可能需要在放入游戏前将它们裁剪成正确的形状。这个 PNG 裁剪器 是一个将图像裁剪成所需形状的简单方法。

尽量使图片的宽高比与绘画的 width 和 height 相匹配。例如,一个 3×2 的绘画应使用具有 3:2 宽高比 的图片。否则,你的绘画在游戏中可能会显得拉伸或压扁。

裁剪后,将其保存为真正的 PNG。如果原始图片很大(例如,2 MB 以上),请先将其保存/导出为 JPG 以减小文件大小,理想情况下小于 1 MB。然后将 JPG 转换为 PNG,使用 Pinga 优化 PNG,并将其放入 textures 文件夹,文件名即为你要用作 motive 的名称。

鸣谢

基于 Paintings++ 的选择界面;这是一个 Cleanroom 移植版,包含性能修复和上述改动。

// 快乐的绘画。