前置 Mod
详情
MinecartPatcher
需要自定义矿车?不必再找了!
1.6 版说明:
请注意,在 1.6 中,原版游戏已内置类似的行为。如果你的 mod 依赖本模组,在更新到 1.6 时,请使用新的原版功能(两者非常相似,且会得到更好的支持)。详情见此:https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.6#Custom_minecarts
它有什么作用?
它用一个几乎一模一样的副本替换了矿车目的地菜单,该菜单基于简单的内容数据运行。你可以使用 Content Patcher 添加新的矿车,或编辑原版矿车。
值得注意的是,虽然本模组运行并不需要 Content Patcher,但除了重新实现原版内容之外,它本身不提供任何功能,也没有任何实际优势。需要配合 Content Patcher 和其他模组才能让它发挥作用。
它是如何工作的?
它通过检查所使用的图块 ID 来检测矿车。然后将其与已定义矿车的列表进行比较,如果匹配到某个矿车,就会将其视作该矿车,显示菜单并在列表中排除当前选中的矿车。
这在多人游戏中可用吗**?**
可以。
这在安卓上可用吗**?**
目前不行。
添加新矿车
你只需放置图块就能添加新矿车——图块 ID 检查会检测到新的矿车。要让本模组为其服务,你需要为它添加一条内容条目。同一地图上的多个矿车之间应至少相隔 15 个图块。矿车的落点必须在矿车本身 5 个图块以内才能被正确检测到。如果你的矿车没有提供内容条目,它将回退到原版处理方式,这意味着你仍然可以使用其他模组或技巧创建自己的私人矿车网络,而本模组不应干扰它们。
编辑原版矿车
原版矿车已使用内容条目重新实现。以下键对应原版矿车:"minecartpatcher.busstop"、"minecartpatcher.town"、"minecartpatcher.mines" 和 "minecartpatcher.quarry"。它们使用了一个可选参数 VanillaPassthrough,该参数会使矿车将此字符串作为原版对话响应键传递,从而触发游戏的原生处理,例如 "Minecart_Bus"。如果存在 VanillaPassthrough 参数,则忽略 LandingPoint 和 LocationName。你可以编辑这些重新实现,并移除该参数,以重新定位或以其他方式调整这些原版矿车的参数。
使用 Content Patcher 添加矿车的示例语法如下:
{
"Format": "1.25.0",
"Changes": [
{
"Action": "EditData",
"Target": "MinecartPatcher.Minecarts",
"Entries": {
"morecarts.islandnorth": {
"LocationName": "IslandNorth",
"DisplayName": "Island North",
"LandingPointX": 19,
"LandingPointY": 13,
"LandingPointDirection": 2,
"IsUnderground": false
}
}
}
]
}
可用字段
- LocationName - 一个字符串。内部地图名称,用于定位传送目标。
- DisplayName - 一个字符串。将出现在目的地选择菜单中的显示名称。
- LandingPointX - 一个整数,玩家应到达的 x 图块坐标。必须在矿车 5 个图块以内。
- LandingPointY - 一个整数,玩家应到达的 y 图块坐标。必须在矿车 5 个图块以内。
- LandingPointDirection - 一个整数,玩家到达时应朝向的方向 ID。
- IsUnderground - 一个布尔值。使游戏将其视作矿井那样处理,在特定情况下静音音乐。
- MailCondition - 一个字符串。要检测的邮件标志 ID,例如原版采石场矿车使用的 "ccCraftsRoom"。
- VanillaPassthrough - 一个字符串。它不会传送玩家,而是将此字符串作为对话响应传递给原版处理器。用于在其他模组改变了原版矿车行为时重新实现它们。
- NetworkId - 一个字符串。如果未提供,该矿车将连接到原版网络。如果提供,它只会连接到具有相同 NetworkId 字符串的其他矿车。
特别感谢了不起的 CommieKazie 对本模组的贡献!
(1.2.0,修复分屏合作以及弃用警告)
许可证
许可证为 MIT。随意折腾。源码在此:GitHubhttps://github.com/bwdy/SDVModding/tree/main/MinecartPatcher


