维护提醒

BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。

全站通知:

模组:矿车

来自星露谷物语维基
跳到导航 跳到搜索

目录

此页面解释如何编辑和创建矿车。这是面向模组开发者的高级指南。

数据格式

您现在可以通过编辑 Data\Minecarts 数据素材来扩展矿车

此素材文件内含一个“字符串 → 模组”查询,其中:

  • 键名为矿车网络的唯一字符串ID。当您与矿车互动时,会以列表显示矿车目的地。
  • 值为包含如下字段的数据模型:
字段 效果
Destinations 此矿车网络的目的地。此字段为包含如下字段的数据模型所组成的列表:
字段 效果
Id 此网络中目的地的唯一字符串 ID
DisplayName 一个模板字符串,用于在矿车菜单中显示目的地名称。您可以使用 LocationName 标记来代表地点的显示名称(例如 [LocationName Desert] 代表沙漠的显示名称)。
TargetLocation 目的地的地点 ID
TargetTile 地点内目的地的地块坐标,为一个具有 XY 字段的数据模型。
TargetDirection 玩家到达后面部朝向(取 downleftrightup 之一)。
Condition (可选)一个游戏状态查询,指示该矿车是否可用。默认为总是可用。
Price (可选)到达此目的地所需花费的金币。默认为空。
BuyTicketMessage (可选)若此目的地需要付费,则此字段为用于显示付费确认消息的模板字符串。若存在 {0},则其会被替换为价格。默认为此网络的 BuyTicketMessage 字段。
CustomFields (可选)此目的地的自定义字段
UnlockCondition (可选)一个游戏状态查询,用于指示此矿车网络是否解锁。默认为总是解锁。
LockedMessage (可选)一个模板字符串,当矿车 UnlockCondition 字段为 false 时与之互动就会显示此消息。默认为 "Out of order" 的翻译。
ChooseDestinationMessage (可选)一个模板字符串,用于提示用户选择目的地。默认为 "Choose destination:" 的翻译。
BuyTicketMessage (可选)若目的地需要付费,则此字段为用于显示付费确认消息的模板字符串。若存在 {0},则其会被替换为价格。默认为 "Buy a ticket for {0}g?" 的翻译。

打开矿车目录

您可以使用 Action: MinecartTransport [network ID] [exclude destination ID] 地图属性来打开矿车目录。当玩家与此地块互动时,就会打开 [network ID] 矿车网络(默认为 Default)的菜单。若指定了 [exclude destination ID],则矿车菜单会隐藏对应的目的地(常用于隐藏当前地点)。例如,巴士站矿车使用 Action: MinecartTransport Default Bus

对于 C# 模组,您可以调用 Game1.currentLocation.ShowMineCartMenu(networkId, excludeDestinationId),工作方式几乎相同(除了需要 networkId)。

示例

下面的 Content Patcher 内容包添加了铁路作为矿车目的地,然后添加了一个装饰性矿车。在地震事件发生后解锁此矿车。

{
    "Format": "2.7.0",
    "Changes": [
        // add minecart destination
        {
            "Action": "EditData",
            "Target": "Data/Minecarts",
            "TargetField": [ "Default", "Destinations" ], // for the "Default" network, edit the "Destinations" field
            "Entries": {
                "Railroad": {
                    "Id": "Railroad",
                    "DisplayName": "[LocationName Railroad]",
                    "Condition": "LOCATION_ACCESSIBLE Railroad",

                    "TargetLocation": "Railroad",
                    "TargetTile": { "X": 16, "Y": 39 },
                    "TargetDirection": "down",
                }
            }
        },

        // add decorative minecart
        {
            "Action": "EditMap",
            "Target": "Maps/Railroad",
            "FromFile": "assets/Custom_Railroad_Minecart.tmx",
            "ToArea": { "X": 15, "Y": 35, "Width": 4, "Height": 5 }
        }
    ]
}