家具展示框架

家具展示框架

允许你把家具标记为拥有可见存储栏位。

这个模组是一个框架,允许你将特定的家具指定为拥有“插槽”,你可以在这些插槽中放置普通物品用于展示。

要在家具上放置物品,请在手持待放置物品时,在插槽上点击鼠标左键。

要将物品从展示家具上取下,请在带有物品的插槽上点击鼠标右键。

你可以在配置文件中更改这些按键。

如果一个插槽中已有与待放置物品不同的物品(或相同但品质不同的物品),它们会被互换。

如果一个插槽中已有相同品质的相同物品,物品数量将增加到该物品的最大堆叠数。

目前,只有普通的原版物品(ObjectInformation.json 中的任何物品)可以放置展示(一旦新版本的星露谷物语物品框架发布,这应该会有所改进)。

使用此框架的模组:



创建展示家具

要将家具指定为具有插槽,请使用 Content Patcher,例如:

{
    "Format": "1.23.0",
    "Changes": [
        {
            "Action": "EditData",
            "Target": "Mods/aedenthorn.FurnitureDisplayFramework/dictionary",
            "Entries": {
                "Luxury Table": {
                    "slots": [
                        {
                            "slotRect": {
                                "X": 1,
                                "Y": 6,
                                "Width": 9,
                                "Height": 9
                            },
                            "itemRect": {
                                "X": 2,
                                "Y": 6,
                                "Width": 9,
                                "Height": 9
                            }
                        },
                        {
                            "slotRect": {
                                "X": 11,
                                "Y": -4,
                                "Width": 10,
                                "Height": 10
                            },
                            "itemRect": {
                                "X": 11,
                                "Y": -3,
                                "Width": 9,
                                "Height": 9
                            }
                        },
                        {
                            "slotRect": {
                                "X": 11,
                                "Y": 15,
                                "Width": 10,
                                "Height": 10
                            },
                            "itemRect": {
                                "X": 11,
                                "Y": 14,
                                "Width": 9,
                                "Height": 9
                            }
                        },
                        {
                            "slotRect": {
                                "X": 21,
                                "Y": 6,
                                "Width": 9,
                                "Height": 9
                            },
                            "itemRect": {
                                "X": 20,
                                "Y": 6,
                                "Width": 9,
                                "Height": 9
                            }
                        }
                    ]
                }
            }
        }
    ]
}

这样会为豪华桌子添加四个插槽。

键

键必须是家具的全名或未限定的 ItemId。如果家具有多个旋转方向,你可以使用以下语法为每个旋转方向进行配置:

<家具名称>:<旋转索引>

例如,对于冬季餐桌,你需要为以下条目进行配置:

Winter Dining Table:0 和 Winter Dining Table:2

多个桌子或旋转方向可以通过用逗号分隔多个名称来共享同一配置,例如:

"Winter Dining Table:0,Festive Dining Table:0"

值

每个插槽有两个矩形:

  • slotRect:指定家具的可点击部分。
  • itemRect:指定家具上展示物品的部分。

矩形尺寸基于缩放前的实际家具纹理大小。

矩形坐标相对于家具的边界框(家具占用的地块)的左上角,而不是纹理本身。因此,豪华桌子的边界框是 32x32(2 个地块 x 2 个地块,缩放前每个地块是 16x16)。这就是为什么我在上面的示例中为顶部插槽使用了负的 Y 值。

技术细节

需要 SMAPI,使用 Harmony。

兼容 Mod Updater 以实现自动更新。

代码位于 https://github.com/aedenthorn/StardewValleyMods。

如果你想要投诉、寻求帮助或帮助我测试我的模组,可以访问 我的 Discord 服务器。

我所有星露谷物语模组的列表可在 https://www.nexusmods.com/stardewvalley/articles/895 找到。