AmidstGTNH

[!INFO] Git Commit: 2331f00 | Updated: 2026-10-28

游戏内世界地图查看器。AMIDST(Advanced Minecraft Interfacing and Data/Structure Tracking)的 1.7.10 反编译移植版,用于在不生成真实区块的前提下 预览生物群系、史莱姆区块、神殿、村庄、末地传送门、海底神殿等结构位置。

README 自述:This is a decompiled version of ForgeAMIDST for minecraft version 1.7.10, 并注明 Clean up decompiled artifacts (WIP) —— 全仓是反编译产物,非原始源码。

身份

属性 实测值
modid forgeamidst(⚠️ ≠ 分类名 amidstgtnh)
@Mod name ForgeAmidst(⚠️ ≠ gradle.properties 的 ForgeAmidst-GTNH)
@Mod version 1.7.10-1.4-beta(字面量,非占位符)
资源域 forgeamidst(assets/forgeamidst/biome,30 png)
Minecraft 1.7.10
Java 文件 89(sedridor.forgeamidst 12 + sedridor.amidst 77)
@Mod 位置 Java(ForgeAmidst.java:44),非 Scala / Kotlin
事件处理器 4 个 @Mod.EventHandler
命令 1(/amidst,权限等级 0)
快捷键 1(F6)
菜单按钮 2(暂停菜单 id 12、主菜单 id 15)
ASM transformer 1(Transformer)
配置项 32(Options 单成员枚举,24 布尔 + 2 下拉 + 1 文件 + 1 字符串 + 4 裸字段)
注册内容 0 方块 / 物品 / 实体 / TileEntity
硬依赖 无(dependencies 只有两条 after: 软依赖)
软依赖 climatecontrol、RTG

⚠️ mcmod.info 是未修改的 Forge MDK 模板

src/main/resources/mcmod.info 的内容与本 mod 毫无关系:

字段 实际值 应该是
url https://github.com/SinTh0r4s/MyMod AMIDST 仓库
authorList ["SinTho0r4s"] 原作者 Skidoodle / Zeno410 / Sedridor
description An example mod for Minecraft 1.7.10 with Forge focused on a stable setup. AMIDST 说明
modid / name / version / mcversion ${modId} 等占位符 会被 Gradle 替换

⚠️ 这是模板脚手架残留,不能作为 modid / 作者 / 描述的依据。 modid 的权威来源是 @Mod 注解与 gradle.properties:9。

依赖范围

依赖 声明 收录状态
climatecontrol after:(软) 已登记为 Climate Control,尚未成文
RTG after:(软) 已登记为 Realistic Terrain Generation,尚未成文

两条都是软顺序依赖 —— 缺失不导致启动失败。 ⚠️ 但 BiomeProviderRTG 直接 import 并强转 RTG 的类,属编译期硬依赖, 声明与实现不一致(详见该条目)。

核心机制:伪世界(dummy world)

条目 说明
ForgeAmidst - mod 入口 4 个生命周期阶段
MapWorld - 伪世界 extends WorldServer,无条件占用全局 world
MapWorldRTG - RTG 变体 条件式占用(仅非 RTG 或 world 为空)
伪世界空实现 区块与存档的空实现(含 2 个返回 null 的方法)
BiomeProviderRTG - RTG 群系桥 sampleSize=8、21×21=441 采样、缓存 60000

coremod

条目 说明
CorePlugin - 加载插件 SortingIndex(2000),TransformerExclusions 只排 sedridor.forgeamidst
Transformer - ASM 注入 patch DimensionManager.onCreateSpawn,⚠️ 硬编码指令偏移 index == 49

src/main/resources/META-INF/MANIFEST.MF 已入库, 含 FMLCorePlugin 与 FMLCorePluginContainsFMLMod: true (同一 jar 内 FML mod 与加载插件共存)。无 TweakClass(无 mixin)。

入口

条目 说明
TickHandler - F6 快捷键 1 秒冷却、currentScreen == null 硬条件
CommandAmidst - /amidst 权限等级 0,无冷却
菜单 GUI - 两个菜单覆写 暂停菜单 set(3,…) 覆盖原版按钮;主菜单 add 追加

AMIDST 库(sedridor.amidst,77 文件)

条目 说明
project 包 - 5 类 FinderWindow(JFrame)、Project(JPanel)等
FinderWindow - 主窗口 1000×800、构造即 setVisible(true)
Project - 会话 FRAGMENT_SIZE = 256(非 final)
map 包 - 45 类 16 根 + 11 图层 + 15 控件 + 10 MapObject
preferences 包 - 8 类 PrefModel 家族
Options - 配置 单成员枚举,24 个 BooleanPrefModel
gui 包 - 4 类 CrashDialog 是第二个 JFrame
辅助包 - 14 类 ⚠️ 目录名拼写为 utilties

⚠️ 架构核心事实:独立 Swing 窗口

FinderWindow extends JFrame、Project extends JPanel、 CrashDialog extends JFrame、AmidstMenu 是 JMenuBar —— 全 mod 共 3 个 Swing 顶层/容器类、12 个文件 import javax.swing.*。

地图不是 Minecraft 内覆盖层,而是游戏之外的一个独立操作系统窗口。 全仓 IGuiHandler 命中 0,无 GuiScreen 子类。

Amidst 另有 public static void main(String[]) 与 Util.setLookAndFeel() —— AMIDST 原本是可独立运行的桌面程序, Forge 版只复用其库。

名称不一致(本仓高频陷阱)

同一概念有 4 种写法:

写法 出现处
forgeamidst modid、资源域
ForgeAmidst @Mod name
ForgeAmidst-GTNH gradle.properties 的 modName
ForgeAMIDST F6 键名、暂停菜单按钮、窗口标题、命令用途串
AMIDST 主菜单按钮文案
1.4 AMIDST 库版本
1.7.10-1.4-beta @Mod version

关联