维护提醒

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

全站通知:

模组:野树

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

模组:目录

此页面是关于野树游戏数据格式的文档。这是面向游戏开发者的高级指南。

数据格式

您可以通过编辑Data/WildTrees素材文件以创建/编辑野树

此素材内含一个“字符串 → 数据模型”的查询,其中:

  • 键名为树的类型的唯一字符串ID。原版的野树ID为 1(橡树)、2(枫树)、3(松树)、6(沙漠棕榈)、7(蘑菇树)、8(桃花心木)、9(姜岛棕榈)、10(绿雨树一)、11(绿雨树二)、12(巨型蕨菜)、13(神秘树)。
  • 值为包含如下字段的数据模型所组成的列表。
字段 效果
Textures 用于此树游戏贴图的贴图集。若列出多个贴图集,则使用第一个匹配成功的贴图集。

此字段为包含如下字段的数据模型所组成的列表:

字段 效果
Texture 贴图素材名称。
Season (可选)若设置此字段,则指示此贴图适用的季节。对于更复杂的条件,参见 Condition.
Condition (可选)一个游戏状态查询,指示是否应当应用此贴图。默认为总是允许。

每当树被创建或其贴图被模组重载时,就会检查此字段。较为频繁的条件(例如一天中的事件)不会按预期工作,除非模组手动触发树更新。

SeedItemId (可选)种子物品的限定性物品ID。若忽略此字段,则不能用种子种植此树,且 SeedOnShakeChance 会被忽略。
SeedPlantable (可选)此种子是否可以被玩家种下。若否,则只能通过地图属性自动种下此树。默认为 true。
GrowthChance (可选)树在无树肥的情况下,每天生长到下一阶段的概率,取值介于 0(从不生长)到 1(每天生长)之间。默认 0.2(20% 概率)。
FertilizedGrowthChance (可选)相当于 GrowthChance,但是在有树肥的条件下。默认为 1(100% 概率)。
SeedSpreadChance (可选)树每天向周围地块散布一个种子的概率,取值介于 0(从不)到 1(总是)之间。仅用于可以散布种子的地点(例如原版中的农场)。默认为 0.15(15% 概率)。
SeedOnShakeChance (可选)树每天产出一个摇树可获得的种子的概率,取值介于 0(从不)到 1(总是)之间。默认为 0.05(5% 概率)。
SeedOnChopChance (可选)玩家砍倒树木可能掉落种子的概率,取值介于 0(从不)到 1(总是)之间。默认为0.75(75% 概率)。
DropWoodOnChop (可选)玩家砍倒树木是否掉落木材。默认为 true。
DropHardwoodOnLumberChop (可选)玩家砍倒树木是否掉落硬木,若玩家具有伐木工人职业。默认为 true。
IsLeafy (可选)摇树或砍树时是否落叶和发出沙沙声。落叶时游戏会使用树桩贴图左侧的四个树叶贴图。默认为 true。
IsLeafyInWinter (可选)IsLeafy 是否也适用于冬季。默认为 false。
GrowsInWinter (可选)树是否可以在冬天生长(依据 GrowthChanceFertilizedGrowthChance)。默认为 false。
IsStumpDuringWinter (可选)树在春季是否变为树桩且在春季重新生长,例如原版的树#蘑菇树。默认为 false。
AllowWoodpeckers (可选)是否可以生成啄木鸟。默认为 true。
UseAlternateSpriteWhenNotShaken
UseAlternateSpriteWhenSeedReady
(可选)当玩家当天没有摇动树时(UseAlternateSpriteWhenNotShaken)或已经结了种子时(UseAlternateSpriteWhenSeedReady)是否使用不同的贴图。若其中之一为 true,则树木贴图表必须为双倍宽度,且替代贴图位于右侧。若两个自动都为 true,则使用相同的替代贴图。默认为 false。
DebrisColor (可选)砍树时的木屑颜色。可以为下列取值之一:
  • 标准颜色格式
  • 或者选择以下颜色之一:12(棕色/木色),100001(白色),100001(浅绿色),100002(浅蓝色),100003(红色),100004(黄色),100005(黑色),100006(灰色),或 100007(木炭色/暗灰色)。

默认为 12 (棕色/木色)。

SeedDropItems (可选)当使用 SeedOnShakeChance 中的规则掉落种子时的掉落物,覆盖SeedItemId 字段。若此字段为空或没有匹配项,则调用 SeedItemId 字段。

此字段为包含如下字段的数据模型所组成的列表:

字段 效果
通用字段 参见物品生成字段以了解受支持的物品字段。

若设为返回多个物品的物品查询,则随机选取一个。

