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 槽门生成器,可创建与编辑自定义门

物品列表

  • 自定义门 - 参数全由 NBT 决定的通用门,堆叠 16 且不进创造标签
  • 力场控制器 - 两点框选工具,2000 能量、按 20 能量/格消耗
  • 锈蚀把手 - 锈蚀舱盖的合成材料,无独立图标

配置列表

  • 模组配置 - 8 个配置项及其生效范围,含 1 个无效项

GUI 列表

  • 模组 GUI - 密码键盘、门工厂、方块混合器与消失钻石方块 4 个界面

集成列表

  • 原版门替换 - 用 ReplacementTool 反射改写注册表,替换原版 4 类门
  • 运行时依赖 - 双 mod jar 结构、Access Transformer 与开发期依赖

API 列表