project 包

基本信息

属性 值
位置 src/main/java/sedridor/amidst/project/
类数 5
启用版本 Minecraft 1.7.10

会话管理层。5 个类全部是 Swing 组件或与之协作。

5 个类

类 继承 行数 作用
FinderWindow JFrame 59 主窗口,单例 instance
Project JPanel 159 一次地图会话(种子 + 世界类型)
MapViewer JComponent? — 地图视图容器
SaveLoader — — 存档读写
SkinManager — — 皮肤 / 图标资源

Swing 依赖

类 Swing 角色
FinderWindow 顶层窗口(JFrame)
Project 内容面板(JPanel)
CrashDialog(在 gui/) 另一个顶层窗口(JFrame)
AmidstMenu(在 gui/) 菜单栏(JMenuBar)

⚠️ 本 mod 不使用任何 Minecraft GUI 类: 全仓 IGuiHandler 命中数 0, 无 GuiScreen 子类(GuiIngameMenuAmidst / GuiMainMenuAmidst 是继承原版菜单插入按钮,属另一回事)。

关系图

FinderWindow (JFrame, 单例 instance)
├── AmidstMenu (JMenuBar)          ← gui/
├── pane (Container, BorderLayout)
└── Project (JPanel, curProject)
    ├── MapViewer                   ← 地图视图
    ├── Map                         ← map/
    │   ├── Layer / LiveLayer / IconLayer / ImageLayer
    │   ├── FragmentManager / Fragment
    │   ├── MapObject × 10
    │   └── layers/ × 11
    ├── widget/ × 15
    └── SaveLoader                  ← 存档

两条打开地图的路径

路径 行为
FinderWindow.instance == null loadAmidst() → loadMap()(创建窗口)
instance != null && !isVisible() setVisible(true) + 必要时 new Project(seed, worldType)

⚠️ 两条路径在 TickHandler、 CommandAmidst、 GuiIngameMenuAmidst 三处重复实现(复制粘贴), 没有抽出统一方法。

关联