更好的矿车菜单

更好的矿车菜单

一个快速简便的矿车传送菜单导航方式,采用分页界面,每个标签对应一个网络,并支持完整手柄操作。无需再翻页浏览数十个目的地!与主流模组完美集成。

用户界面

星露谷物语 更好的矿车菜单

在星露谷物语中安装了太多模组,导致矿车传送菜单难以管理,需要翻过多页才能找到目的地?更好的矿车菜单(Better Minecart Menu)是一个星露谷物语 SMAPI 模组,旨在解决这个问题,让你每次使用矿车时都能节省宝贵的数秒时间。

该模组提供以下功能:

  • 为矿车传送提供带标签页的界面,每个标签页对应一个网络(例如,鹈鹕镇、郊区、岭脊谷、东峭壁等)
  • 可选择左侧标签页(网络名称更易读)或顶部标签页(更适合小分辨率)
  • 将不可用的目的地显示为禁用按钮,让你清楚未来可以解锁哪些地点(可在配置中禁用)
  • (1.0.0 新增)自动找到“你在这里”的目的地,因为它们并非总是提供
  • 能够对网络标签页进行排序(需编辑 config.json)
  • 与主要的扩展和矿车模组完美集成
  • 未来易于添加更多跨模组集成

更多面向模组开发者(以及作弊者……无意冒犯)的功能——默认禁用:

  • 可以显示“未知”网络,即由其他模组注册但尚未集成到本模组中的网络。通常未知网络也能正常工作,但其标签页上不会有“网络名称”。这包括巴士和火车网络。
  • 可以显示已知但“隐藏”的网络,通常是其他模组中的火车和巴士网络,例如,你可以从任何矿车乘坐火车前往瓦皮乌斯山。
  • 强制允许点击禁用的目的地按钮,因此玩家无论是否满足通过矿车前往那里的条件,都可以传送。按钮仍会显示为禁用,但实际上是可以点击的。请谨慎使用,因为这可能会破坏游戏状态。

在 Github 上查看源代码

需求

设备兼容性

  • 已在 Linux/Mac/Windows 上使用 Stardew Valley 1.6 和 SMAPI 4.5.2 测试,以及在带有 Windows 构建的 Cinderbox Android 上测试
  • 未在原生 Android 应用上测试(欢迎测试者)
  • 支持键盘、鼠标和大多数游戏手柄
  • 未在触屏输入上测试(欢迎测试者)

跨模组兼容性

如何添加跨模组支持

为你的模组添加跨模组支持有三种方式:

  1. 在你的模组中自行实现,使用 Content Patcher 对目标进行 EditData:Sagittaeri.BetterMinecartMenu/MinecartNetworkEdits 例如:

    {
        "Action": "EditData",
        "Target": "Sagittaeri.BetterMinecartMenu/MinecartNetworkEdits",
        "Entries": {
            "CustomNetworkID": {
                "DisplayName": "Custom Network Name",
                "TabName": "CNN",
                "RemoveNetwork": false,
                "RedirectNetwork": "",
                "RemoveDestinations": [],
                "AppendDestinations": [],
                "OrderFromTop": ["CustomDestinationID.3", "CustomDestinationID.2", "CustomDestinationID.1"],
                "OrderFromBottom": []
            }
        }
    }
    

    这将在名为“CustomNetworkID”的自定义矿车网络上添加新元数据,包含以下字段:

    DisplayName = 在侧边标签页模式下看到的标签页文本,以及顶部标签页模式的标签页弹出文本 TabName = 在顶部标签页模式中看到的标签页文本——建议最多 3 个字母 RemoveNetwork = 从矿车 UI 中删除此网络(网络仍然存在,只是隐藏,如果用户在配置中选择“显示隐藏网络”,仍然可以看到) RedirectNetwork = 打开矿车菜单时,将输入的网络 ID 重定向到另一个 RemoveDestinations = 要从该网络移除的目的地 ID 列表 AppendDestinations = 要添加到该网络的目的地 ID 列表——注意,这会从所有其他网络中移除这些目的地 OrderFromTop = 要从顶部排序的目的地 ID 列表(如果存在) OrderFromBottom = 要从底部排序的目的地 ID 列表(如果存在)

    如果你只想为你的网络添加一个可本地化的名称,可以这样做:

    {
        "Action": "EditData",
        "Target": "Sagittaeri.BetterMinecartMenu/MinecartNetworkEdits",
        "Entries": {
            "CustomNetworkID": {
                "DisplayName": "{{i18n: Network.CustomNetworkID}}",
                "TabName": "{{i18n: Network.CustomNetworkID.Tab}}"
            }
        }
    }
    

    这将分别从“Network.CustomNetworkID”和“Network.CustomNetworkID.Tab”本地化键注册显示名称和标签页名称。欢迎在我的 Github 源代码 中浏览一些示例。

  2. 创建上述 CP,但不要在你的模组中运行,而是出于某种原因让它在我的模组中运行。如果你想走这条路,请 Fork 我的 Github 源代码,完成后提交 PR,我会在测试完毕后尽快合并。

  3. 让我为你的模组集成。如果是这样,请在本论坛或 Discord 上联系我。

安装

遵循 SMAPI 模组的常规安装步骤:

  1. 安装 SMAPI
  2. 下载本模组的最新版本并解压到 Mods 目录下
  3. 使用 SMAPI 运行游戏