Malisis’ Doors
[!INFO] Git Commit:
b0d8558| Updated: 2026-10-02
Malisis’ Doors 是一个 1.7.10 / Forge 的门与建筑构件模组,把原版门的方块级状态替换为带 TileEntity 的自定义实现,为门、栅栏门、活板门补上平滑开合动画,并提供从巨型城门、力场到门工厂的整套建筑玩法。创意标签页显示名 Malisis' Doors(MalisisDoorsTab,图标取监狱门)。
modid 为 malisisdoors,与分类名一致。但本仓库构建的 jar 内含两个 mod:net.malisis.core.MalisisCore(modid malisiscore,自研框架库)与 net.malisis.doors.MalisisDoors(modid malisisdoors,门模组本体)。后者声明 dependencies = "required-after:malisiscore",配置框架、GUI 框架、多方块框架与原版门替换工具全部来自前者。本条目只覆盖 malisisdoors 自身内容;malisiscore 的内部实现见 运行时依赖。
注册内容
模组在 MalisisDoors.preInit 中调用 Registers.init() 完成全部注册(MalisisDoors.java:81-88)。Registers 的 Blocks / Items 内部类共声明 36 个方块字段与 17 个物品字段(MalisisDoors.java:100-161),但实际注册数量高于此——16 个窗帘与 5 个木种活板门在循环中注册、没有对应字段。
| 类别 | 数量 | 依据 |
|---|---|---|
| 方块 | 56(modifyVanillaDoors 开启时 57) |
见下方拆分 |
| 物品 | 38 | 35 个随 DoorDescriptor 注册的门类物品 + customDoorItem、rustyHandle、forcefieldItem |
| TileEntity | 15 | 见下方分项 |
| 独立 GUI | 4 | DigicodeGui、DoorFactoryGui、BlockMixerGui、VanishingDiamondGui |
| 配置项 | 8 | 其中 1 项为无效死配置 |
| 指令 | 0 | 指令由框架 malisiscore 提供,不属于本 mod |
方块 56 个的拆分:
| 注册方式 | 数量 | 明细 |
|---|---|---|
DoorDescriptor.register() / TrapDoorDescriptor.register() |
35 | 木门 5、玻璃推拉门 2、监狱/实验室/工厂/障子门 4、酒馆门 1、窗帘 16、铁活板门 1、滑动活板门 1、木种活板门 5 |
FenceGate.register() |
6 | 金合欢/白桦/深色橡木/丛林/云杉/伪装 |
FenceGate.register()(条件) |
+1 | OAK 型,仅 modifyVanillaDoors 开启时注册 |
GameRegistry.registerBlock 直调 |
11 | 玩家传感器、消失框架、消失钻石方块、方块混合器、混合方块、车库门、自定义门、锈蚀梯子、力场方块、内部碰撞辅助方块 ×2 |
MalisisBlock.register() |
4 | 门工厂、锈蚀舱盖、马车门、中世纪门 |
窗帘 16 个来自 Registers.java:209-210 对 ItemDye.field_150921_b 的遍历;木种活板门 5 个来自 Registers.java:244-246 对 WoodTrapDoor.Type.values() 的遍历。
受配置开关影响的方块:vanishing_block、vanishing_block_diamond 受 enableVanishingBlocks 控制(Registers.java:103);block_mixer、mixed_block 受 enableMixedBlocks 控制(Registers.java:105)。关闭后这些方块在世界里完全不存在。
TileEntity 明细(Registers.java:121-123、221、331-332、353-354、365、374、401、416、437、453、486):doorTileEntity、trapDoorTileEntity、fenceGateTileEntity、saloonDoorTileEntity、bigDoorTileEntity(+ 备选名 carriageDoorTileEntity)、vanishingTileEntity、vanishingDiamondTileEntity、blockMixerTileEntity、mixedBlockTileEntity、garageDoorTileEntity、doorFactoryTileEntity、customDoorTileEntity、rustyHatchTileEntity、forcefieldTileEntity、collisionHelperTileEntity。
已知的死代码:config.enableCamoFenceGate 配置项被声明并附带注释,但源码中无任何读取点,伪装栅栏门在 Registers.java:230 无条件注册。
方块列表
- 木门 - 5 个木种门(云杉/白桦/丛林/金合欢/深色橡木),旋转开门,6 tick
- 玻璃推拉门 - 木质与铁质两版侧滑玻璃门,铁质版需红石
- 窗帘 - 16 种染料色布帘,对开门且静音
- 特殊造型门 - 监狱门、实验室门、工厂门、障子门、酒馆门五种异形门
- 栅栏门 - 7 种栅栏门,含可读取周围方块贴图的伪装栅栏门
- 活板门 - 铁质、滑动与 5 个木种活板门
- 巨型门 - 3×5 多方块城门,带材质记忆与隐藏碰撞方块
- 车库门 - 可纵向堆叠的车库门,开门时长随高度增加
- 力场 - 不可破坏的 3×3×1 能量力场,由控制器开合
- 锈蚀舱盖与梯子 - 2×3×2 竖井舱盖与配套攀爬梯
- 玩家传感器 - 每 5 tick 检测玩家并输出红石信号
- 消失框架 - 4 种框架,通电后变为完全不可碰撞
- 方块混合器与混合方块 - 把两个方块混合成自定义涂装方块
- 门工厂 - 5 槽门生成器,可创建与编辑自定义门
物品列表
配置列表
- 模组配置 - 8 个配置项及其生效范围,含 1 个无效项
GUI 列表
- 模组 GUI - 密码键盘、门工厂、方块混合器与消失钻石方块 4 个界面
集成列表
API 列表
- 自定义门 NBT 格式 - 自定义门物品携带的 10 个数据字段、18 种动作与 7 种音效 ID