BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。
模组:矿车
←目录
此页面解释如何编辑和创建矿车。这是面向模组开发者的高级指南。
数据格式
您现在可以通过编辑 Data\Minecarts 数据素材来扩展矿车。
此素材文件内含一个“字符串 → 模组”查询,其中:
- 键名为矿车网络的唯一字符串ID。当您与矿车互动时,会以列表显示矿车目的地。
- 值为包含如下字段的数据模型:
字段 | 效果 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Destinations | 此矿车网络的目的地。此字段为包含如下字段的数据模型所组成的列表:
| ||||||||||||||||||||
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 }
}
]
}