MinecartPatcher 封面

MinecartPatcher

星露谷物语模组工具

将矿车变为一种内容类型,可供 Content Patcher 访问,从而能够轻松修改现有矿车并添加新矿车。还能创建新的、独立的矿车网络,并能优雅地处理网络中的大量矿车。

前置 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