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 见各自条目。

相关条目