逍遥小书生 发表于 2020-3-22 16:07

季节之气候Mod的编写进阶篇——crops

本帖最后由 逍遥小书生 于 2020-3-22 16:08 编辑

本打算一次性完整发布crops的编写指南的,结果花费了大量时间在理顺growthTransition的运作机制上,先前已经发布了图解,现在发布剩余的部分的说明。
这个系列一共三部分,前面已经发布了2个部分,现在属于第三部分。另外两个帖子链接链接:第一,Season模组的附加Mod——GEO的编写简介 主要介绍GEO和weather文件编写指南。
第二,Season模组的附加Mod——GEO中关于生长设定的图解主要是解释crops文件中growth部分的运行机制。
这次介绍crops的编写。

首先,crops总共分为三大单元,
growth                      作物每个月的生长设定
fruitTypes                  作物各种参数设定
cropRotation            作物的轮作设定

growth:生长设定
growth单元有一个全局参数,【growth overwrite="true"】,官方的注释是【Leave as false, if you are only appending new fruits. If set to true, you must make sure to define the growth for all fruits】,意思是如果只是想添加新作物的growth参数,请设置为【false】。一旦设置成【true】,你必须定义所有作物的growth参数。
我已经专门做了一个流程图,解释growthTransition的运作机制,gt的语法很简单,命令的作用也解释了,这里不再介绍。

fruitTypes:作物特性
我选取官方的玉米的设置来说明。
<fruitType name="MAIZE">                                 作物名称
    <cultivation plantsWeed="true"/>                     这个不明白作用,但是除了白杨树,其他都是'true'
    <growth germinateTemp="10"                         发芽所需土壤温度
            germinatesoilMoisture="5"                     发芽所需土壤湿度,暂时不明数值设置范围
            youngPlantMaxState="4"                         作物苗期最大阶段,过了这个阶段作物会进入成熟期
            maxFertiliseState="4"/>                        作物最多肥效阶段,注意,不施肥也算一个阶段,Season默认3个肥效阶段,因此这里是4。
    <options    seedDroughtResistanceFactor="2"               发芽期抗旱指数
                youngPlantDroughtResistanceFactor="3"         幼苗期抗旱指数
                maturePlantDroughtResistanceFactor="3"         成熟期抗旱指数
                seedFrostResistanceFactor="2"                        发芽期抗冻指数
                youngPlantFrostResistanceFactor="2"            幼苗期抗冻指数
                maturePlantFrostResistanceFactor="3"/>         成熟期抗冻指数
    <rotation category="CEREAL"                         轮作所属分类
            returnPeriod="1" />                           这个参数具体含义不明
</fruitType>
另外,别的作物还有其他的设定,"POTATO"在growth中有RequiresLime="false",土豆不会消耗石灰的次数。游戏中,开启石灰功能后,默认种植3次需要重新撒石灰。"GRASS"在growth中有youngPlantDamageState = "2"和maturePlantDamageState="2" 这个含义不明。
关于抗旱和抗冻指数,数值越大,能力越强,越不容易被损坏。官方指出,这个值是浮点型,可以设置为小数。数值为'4'可以无损,但是不要设置的比'4'大。
特别指明,杂草'WEED'也有它的特性,它在options有两个其他设置,weedWitherSoilTemp="0"和weedMatureSoilTemp="12",这是杂草生长所需的土壤温度和杂草成熟的温度,如果这俩参数设置的极大,杂草就没法生长了。
官方指明,不用把作物所有的特性列出来,只需要把你想要改变的列出来就可以了。下面的例子就是只更改种子发芽所需的土壤温度为‘3’:
<fruitType name="BARLEY">
       <growth germinateTemp="3" />
</fruitType> -->


cropRotation:轮作关系
Season有轮作的设定,合理的使用,可以增加作物的产量,如果轮作不合理,会减产,也就是所谓的重茬。这些设定建议不要更改。
官方设置的轮作有6大类,
OILSEED,       油料作物      CANOLA SUNFLOWER OILSEEDRADISH         
CEREAL,      谷物          BARLEY OAT WHEAT MAIZE
LEGUME,       豆类          SOYBEAN
ROOT,          根块类      SUGARBEET
NIGHTSHADE茄类          POTATO
GRASS            草类          GRASS POPLAR SUGARCANE COTTON
说实话,我有点难以理解甘蔗和棉花的分类。

GEO一般需要设置growth单元,fruitType单元推荐仅更改一下发芽温度,cropRotation不要更改。
到这里,完全可以制作一个属于自己的GEO了。如果对你有帮助,我感到很荣幸。




逍遥小书生 发表于 2020-3-22 16:09

我去,排版又废了。
页: [1]
查看完整版本: 季节之气候Mod的编写进阶篇——crops