JSON 配置(ImageRender[])
基本信息
| 属性 | 值 |
|---|---|
| 类 | alexiil.mods.load.json.ImageRender + JsonConfig<T> |
| 序列化器 | Gson |
| 用途 | 让 GuiPreview + FrameEditor 可视化编辑界面元素 |
数据结构
Area
矩形:x、y、width、height(final 字段,不可变)。
EPosition
9 宫位置(见 位置栅格)。
EType
8 种渲染类型(见 渲染元素类型)。
ImageRender
| 字段 | 类型 | 含义 |
|---|---|---|
resourceLocation |
String | 纹理或资源位置(仅静态/动态资源类用) |
positionType |
EPosition | 锚点 |
type |
EType | 渲染类型 |
texture |
Area | 纹理内裁剪区域 |
position |
Area | 屏幕矩形(width=0 时按屏幕宽度) |
colour |
String | hex 颜色(默认 ffffff) |
text |
String | 静态文本(仅 STATIC_TEXT) |
comment |
String | FrameEditor 列表显示名,空时填 <unnamed> |
坐标变换
transformX(screenWidth):positionType.transformX(position.x, screenWidth - trueX),其中trueX = position.width == 0 ? screenWidth : position.width。transformY(screenHeight):positionType.transformY(position.y, screenHeight - position.height)。getColour():parseInt 失败回退0xFFFFFF;setColour(Color)写回 6 位 hex 字符串。
JsonConfig 通用方法
createNew()
无论文件是否已存在,都用 defaultConfig 重新写入(pretty-print)。注意:这是"覆盖式",会丢失用户修改。
load()
- 命中文件 →
new Gson().fromJson(reader, clazz); - 抛
FileNotFoundException→createNew()写入默认值,返回defaultConfig。
使用方式
MinecraftDisplayer.openPreview(ImageRender[]):用外部 JSON 解析好的数组替换images。GuiPreview.setImageData(ImageRender[]):通过Minecraft.func_152344_a切回主线程 →displayer.close()→new MinecraftDisplayer(true).openPreview(data),在不重载资源的情况下切换布局。FrameEditor:通过GuiPreview.getImageData()获取当前ImageRender[],在列表里点选单个 render,左侧面板修改 comment / type / colour,右侧实时预览。
数值
无独立字段;EType / EPosition 见各自条目。
相关条目
- 渲染元素类型 - EType 8 个枚举值
- 位置栅格 - EPosition 9 宫枚举
- Preview/Editor GUI - 实际编辑 ImageRender[] 的 GUI