Twilight Forest(暮色森林)
[!INFO] Git Commit:
dc9bcac(tag2.7.43)| Updated: 2026-10-02
Twilight Forest(暮色森林)是 Minecraft 1.7.10 / Forge 的完整大型附属 mod,由 AtomicBlom / Benimatic 与
GTNewHorizons 维护。它新增一个独立维度,通过 传送门(Portal) 进入,内含 4 座高塔
(TFFeature 中名字带 Tower 的特性:lichTower 6、iceTower 7、darkTower 14、
mushroomTower 20)、多层迷宫、地下洞穴与中立生物群。核心玩法是逐层推进的探险流程:
采集材料 → 击败塔主 → 获得塔之遗物 → 解锁下一座塔。
社区常说的「9 座塔」属于游戏内玩法口径(把 Naga 庭院、九头蛇巢穴、雪怪洞穴、 牛头人迷宫、巨人工厂等塔主据点一并计入)。源码里能直接核实的「塔」只有上述 4 座
TFFeature;塔主实体则是 8 个(见下)。此处保留可核实的数字。
版本与 modid
| 属性 | 值 |
|---|---|
| modid | TwilightForest(混合大小写,TwilightForestMod.java:75) |
| 模组名 | The Twilight Forest |
| Minecraft | 1.7.10 |
| Forge | 10.13.4.1614 |
| 代码规模 | 801 个 Java 文件、131 923 行 |
modid 是 TwilightForest 而非全小写 twilightforest。资源路径用 twilightforest:(小写),
但注册名域是 TwilightForest:。两者不一致,查物品时注意区分:
/give @p TwilightForest:scepterTwilight ← 注册名
所有注册名(方块与物品)使用 camelCase,如 TFPortal、scepterTwilight、oreMeter,
不是 snake_case。
源码规模
| 类型 | 数量 |
|---|---|
| Java 源文件 | 801 |
| Java 代码行 | 131 923 |
| PNG 资源 | 1 201 |
| mcmeta + sounds.json | 21 + 1 = 22(1.7.10 无 JSON 物品模型) |
| 注册方块 | 126(setBlockName 唯一名 126,registerMyBlock 调用 125) |
| 注册物品 | 120 |
| 注册实体 | 75(TFCreatures.registerTFCreature 56 + EntityRegistry.registerModEntity 19;另有 1 个被注释掉,见下) |
| 注册 TileEntity | 25 |
注册真源
| 内容 | 文件 |
|---|---|
| 方块 | block/TFBlocks.java 的 registerBlocks()(第 146-453 行) |
| 物品 | item/TFItems.java 的 registerItems() |
| 实体 | TwilightForestMod.java 的 registerCreatures()(第 435 行起) |
| TileEntity | TwilightForestMod.java 的 registerTileEntities()(第 923 行起) |
方块注册名由 setBlockName("TFPortal") 决定,再经 registerMyBlock(...)(TFBlocks.java:455-472)
调用 GameRegistry.registerBlock(block, pickup, block.getUnlocalizedName()),
最终形成 TwilightForest:<setBlockName>。
registerBlocks()内有 126 条setBlockName赋值,126 个名字全部互不相同 —— 没有重复字段。registerMyBlock只有 125 次调用,比名字少 1,是因为TFWoodSlab/TFWoodSlabDouble这一对由同一次带singleSlab/doubleSlab参数的重载(TFBlocks.java:455)一次性注册两个方块。
Boss 实体
暮色森林有 4 座高塔(lichTower / iceTower / darkTower / mushroomTower),
其所在结构另有 4 个塔主据点,合计 8 个塔主实体。完整实体列表见实体维度。
- Naga(纳迦) - 蛇庭院塔主,掉落
nagaScale与trophy - Hydra(九头蛇) - 九头蛇巢穴塔主,掉落
fieryBlood、hydraChop、trophy - Twilight Lich(暮色巫妖) - 黑暗高塔塔主,掉落 3 把权杖
- Ur Ghast(尿素幽灵) - 光明高塔塔主「Tower Boss」
- Knight Phantom(幻影骑士) - 黑暗高塔守门 Boss,掉落骑士装备套
- Alpha Yeti(阿尔法雪怪) - 雪怪洞穴塔主,掉落
alphaFur、iceBomb、trophy - Snow Queen(雪之女王) - 冰霜高塔塔主,掉落
seekerBow、tripleBow、trophy - Minoshroom(蘑菇牛) - 蘑菇高塔塔主,掉落
minotaurAxe、meefStroganoff、trophy - 方块形态次级 Boss 聚合页 — 4 个方块形态实体;🔴 其中无一属于冰霜高塔(Harbinger Cube / Adherent 属最终城堡,Ice Crystal / Roving Cube 不在任何结构刷怪表)
掉落规律
8 个塔主实体中有 6 个掉落 TwilightForest:trophy:Naga、Minoshroom、Alpha Yeti、
Snow Queen、Hydra、Twilight Lich。只有 Ur Ghast 与 Knight Phantom 不掉 trophy
(entity/boss/EntityTFUrGhast.java、EntityTFKnightPhantom.java 全文件 0 处 trophy 引用)。
各塔主的 trophy 掉落代码:
| 塔主 | 源码(meta 决定奖杯种类) |
|---|---|
| Naga | entity/boss/EntityTFNaga.java:890(meta = 1) |
| Twilight Lich | entity/boss/EntityTFLich.java:152、:188(meta = 2) |
| Snow Queen | entity/boss/EntityTFSnowQueen.java:367(meta = 4) |
| Minoshroom | entity/boss/EntityTFMinoshroom.java:58(meta = 5) |
| Alpha Yeti | entity/boss/EntityTFYetiAlpha.java:275(meta = 7) |
| Hydra | entity/boss/EntityTFHydra.java:1057(dropItem(TFItems.trophy, 1),未指定 meta) |
trophy 对应
Trophy Pedestal(奖杯基座) 方块。
推进系统
暮色森林有一个强制进度游戏规则:
| 项 | 值 |
|---|---|
| 规则名 | tfEnforcedProgression(TwilightForestMod.java:82) |
| 常量 | TwilightForestMod.ENFORCED_PROGRESSION_RULE |
| 校验点 | TFTeleporter.java:42(进入传送门时检查) |
| 网络包 | TFGenericPacketHandler.ENFORCED_PROGRESSION_STATUS = 7(第 31 行) |
进度物品为 3 把暮色权杖,全部由 Twilight Lich 掉落(EntityTFLich):
TwilightForest:scepterTwilight、scepterLifeDrain、scepterZombie。
方块列表
木质建材(40 个 = 8 木 × 5 件套)
木材只有 8 种(BlockTFWood.names,block/BlockTFWood.java:20-21:
twilight_oak / canopy / mangrove / darkwood / time / trans / mine / sort;
BlockTFChest.WoodType 枚举同为 8 种,外加一个不对应木材的 NULL 哨兵)。
每种木材注册 5 个方块,没有任何一种是 6 个:
| 建材 | 注册名后缀 | 方块类 | 每木数量 |
|---|---|---|---|
| Stairs | TFWoodStairs<Wood> |
BlockTFWoodStairs |
8 |
| Door | TFDoor<Wood> |
BlockTFDoor |
8 |
| TrapDoor | TFTrapDoor<Wood> |
BlockTFTrapDoor |
8 |
| Chest | TFChest<Wood> |
BlockTFChest |
8 |
| Chest(陷阱版) | TFChestTrap<Wood> |
BlockTFChest |
8 |
| 合计 | 40 |
另有原木 / 木板(
TFLog、TFPlank)与半砖(TFWoodSlab、TFWoodSlabDouble) 是跨木材的 meta 变体,不带木材后缀,不计入上面的 8×5。
城堡与极光建材(9 个,不是木材)
| 家族 | 方块数 | 注册名 |
|---|---|---|
| Castle | 5 | CastleBrick、CastleMagic、CastleDoor、CastleDoorVanished、CastleUnlock(TFBlocks.java:277-285) |
| Aurora | 4 | TFAuroraBrick、AuroraPillar、AuroraSlab、AuroraDoubleSlab(TFBlocks.java:240、:249-251) |
其它功能方块(77 个)
40(木质)+ 9(城堡 / 极光)+ 77 = 126,与注册方块总数一致。 其中含以下重点条目:
- Portal(传送门) - 进入暮色森林维度的唯一入口
- Uncrafting Table(分解台) - 把物品分解回材料,可关闭
- Nagastone(纳迦石) - 纳迦庭院核心方块,蛇庭院 Boss 战场地
- Trophy Pedestal(奖杯基座) - 放置塔主掉落的
trophy - Tower Stone(高塔石) - 4 座高塔的建材
- Tower Device(高塔装置) - 高塔内的机关方块
- Boss Spawner(Boss 刷怪笼) - 生成塔内小怪
- Mazestone(迷宫石) - 迷宫砖块
- Firefly Jar(萤火虫罐) - 装饰与光源
- Magic Log / Magic Leaves(魔法木与树叶) - 魔法照明植物
物品列表
120 个注册物品,按用途分组(完整表见源码 item/TFItems.java):
进度与地图(9)
以下 5 个有独立条目:
- Scepter of Twilight(暮色权杖) - 三把推进权杖之一
- Scepter of Life Draining(吸取生命权杖) - 唯一有耐久(99)的权杖
- Zombie Scepter(僵尸权杖) - 三把推进权杖之一
- Tower Key(高塔钥匙) - 开启塔内受限区域
- Ore Meter(矿物探测仪) - 英文名带
[WIP]标记
仅有注册表、无独立条目(4):
oreMagnet(矿物磁铁)、crumbleHorn、peacockFan、moonwormQueen
三把权杖的共同点:全部由 Twilight Lich 掉落。
| 注册名 | 说明 |
|---|---|
scepterTwilight |
暮色权杖 |
scepterLifeDrain |
吸取生命权杖 |
scepterZombie |
僵尸权杖 |
oreMeter |
矿物探测仪 |
magicMap / mazeMap / oreMap |
3 种地图 |
emptyMagicMap / emptyMazeMap / emptyOreMap |
地图的空白形态 |
magicMapFocus / mazeMapFocus |
地图聚焦镜 |
feather |
暮色羽毛(渲染名 tfFeather) |
towerKey |
高塔钥匙 |
装备套装(6 套)
ironwood*、steeleaf*、fiery*、knightly*、yeti*、arctic* 各 4–7 件。
特殊物品
charmOfLife1/2、charmOfKeeping1/2/3(护符)、cubeOfAnnihilation(湮灭之方)、
cubeTalisman、lampeOfCinders、moonwormQueen、borerEssence、carminite、
experiment115、armorShards、knightMetal、shardCluster。
⚠️ 声明但未注册的物品
TFItems.java:46 声明了字段 wandPacification,但它的创建代码(第 204-205 行)与
注册代码(第 355 行,注释为 "Wand of Pacification [NYI]")双双被注释掉:
// wandPacification = new
// ItemTF().setIconIndex(6).setUnlocalizedName("wandPacification").setMaxStackSize(1).setFull3D();
...
// registerTFItem(wandPacification, "Wand of Pacification [NYI]");
因此 TwilightForest:wandPacification 不是可获得的物品(NYI = Not Yet Implemented)。
统计注册物品数时若直接数字段声明会多算 1。
结构列表
暮色森林的塔与地牢都是世界生成结构,不是玩家建造的多方块。
结构组件源码位于 structures/ 目录。
世界生成特性总表
- 暮色森林世界生成特性(TFFeature) - 全部 21 个特性的 ID、尺寸与标志
4 座高塔
- Dark Tower(黑暗高塔) - 特性 ID 14,唯一有 2 名塔主(巫妖 + 幻影骑士)
- Lich Tower(光明高塔) - 特性 ID 6,⚠️ 名字骗人,塔主是 Ur Ghast
- Ice Tower(冰霜高塔) - 特性 ID 7,雪之女王
- Mushroom Tower(蘑菇高塔) - 特性 ID 20,蘑菇牛
其它结构
| 结构 | 特性 ID | 源码目录 | 塔主 |
|---|---|---|---|
| 蛇庭院 | 5 | structures/courtyard/(18 个文件) |
Naga |
| 九头蛇巢穴 | 12 | ComponentTFHydraLair.java |
Hydra |
| 雪怪洞穴 | 17 | ComponentTFYetiCave.java |
Alpha Yeti |
| 巨人工厂 | 18 | structures/trollcave/ |
Troll |
| 牛头人迷宫(Labyrinth) | 13 | structures/minotaurmaze/(28 个文件) |
Minotaur(非塔主,迷宫终点) |
| 树篱迷宫 Hedge Maze | 4 | ComponentTFHedgeMaze.java(StructureTFMajorFeatureStart.java:141-142) |
— |
| 树洞丘陵 | 1/2/3 | ComponentTFHollowHill.java |
— |
| 巨型树 | 16 | structures/hollowtree/ |
— |
| 骑士要塞 | 15 | structures/stronghold/ |
Knight Phantom |
| 试炼林 | 9 | ComponentTFQuestGrove.java |
— |
| 最终城堡 | 19 | structures/finalcastle/ |
— |
原表另有一行「树人迷宫 13 /
structures/TFMaze.java」——该行没有源码依据,属幻影行: 特性 ID 13 就是labyrinth(“Labyrinth”),即上面的牛头人迷宫,二者不是两个结构。structures/TFMaze.java只是牛头人迷宫用的迷宫布局抽象基类(public class TFMaze, 第 23 行),不是独立结构,也没有自己的特性 ID。同理,
ComponentTFHillMaze(丘陵迷宫)虽在StructureTFMajorFeatureStart.java:69用func_143031_a注册,但唯一的new ComponentTFHillMaze(...)出现在ComponentTFHollowHill.java:69且整行被注释掉 —— 属注册了但永不放置的死代码, 不能算作可生成结构。
配置项
TwilightForestMod.java:88-111 共定义 20 个静态配置/集成字段,其中 11 个是玩家可改的选项:
| 配置 | 作用 |
|---|---|
creatureCompatibility |
启用原版生物兼容 |
silentCicadas |
静音蝉鸣 |
allowPortalsInOtherDimensions |
允许在其他维度开传送门 |
adminOnlyPortals |
仅管理员可开传送门 |
twilightForestSeed |
自定义世界种子 |
disablePortalCreation |
禁用传送门创建 |
disableUncrafting |
禁用分解台 |
oldMapGen |
使用旧版地图生成 |
portalCreationItemString |
传送门创建物品 |
portalMaxSize |
传送门最大尺寸 |
timeCoreExcludedBlocks |
时核排除方块集合 |
另有维度/生物群系 ID 常量:backupdimensionID = -777(:88)、dimensionProviderID(:89)、
maxBiomeIDs = 256(:111,注释标为 vanilla 默认值)。
可选整合
检测到即启用(TwilightForestMod.java:105-110,6 个开关):
GTNHLib(isGTNHLoaded)、Skinport(isSkinportLoaded)、Baubles(areBaublesLoaded)、
NotEnoughItems(isNeiLoaded,字段名不是 isNeiNEI)、
Tinkers Construct(enableTiCIntegration)、
Et Futurum(enableEfRIntegration)—— 后者提供 Husk / Shulker 兼容
(TFFeature.java:39-40 导入 ganymedes01.etfuturum.entities.EntityHusk / EntityShulker,
:116-120 往 lichTower 加 Shulker;另受 shulkerSpawnInLichTower 开关控制)。
相关条目
- 实体与 Boss 详见实体维度
- 塔与地牢的建材与机关详见结构维度 <!-- AUTO-INDEX:START -->
完整索引(自动生成)
本节由
tools/sync_catpage_index.py从磁盘实际文件生成,共 298 个条目。 上面各节是人工撰写的概览;任何未在上面出现的条目都在这里。 重新生成:删掉本节两个<!-- AUTO-INDEX -->标记之间的内容后重跑脚本。
block/(94)
上文已链出 10 个;以下 84 个为新增补齐:
entity/(79)
上文已链出 9 个;以下 70 个为新增补齐:
item/(120)
上文已链出 5 个;以下 115 个为新增补齐:
structure/(5)
全部 5 个条目已在上文列出。
<!-- AUTO-INDEX:END -->