Skip to content

ui dialog zh

laurel Lin edited this page Aug 22, 2026 · 2 revisions

src/ui/dialog.ts — 生成配置对话框

单页大对话框收集全部输入:

  • 三个零件(左轨 / 右轨 / 枕木)的来源:导入 .bbmodel,或「选择一个标签页」提取已选中元素;右轨额外 提供「从第一个模型对称」(mirrorPartYz)。
  • 轨距(px,含毫米/英寸换算:任一字段回车即回填其余两个)/ 轨道高度 / 整体 Y 偏移(px)与新工作区名称。
  • 传送门纹理(两张分别可选):portal_track 铺轨道/枕木,portal_track_mip 生成左右覆层块 teleport_left / teleport_right。
  • 工作区格式由输入零件决定:任一零件含 mesh 组 → 自由模型(generic);否则 Java 方块/物品模型。

零件在对话框内收集时不加纹理前缀,生成时统一 scopeTextureKeys 加前缀(L / R / T),保证 「源 key → 导入 Texture」映射全局唯一。

类型

export interface GenerateOutput {
	config: TrackConfig;
	shapes: ShapeSpec[];
	textureByKey: Map<string, Texture>;  // 源纹理 key → 新工作区里导入的 Texture,供 assembly 层贴纹理
}

样式注入

// 注入 / 卸载时清理生成对话框样式(Blockbench 有 document;Node 冒烟测试无 document 时安全跳过)
export function injectDialogStyles(): void;
export function disposeDialogStyles(): void;

生成入口

// 完整生成流程入口(单页对话框);返回生成结果,失败/取消返回 null。用户填好输入后点「确定」,
// onConfirm 里同步建工作区并 resolve。
export function runGenerateWizard(): Promise<GenerateOutput | null>;

← 返回中文接口文档

Clone this wiki locally