暮色森林世界生成特性(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(...) 注册
(树篱迷宫、丘陵迷宫、空心丘陵、九头蛇巢穴、试炼林、雪怪洞穴)。
相关条目
- Dark Tower(黑暗高塔) - 巫妖与幻影骑士的塔
- Lich Tower(光明高塔,实为 Ur Ghast) - 命名陷阱所在
- Ice Tower(冰霜高塔) - 雪之女王的塔
- Mushroom Tower(蘑菇高塔) - 蘑菇牛的塔