Season (可选)若设置此字段,则此物品仅在指定季节适用。
Chance (可选)掉落此物品的概率,取值介于 0(从不掉落)和 1(总是掉落)之间。默认为 1(100% 概率)。
ContinueOnDrop (可选)若此物品已掉落,是否继续判定此列表中的余下项目掉落。默认为 false。
ChopItems (可选)树被砍倒时附加的掉落物。所有匹配成功的物品都会掉落。

此字段为包含如下字段的数据模型所组成的列表:

字段 效果
通用字段 参见物品生成字段以了解受支持的物品字段。

若设为返回多个物品的物品查询,则随机选取一个。

Season (可选)若设置此字段,则此物品仅在指定季节适用。
Chance (可选)掉落此物品的概率,取值介于 0(从不掉落)和 1(总是掉落)之间。默认为 1(100% 概率)。
MinSize
MaxSize
(可选)产出此物品所需的最小和/或最大生长阶段。可用的取值为 SeedSproutSaplingBushTree。两个字段都默认为无限制。
ForStump (可选)此物品的产出条件,可以为:仅当为树桩(true)、仅当非树桩(false)或无限制(null)。默认为 false(仅当非树桩)。
ShakeItems 树木长成后,摇动树木产出的物品。仅适用于每天第一次摇动。所有匹配成功的物品都会掉落。

此字段为包含如下字段的数据模型所组成的列表:

字段 效果
通用字段 参见物品生成字段以了解受支持的物品字段。

若设为返回多个物品的物品查询,则随机选取一个。

Season (可选)若设置此字段,则此物品仅在指定季节适用。
Chance (可选)掉落此物品的概率,取值介于 0(从不掉落)和 1(总是掉落)之间。默认为 1(100% 概率)。
TapItems 此树的树液采集器产出物品。若可以产出多个物品,则选取第一个可用的。

此字段为包含如下字段的数据模型所组成的列表:

字段 效果
通用字段 参见物品生成字段以了解受支持的物品字段。

若设为返回多个物品的物品查询,则随机选取一个。

Season (可选)若设置此字段,则此物品仅在指定季节适用。
Chance (可选)掉落此物品的概率,取值介于 0(从不掉落)和 1(总是掉落)之间。默认为 1(100% 概率)。
DaysUntilReady 收集树液所需天数。
PreviousItemId (可选)若设置此字段,则仅当树液采集器前一产出物品匹配给定的限定性物品ID之一时才可能产出此物品。若其中某个列表项为空或空字符串,则匹配之前没有产出任何物品的情形。

例如:"PreviousItemId": [ null ] 表示仅当第一次将树液采集器添加到树上时才可能产出此物品,而 "PreviousItemsId": [ "(O)420" ] 表示玩家刚收获了红蘑菇(物体 #420)时才可能产生此物品。

DaysUntilReadyModifiers (可选)应用于 DaysUntilReady修饰器。默认为空。
DaysUntilReadyModifiersMode (可选)修饰器模式,用于指定 DaysUntilReadyModifiersMode 有多个修饰器同时应用时叠加的方式。默认为 Stack
PlantableLocationRules (可选)决定您可以在哪里种下种子的规则,若适用。适用第一条匹配的规则。此字段可以覆盖地点检查(例如作物只能种在农场),但是无法改变内建要求,例如作物需要土壤。

此字段为包含如下字段的数据模型所组成的列表:

字段 效果
Id 此列表项的唯一字符串ID
Result 指示选中此列表项时是否可以种树。可用的取值为:
  • Default:若此地点正常情况下允许种树,则可以种。此字段可用于打断进一步的规则检查,并发送一条自定义的 DeniedMessage
  • Allow:无论此地点正常情况可否种树,都可以种。
  • Deny:无论此地点正常情况可否种树,都不能种。
Condition (可选)一个游戏状态查询,指示是否应当应用此列表项。默认为 true。
PlantedIn (可选)应用此列表项所需的种植上下文。可用的取值为 Ground(直接种在地上)、GardenPot (种在花盆里)或 Any。默认为Any

注意树不能种在花盆里。

DeniedMessage (可选)若此列表项禁止玩家种下种子,则此字段给出的模板字符串用于向玩家显示提示信息(或 null 表示采用此上下文的默认逻辑)。当 ResultDefault 时导致禁止种树时也会应用此字段。
CustomFields 此列表项的自定义字段
GrowsMoss 树在温暖季节是否生长苔藓。若为 true,则树木贴图表必须为三倍宽度,最右边一列为长苔藓的树木和树桩贴图。

生成野树

自定义树木可以按如下两种方式添加进游戏:

  • 创建地点时使用地图地块生成,即使用新的 SpawnTree: wild <tree ID> [growth stage on location created] [growth stage on day-update regrowth] 地块属性。此属性必须添加到 Paths 层中 paths 地块表索引 34 的地块。
  • 或按通常方式给予玩家种子(例如,通过商店信件等)。