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 三处重复实现(复制粘贴),
没有抽出统一方法。
关联