
门用五金
添加了两个功能完整的门,作为可制作、可购买的家具,可以打开、关闭和涂色。让模组制作者能够创建类似的门,以及带有钥匙和钥匙环的可上锁的门家具。
查看大图[youtube]-deHuwqq9dc[/youtube]
概要
此模组实现以下功能:
- 添加可制作或购买的(不可锁定)木门和铁门作为家具。
- 提供一个可选下载,添加可锁定(可锁定)的木门和铁门作为可制作或购买的家具。
- 添加配置选项,用于更改所添加门的制作和购买成本。
- 为模组制作者提供一种非常简便的方法来创建自己的、可选锁定的门家具。
- 实现门染色和自定义颜色选择器。
- 实现自定义门家具描述(游戏默认不允许自定义家具描述)。
- 实现玩家对门的开门、关门、上锁和开锁操作。
- 实现门的自定义碰撞边界,使玩家只与门框本身碰撞,而非整个瓦片。
- 为所有四种可能的旋转方向以及翻转实现正确的门动画,每个门共有八种可能的位置。
- 使NPC在穿过门时自动开关门。
- 提供指定延迟后门自动打开和自动关闭的选项。
- 为可锁定的门添加门钥匙物品类型,并为钥匙管理添加钥匙环物品类型。
- 添加钥匙命名、重命名和复制功能。
基本用法
你可以使用10个木材和5个硬木制作木门,或从罗宾处以2000金币购买。
你可以使用10个铁锭和5个精炼石英制作铁门,或从罗宾处以5000金币购买。
你可以在配置中更改所需的材料和价格。将材料留空或价格设为负数,将分别从制作和购买选项中移除该物品。
手持门时,你可以像旋转其他家具一样旋转它。要翻转门,请在手握门时按下翻转键(默认为F)。
门放置后,与其互动将使其打开或关闭。未上锁的门可以像其他家具一样被拾起。
要更改已放置门的颜色,可以将鼠标悬停在门上并滚动鼠标滚轮,或按下颜色键(默认为C)打开自定义颜色选择器。
可锁定的门
主模组文件不包含任何可锁定的门,但提供了对可锁定门的完整支持。有一个可选文件添加了两个可锁定的门,它们与两个普通门完全相同(除了名称中带有“可锁定”字样)。
要锁上一扇可锁定的门,走到它面前并按下锁定键(默认为L)。你必须面向并紧邻一扇门才能上锁或开锁。
第一次锁定一扇门时,它会给你一把钥匙并打开一个钥匙命名菜单,以便为钥匙命名。钥匙只对其创建时对应的门有效。
锁定的门无法被拾起。
要打开一扇可锁定的门,走到锁着的门前并按下锁定键。玩家背包中必须有对应的钥匙(或钥匙环上的钥匙)才能开锁。
钥匙可以使用组合键(默认为鼠标中键)进行组合,组合后会变成一个钥匙环。在背包中,按住一把钥匙(或钥匙环),悬停在另一把钥匙(或钥匙环)上,然后按下组合键。
要拆开钥匙环,请在不按住任何物品的情况下悬停在钥匙环上,然后按下组合键。
要复制一把门钥匙,在背包中悬停在钥匙上并按复制键(默认为C)。
要重命名一把门钥匙,在背包中悬停在钥匙上并按重命名键(默认为R)。
自动化
你可以在配置中设置门的全局自动化。
可以将门设置为碰撞时自动打开。NPC会在与门碰撞时自动开门(除非门是锁着的)。
可以设置在配置中指定延迟后门自动关闭。NPC会在10个游戏刻后自动关门(可在配置中更改)。
自动关门的计时器只有在没有玩家或NPC处于门范围内时才会倒计时。
自定义门精灵图
要更改此模组添加的两个门的精灵图,只需使用 Content Patcher 的 EditImage 函数指定它们的精灵图路径:
"aedenthorn.DoorFurniture_door"
要更改默认钥匙和钥匙环物品的精灵图,请使用 Content Patcher 的 EditImage 函数指定它们的精灵图路径:
"aedenthorn.DoorFurniture_key"
自定义门
创建基本自定义门非常简单。
首先,使用 Content Patcher 创建你的自定义门家具,例如:
{
"Action": "EditData",
"Target": "Data/Furniture",
"Entries": {
"aedenthorn.DoorFurniture_door3": "aedenthorn.DoorFurniture_door3/door/1 3/1 1/4/100/2/{{i18n:aedenthorn.DoorFurniture_door3}}/0/aedenthorn.DoorFurniture_door/true"
}
},
其次,为你的门家具提供精灵图。这是最困难的部分,因为精灵图需要三个与游戏原始精灵图不同的帧(用于门把手在门另一侧的旋转2)。你可以参考下面的精灵图:
[img width=256]https://github.com/aedenthorn/StardewValleyMods/blob/master/DoorFurniture/assets/door.png?raw=true[/img]
精灵图中的每个门需要8帧,如下所示:
旋转0,旋转1(以及翻转后的旋转3),旋转2,打开帧1,打开帧2,旋转2打开帧1,旋转2打开帧2,旋转2打开后的帧。
如果门是可染色的,你需要像上面那样添加灰度覆盖层。
像往常一样告诉 Content Patcher 关于你的精灵图,例如:
{
"Action": "Load",
"Target": "aedenthorn.DoorFurniture_door",
"FromFile": "assets/door.png"
},
第三,使用 Content Patcher 将此模组告知你的门家具,例如:
{
"Action": "EditData",
"Target": "aedenthorn.DoorFurniture/dict",
"Entries": {
"aedenthorn.DoorFurniture_door3": {},
}
},
就这样!
对于高级自定义门,你可以在字典条目中添加许多不同的字段,例如:
{
"Action": "EditData",
"Target": "aedenthorn.DoorFurniture/dict",
"Entries": {
"aedenthorn.DoorFurniture_door": {
"Bounds": [
{
"X": 0,
"Y": 48,
"Width": 64,
"Height": 16
},
{
"X": 48,
"Y": 0,
"Width": 16,
"Height": 64
},
{
"X": 0,
"Y": 0,
"Width": 64,
"Height": 16
},
{
"X": 0,
"Y": 0,
"Width": 16,
"Height": 64
}
],
"Type": "Door",
"Description": "Can be opened and closed.",
"KeyItem": "aedenthorn.DoorFurniture_key",
"KeyRingItem": "aedenthorn.DoorFurniture_keyring",
"OpenSound": "doorOpen",
"CloseSound": "doorClose",
"LockSound": "openBox",
"UnlockSound": "openBox",
"Lockable": false,
"AutoOpen": false,
"AutoCloseDelay": -1,
"ColorSpriteOffset": {
"X": 0,
"Y": 96
},
"Colorable": true,
"DefaultUncolored": true,
"DefaultColor": {
"B": 0,
"G": 0,
"R": 0,
"A": 255
},
"Colors": null
}
}
},
所有字段都可以安全地省略。
字段解释如下:
- Bounds - 碰撞边界(以像素为单位),每个门旋转方向一个。
- Type - 用于在工具提示中作为类别显示的彩色文本。
- Description - 在工具提示中代替通用家具描述显示的内容。
- KeyItem - 用作此类门的钥匙的物品的ItemId。
- KeyRingItem - 用作此类门钥匙的钥匙环的物品的ItemId。
- OpenSound - 门打开时播放的声音。
- CloseSound - 门关闭时播放的声音。
- LockSound - 门上锁时播放的声音。
- UnlockSound - 门开锁时播放的声音。
- AutoOpen - 无论模组配置设置如何,门是否应在玩家碰撞时自动打开。
- AutoCloseDelay - 在自动关门之前等待的游戏刻数(负值表示不会自动关闭)。
- Colorable - 此门是否可染色(需要在精灵图中包含灰度覆盖层)。
- ColorSpriteOffset - 灰度覆盖层在精灵图上与未染色精灵图的x-y像素偏移量。
- DefaultColor - 分配给(或用作占位符)未染色的可染色门的颜色。
- DefaultUncolored - 默认颜色是否应改为显示未染色的精灵图。
- Colors - 允许门被涂绘的自定义颜色列表。每个条目应包含“R”、“G”和“B”值。如果没有此列表,将使用游戏内的宝箱颜色。
模组配置
你可以使用GMCM编辑配置变量。选项包括:
- 全局自动开门和关门设置
- 门制作和购买成本
- 按键绑定
- 文本颜色
局限性
首先,请记住这些不是地图瓦片,它们是家具。所以,在我被问一百万次之前,不,它们不会根据你的地图重色模组而神奇地变色。幸运的是,你可以轻松实现自己的门,或者像上面解释的那样更改默认门的精灵图。
NPC不会尊重锁上的门——它们会直接穿过去;我认为由于它们的日程安排,另一种方案可能不可行。
技术信息
需要SMAPI。
实现了一个通用模组配置菜单接口,以便在游戏中更改配置设置。如果你有GMCM Options,你还可以在游戏中更改颜色。
代码位于https://github.com/aedenthorn/StardewValleyMods。
我所有星露谷物语模组的列表可在https://www.nexusmods.com/stardewvalley/articles/895找到。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。