群系配置属性

全部 374 个 RTG 群系共用同一套配置项。配置项在 rtg.api.biome.BiomeConfig 构造函数里用 addProperty(new BiomeConfigProperty(...)) 一次性注册,每个群系各自持有一份独立副本, 落在 config/RTG/rtg.cfg(全局段)与 config/RTG/biomes/<pack>.cfg(逐群系段)。 目录名是大写 RTG(rtg/RTG.java:112:configPath = event.getModConfigurationDirectory() + "/RTG/"), 逐群系配置在 biomes/ 子目录下(rtg/config/ConfigManager.java:65-88)。

下表的默认值全部是源码里 addProperty 传入的字面量,即「用户从未改过 .cfg 时的实际值」。

配置项总表(16 项)

配置 ID 类型 源码默认值 取值范围 含义
allowVillages BOOLEAN true — 该群系是否允许生成村庄
allowVolcanoes BOOLEAN false — 该群系是否允许生成火山(默认关闭)
volcanoChance INTEGER -1 -1 … Integer.MAX_VALUE 火山生成几率,1/x。-1 = 跟随全局;0 = 该群系禁用;1 = 必生成;2 = 50%;4 = 25%
useRTGDecorations BOOLEAN true — 是否使用 RTG 装饰(自定义树、灌木、巨石等)。false 时只用原版装饰
useRTGSurfaces BOOLEAN true — 是否使用 RTG 地表(自定义 top/filler 块与 podzol 之类的 mix 块)。false 时只用原版地表
surfaceTopBlock STRING ""(空) — 自定义顶层方块,如 minecraft:grass。留空 = 用该群系自带的
surfaceTopBlockMeta STRING ""(空) — 上层方块的 data value,如红羊毛填 6
surfaceFillerBlock STRING ""(空) — 自定义填充方块(顶层方块正下方那一层),如 minecraft:dirt
surfaceFillerBlockMeta STRING ""(空) — 填充方块的 data value
surfaceCliffStoneBlock STRING ""(空) — 山体崖壁用的石头方块(通常是石头与圆石混出来的效果)
surfaceCliffStoneBlockMeta STRING ""(空) — 崖壁石头方块的 data value
surfaceCliffCobbleBlock STRING ""(空) — 崖壁用的圆石方块
surfaceCliffCobbleBlockMeta STRING ""(空) — 崖壁圆石方块的 data value
caveDensity INTEGER -1 -1 … 40 洞穴大小。越大洞越大、越卡。14 = 原版密度。-1 = 跟随全局,0 = 该群系禁用洞穴
caveFrequency INTEGER -1 -1 … 40 洞穴数量。越小洞越多、越卡。6 = 原版频率。-1 = 跟随全局,0 = 禁用
ravineFrequency INTEGER -1 -1 … 100 沟壑数量。越小沟壑越多。50 = 原版频率。-1 = 跟随全局,0 = 禁用
— — — — 以上 16 项由基类构造函数统一注册

前三项布尔开关与 volcanoChance 之外,洞穴与沟壑也是逐群系可配的, 取值点在 MapGenCavesRTG 与 MapGenRavineRTG:

// MapGenCavesRTG.java:248-252
caveDensity  = (config._int(BiomeConfig.caveDensityId)   > -1) ? config._int(...) : <全局值>;
caveFrequency= (config._int(BiomeConfig.caveFrequencyId) > -1) ? config._int(...) : <全局值>;

// MapGenRavineRTG.java:203-204
ravineFrequency = (config._int(BiomeConfig.ravineFrequencyId) > -1) ? config._int(...) : <全局值>;

即:群系值为 -1 时回落到 config/RTG/rtg.cfg 的全局段。

读取方式

BiomeConfig 提供三个取值方法,全部走 propertyMap:

方法 用途
_boolean(String id) 读 BOOLEAN 项
_int(String id) 读 INTEGER 项
_string(String id) 读 STRING 项

三者行为一致:找不到就抛 RuntimeException,异常信息里带上 Biome config property (<modSlug>.<biomeSlug>.<id>) could not be found.。

因此生成面的代码写作 config._boolean(BiomeConfigVanillaIcePlains.decorationLogsId) 这种形式, 属性 ID 常量定义在各自的 BiomeConfig* 子类里(decorationLogsId 属于 IcePlains, 不属于 BiomeConfig 基类的 16 项)。

配置键的层级

BiomeConfigManager 用 "biome." + modSlug + "." + biomeSlug 构造 .cfg 里的分类名, 所以一个群系的某个属性在配置文件中长这样:

biome.vanilla.iceplains.allowVillages
biome.vanilla.iceplains.volcanoChance

<modSlug>.<biomeSlug> 的二元组即本 wiki 各群系包条目里「配置键」列的值。 <modSlug> 与目录名不一定相同——icmod 目录的前缀是 ICMod, itd 目录的前缀是 inthedarkness。

相关条目