DiagramGenerator

基本信息

api.diagram.DiagramGenerator —— 全部 15 个生成器实现的接口,只有两个方法:

public interface DiagramGenerator {
    DiagramGroupInfo info();
    DiagramGroup generate();
}

生命周期

  1. 构造 —— Registry 通过 RegistryEntry.get() 调用构造器工厂 generatorConstructor().apply(groupId),每个生成器只构造一次, 把 groupId 存进 info。
  2. info() —— Registry.initialize() 与 NeiIntegration 读取,用于建 DiagramGroupInfo 列表、写配置文件、注册 NEI handler info。
  3. generate() —— Registry.generateDiagramGroups() 调用,返回待注册的 DiagramGroup。
  4. 丢弃 —— Registry.cleanUp() 把生成器列表置 null 供 GC。

构造与生成分离,是为了让「配置文件里能看到所有组名」(第 2 步)不必付出 第 3 步的内存代价。

15 个实现类

组 实现类
debug.nbtviewer NbtViewer
debug.ruler DebugRuler
enderstorage.chestoverview EnderStorageChestOverview
enderstorage.tankoverview EnderStorageTankOverview
forge.fluidcontainers ForgeFluidContainers
forge.oredictionary ForgeOreDictionary
forge.worldgenloot ForgeWorldgenLoot
gregtech.circuits GregTechCircuits
gregtech.lenses GregTechLenses
gregtech.materialparts GregTechMaterialParts
gregtech.materialtools GregTechMaterialTools
gregtech.oredictionary GregTechOreDictionary
gregtech.oreprefixes GregTechOrePrefixes
gregtech.oreprocessing GregTechOreProcessing
gregtech.recipedebugger GregTechRecipeDebugger

注意 DiagramFactory(出现在多个包下的同名类)不是 DiagramGenerator, 它们只负责把布局/配方汇总成 Diagram。

返回类型

接口声明返回 DiagramGroup,但 GregTech Recipe Debugger 的实现把返回类型协变为 CustomDiagramGroup —— 这是合法的 Java 协变返回, 不是接口变更。

相关条目

源码

  • src/main/java/com/github/dcysteine/neicustomdiagram/api/diagram/DiagramGenerator.java