暮色森林世界生成特性(TFFeature)

暮色森林的全部结构由 TFFeature 枚举驱动(src/main/java/twilightforest/TFFeature.java)。 每个特性在 featureList[256] 数组中占一个 ID(TFFeature.java:76), ChunkProviderTwilightForest 按区块坐标查表决定生成哪个结构。

全部 21 个特性

ID 字段 size 显示名 标志
0 nothing 0 No Feature 装饰、无结构
1 hill1 1 Small Hollow Hill 装饰、地形改造
2 hill2 2 Medium Hollow Hill 装饰、地形改造
3 hill3 3 Large Hollow Hill 装饰、地形改造
4 hedgeMaze 2 Hedge Maze 地形改造
5 nagaCourtyard 3 Naga Courtyard 地形改造
6 lichTower 1 Lich Tower —
7 iceTower 2 Ice Tower —
8 questIsland 1 Quest Island 无结构
9 questGrove 1 Quest Grove 地形改造
10 druidGrove 1 Druid Grove 无结构
11 floatRuins 3 Floating Ruins 无结构
12 hydraLair 2 Hydra Lair 地形改造
13 labyrinth 3 Labyrinth 装饰
14 darkTower 1 Dark Tower —
15 tfStronghold 3 Knight Stronghold 装饰、无光环
16 worldTree 3 World Tree 无结构
17 yetiCave 2 Yeti Lairs 装饰、地形改造
18 trollCave 3 Troll Lairs 装饰、地形改造、无光环
19 finalCastle 3 Final Castle —
20 mushroomTower 2 Mushroom Tower —

size 字段是特性的区块尺寸(1 = 1×1 区块,3 = 3×3 区块), 决定该特性占据的生成范围。

特性标志含义

TFFeature 构造器(TFFeature.java:243-257)默认 hasProtectionAura = true(第 254 行), 其余标志通过链式方法设置:

标志 方法 含义
装饰 enableDecorations() 生成地表装饰(花草、苔石)
无结构 disableStructure() 只放装饰,不生成结构组件
地形改造 enableTerrainAlterations() 允许结构改变地形高度
无光环 disableProtectionAura() 不生成保护光环(阻止 Boss 刷怪)
进度成就门槛 setRequiredAchievement(Achievement) 玩家必须先拿到指定成就,该特性才会生成

2 个特性带 无光环 标志(TFFeature.java:102、:108):骑士要塞、巨人工厂 —— 这些结构内不会刷 Boss。 5 个特性带 无结构 标志(TFFeature.java:78、:91、:93、:94、:103): nothing(0)、questIsland(8)、druidGrove(10)、floatRuins(11)、worldTree(16) —— 它们只是装饰性地形,不是真正的遗迹。 8 个特性设了 进度成就门槛(TFFeature.java:88、:90、:96、:98、:100、:102、 :105、:107):lichTower(6)、iceTower(7)、hydraLair(12)、labyrinth(13)、 darkTower(14)、tfStronghold(15)、yetiCave(17)、trollCave(18)。 这是难度递增的硬性准入:没打过 Naga 就打不出巫妖塔。

⚠️ 命名陷阱:Lich Tower 不是巫妖的塔

特性 ID 6 的显示名是 “Lich Tower”,但它映射到 ComponentTFTowerMain(structures/lichtower/ 目录), 塔主是 Ur Ghast(TwilightForest:Tower Boss)。

真正的巫妖塔是特性 ID 14 darkTower(“Dark Tower”), 映射到 structures/darktower/ 目录。

特性 目录 实际塔主
lichTower(“Lich Tower”) structures/lichtower/ Ur Ghast
darkTower(“Dark Tower”) structures/darktower/ Twilight Lich + Knight Phantom

组件注册

structures/StructureTFMajorFeatureStart.java:52-74 的静态块注册了全部结构组件:

MapGenStructureIO.registerStructure(StructureTFMajorFeatureStart.class, "TFFeature");
MapGenStructureIO.registerStructure(StructureTFHollowTreeStart.class, "TFHollowTree");

9 个 registerPieces() 调用(要塞、蛇庭院、牛头人迷宫、黑暗塔、巫妖塔、冰塔、蘑菇塔、 空心树、巨人工厂)加 1 个 TFFinalCastlePieces.registerFinalCastlePieces()(第 65 行, 最终城堡用的是另一个方法名,不是 registerPieces())—— 共 10 个多部件结构。 另有 6 个一次性组件用 MapGenStructureIO.func_143031_a(...) 注册 (树篱迷宫、丘陵迷宫、空心丘陵、九头蛇巢穴、试炼林、雪怪洞穴)。

相关条目