BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。
模组:农作物数据
← 目录
这个页面解释了游戏如何存储和解析农作物数据。这是模组开发人员的高级指南。
原始数据
农作物数据储存在Content\Data\Crops.xnb中,可以解压缩以编辑。作为参考,以下为1.5.1的原始数据:
数据
{
"472": "1 1 1 1/spring/0/24/-1/0/false/false/false",
"473": "1 1 1 3 4/spring/1/188/3/0/false/true/false",
"474": "1 2 4 4 1/spring/2/190/-1/0/false/false/false",
"475": "1 1 1 2 1/spring/3/192/-1/0/true 1 1 0 .2/false/false",
"476": "1 1 1 1/spring/4/248/-1/0/false/false/false",
"273": "1 2 2 3/spring/34/271/-1/1/true 1 1 10 .1/false/false",
"831": "1 2 3 4/summer/42/830/-1/0/false/false/false",
"477": "1 2 2 1/spring/5/250/-1/1/false/false/false",
"478": "2 2 2 3 4/spring/6/252/-1/0/false/false/false",
"745": "1 1 2 2 2/spring/36/400/4/0/true 1 1 0 .02/false/false",
"479": "1 2 3 3 3/summer/7/254/-1/0/false/false/false",
"480": "2 2 2 2 3/summer/8/256/4/0/true 1 1 0 .05/false/false",
"481": "1 3 3 4 2/summer/9/258/4/0/true 3 3 0 .02/false/false",
"482": "1 1 1 1 1/summer/10/260/3/0/true 1 1 0 .03/false/false",
"483": "1 1 1 1/summer fall/11/262/-1/1/false/false/false",
"484": "2 1 2 1/summer/12/264/-1/0/false/false/false",
"485": "2 1 2 2 2/summer/13/266/-1/0/false/false/false",
"486": "2 3 2 3 3/summer/14/268/-1/0/false/false/false",
"833": "1 3 3 4 3/summer/43/832/7/0/false/false/false",
"433": "1 2 2 3 2/spring summer/40/433/2/0/true 4 4 0 .02/false/false",
"802": "2 2 2 3 3/spring summer fall winter/41/90/3/0/false/false/false",
"487": "2 3 3 3 3/summer fall/15/270/4/0/false/false/false",
"302": "1 1 2 3 4/summer/37/304/1/0/false/true/false",
"301": "1 1 2 3 3/fall/38/398/3/0/false/true/false",
"299": "1 2 2 2/fall/39/300/-1/1/false/false/false",
"488": "1 1 1 1 1/fall/16/272/5/0/true 1 1 0 .002/false/false",
"489": "2 2 1 2 1/fall/17/274/-1/0/false/false/false",
"490": "1 2 3 4 3/fall/18/276/-1/0/false/false/false",
"491": "1 1 1 1/fall/19/278/-1/0/false/false/false",
"492": "1 3 3 3/fall/20/280/-1/0/false/false/false",
"493": "1 2 1 1 2/fall/21/282/5/0/true 2 2 0 .1/false/false",
"494": "1 1 2 2/fall/22/284/-1/0/false/false/false",
"499": "2 7 7 7 5/spring summer fall/24/454/7/0/false/false/false",
"427": "1 1 2 2/spring/26/591/-1/0/false/false/true 255 186 255 223 191 255 255 246 0 255 80 0 255 158 193",
"429": "1 2 2 2/spring/27/597/-1/0/false/false/true 35 127 255 109 131 255 112 207 255 191 228 255 94 121 255 40 150 255",
"453": "1 2 2 2/summer/28/376/-1/0/false/false/true 255 0 0 254 254 254 255 170 0",
"455": "1 2 3 2/summer/29/593/-1/0/false/false/true 0 208 255 99 255 210 255 212 0 255 144 122 255 0 238 206 91 255",
"431": "1 2 3 2/summer fall/30/421/-1/0/false/false/false",
"425": "1 4 4 3/fall/31/595/-1/0/false/false/true 187 0 255 119 137 255 71 227 255 255 127 144 205 178 255 140 119 255",
"347": "2 4 6 6 6/fall/32/417/-1/0/false/false/false",
"495": "3 4/spring/23/16/-1/0/false/false/false",
"496": "3 4/summer/23/396/-1/0/false/false/false",
"497": "3 4/fall/23/404/-1/0/false/false/false",
"498": "3 4/winter/23/412/-1/0/false/false/false",
"885": "1 2 2 2/spring summer fall winter/44/771/-1/1/true 4 7 0 .01/false/false",
"890": "1 1 1 1/spring summer fall winter/47/889/-1/0/false/false/false",
}
格式
素材文件 Data\Crops 内含一个“字符串 → 数据模型”查询,其中:
- 键为种子物品非限定性物品ID。
- 值为包含如下字段的数据模型:
字段 | 效果 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Growth | |||||||||||||
Seasons | 生长季节(任意组合 spring、summer、fall 和 winter)。 | ||||||||||||
DaysInPhase | 此作物的各生长阶段。为一个整数列表。其中数字代表每天贴图索引增加的步长。(参见 SpriteIndex)。
例如,如果某个作物的此字段为 | ||||||||||||
RegrowDays | (可选)重新生长时间,-1 代表不能重新生长。作物会在重新生长期间保持“生长成熟”的贴图(即,DaysInPhase 最后一阶段的贴图)。默认为 -1。 | ||||||||||||
IsRaised | (可选)是否为不可穿行的棚架作物。默认为 false。 | ||||||||||||
IsPaddyCrop | (可选)此作物是否为水田作物,即,种在水边会有特殊的水田土壤贴图、较短的生长时间和自动灌溉。例如,未碾米和芋头都是水田作物。默认为 false。 | ||||||||||||
NeedsWatering | (可选)此作物是否需要灌溉(纤维种子无需灌溉)。默认为 true。 | ||||||||||||
收获 | |||||||||||||
HarvestItemId | 收获此作物时产出的物品。 | ||||||||||||
HarvestMethod | (可选)如何收获。可以为 Grab(徒手)、Scythe(镰刀)。默认为 Grab。 | ||||||||||||
HarvestMinStack HarvestMaxStack |
(可选)产出 HarvestItemId 最少和最多数量(在 HarvestMaxIncreasePerFarmingLevel 和 ExtraHarvestChance 被应用前)。每次收获作物时,会随机选取此区间内的一个数值(包含断电)。最小值默认为 1,最大值默认为最小值。 | ||||||||||||
HarvestMinQuality HarvestMaxQuality |
(可选)若非空,则这两个字段指示作物的最小和最大品质。此字段应用于品质按正常方式计算完成后,以提供品质约束。并不影响初始品质逻辑。 | ||||||||||||
HarvestMaxIncreasePerFarmingLevel | (可选)每个耕种冬季提供的额外收获数。会向下取整,并加到 HarvestMaxStack 上面。默认为 0。
例如,此字段取 0.2 代表五级耕种能收获的最大数量比初始多 1 个,十级耕种能收获的最大数量比初始多 2 个。 | ||||||||||||
ExtraHarvestChance | (可选)收获作物会产生额外收获物的概率,该值介于 0(从不)和 0.9(几乎总是)之间。这个概率会不断进行判定,直到判定失败,然后将成功判定的次数加到产出数量上。例如,西红柿使用 0.05。默认值为 0。这是一个几何级数,其期望值为 1/(1-ExtraHarvestChance) - 1,所以它会比你预期的更快增长。例如,当值为 0.9 时,这个字段的期望值为九个额外的作物。 | ||||||||||||
外观 | |||||||||||||
Texture | 作物的贴图集的素材名称(相对于游戏的 Content 文件夹)。例如,原版作物使用 TileSheets\crops。 | ||||||||||||
SpriteIndex | (可选)此作物在 Texture 中的贴图索引,其中每行仅有一种作物,而 0 代表第一行的作物。默认为 0。 | ||||||||||||
TintColors | (可选)绘制贴图时需要添加的颜色(例如,多彩的花)。每个作物会从此列表中随机取值。参见颜色格式。默认为空。 | ||||||||||||
成就 | |||||||||||||
CountForMonoculture | (可选)玩家是否可以售出 300 个此作物来达成“单一栽培”成就。默认为 false。 | ||||||||||||
CountForPolyculture | (可选)玩家是否必须售出 15 个此作物才能解锁“混合栽培”成就。默认为 false。 | ||||||||||||
高级 | |||||||||||||
PlantableLocationRules | (可选)关于何处可以播种的规则,若适用。会适用第一条匹配的规则。可以用于覆盖地点检查(例如,作物必须种在农场),但不能覆盖内建要求,例如作物需要土壤。】
此字段为包含如下字段的数据模型所组成的列表:
| ||||||||||||
CustomFields | 此条目的自定义字段。 |
下面代码添加了一个自定义的黄瓜作物(假设您已经添加了黄瓜种子和黄瓜的自定义物品):
{
"Format": "2.7.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/Crops",
"Entries": {
"Example.Id_CucumberSeeds": {
"Seasons": [ "summer" ],
"DaysInPhase": [ 1, 2, 2, 2 ], // grows in 7 days with four growing sprites
"HarvestItemId": "Example.Id_Cucumber",
"Texture": "{{InternalAssetKey: assets/crops.png}}",
"SpriteIndex": 0
}
}
}
]
}