BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。
模组:围栏
← 目录
此页面记录了游戏如何存储和解析围栏数据。这是面向模组开发者的高级指南。
数据格式
您可以通过编辑 Data/Fences 素材文件来添加或自定义围栏。
此素材文件内含一个“字符串 → 数据模型”查询,其中键为围栏物品的非限定性物品ID,值为包含如下字段的数据模型所组成的列表:
字段 | 效果 |
---|---|
Health | 围栏首次放置时的耐久值,这影响围栏腐烂的速度。围栏在游戏内每分钟会损失 1/1440 点耐久(大约每小时 0.04 点,或每 12 小时 0.5 点)。
修复围栏会将其最大耐久提升至 2 ×(基础耐久+微调),其中基础耐久就是此字段的值,而 微调值为介于 RepairHealthAdjustmentMinimum 和 RepairHealthAdjustmentMaximum 之间的随机数值。 |
Texture | 围栏放在地上的贴图集素材名称(相对于游戏的 Content 文件夹)。如有需要,请使用 \(在 JSON 中则为\\)分隔名称片段。例如,使用独立地块集的原版围栏形如 LooseSprites\Fence1(木围栏)。 |
RemovalToolIds RemovalToolTypes |
一个工具 ID 的列表(与 Data\ToolData 中的键相匹配),或 C# 的类型全名,用于指示可以打碎该围栏的工具。
下面的代码使玩家能用铱斧头或任何十字镐打碎围栏: "RemovalToolIds": ["IridiumAxe"],
"RemovalToolTypes": ["StardewValley.Tools.Pickaxe"]
如果希望指定拆除指定围栏的特定工具,则该工具必须位于相应的 RemovalToolIds '或 RemovalToolTypes 字段中。若两个列表都留空,则任何工具都能打碎围栏。 |
PlacementSound | 放置或修复此围栏时的声音提示ID(例如木围栏音效为 axe)。 |
RemovalSound | (可选)围栏被玩家打碎或拾起时播放的声音提示ID。默认与 PlacementSound 相同。 |
RemovalDebrisType | (可选)当围栏被某个工具打碎时,从地块上溅射出的视觉特效粒子类型。可用的取值为 0(铜)、2(铁)、4(煤)、6(金)、8(币)、10(铱)、12(木)、14(石)、34(大木头)。默认为 14(石)。 |
RepairHealthAdjustmentMinimum RepairHealthAdjustmentMaximum |
(可选)当围栏被玩家修复时,添加于其上的随机耐久值。参见 Health 字段描述。两个字段都默认为 0。 |
HeldObjectDrawOffset | (可选)当火把等物品放在围栏上时,应用于绘制位置的像素偏移。应当为形如 "<x> , <y> " 的字符串。若忽略,则默认为 "0, -20"。
|
LeftEndHeldObjectDrawX RightEndHeldObjectDrawX |
(可选)当栅栏水平放置,且仅右侧(对于 LeftEndHeldObjectDrawX)或左侧(对于 RightEndHeldObjectDrawX)连接有一个围栏时,要应用的 X 像素偏移量。此字段如果被应用,则将完全替换 HeldObjectDrawOffset 指定的 X 值。默认为 0。 |