Gendustry API

基本信息

属性 值
包 net.bdew.gendustry.api(apiPackage = api,gradle.properties)
源文件位置 17 个 .java 文件位于 src/main/scala/ 树下的 api/ 目录(非 src/main/java)
入口类 net.bdew.gendustry.api.GendustryAPI
绑定时机 Gendustry.scala:72-75,preInit 中 4 行赋值
许可 MMPL(MMPL-1.0.txt)
版本记录 api-changelog.md,采用 语义化版本(2.0.0 起)

入口类

GendustryAPI 只有 4 个 public static 字段,在 preInit 被逐一绑定到实现:

静态字段 接口 绑定实现 赋值位置
Items items.IItemAPI ItemApiImpl Gendustry.scala:72
Blocks blocks.IBlockAPI BlockApiImpl Gendustry.scala:73
Registries registries.IRegistriesApi RegistriesApiImpl Gendustry.scala:74
ConfigLoader IConfigLoader TuningLoader Gendustry.scala:75

没有版本检查、没有能力协商 —— 字段直接赋值,消费方需自行按接口定义使用。

4 个分组、17 个接口

分组 接口 引入版本
(根) GendustryAPI —
(根) ApiaryModifiers —
(根) EnumMutationSetting 2.0.0
(根) IConfigLoader 2.2.0
(根) package-info —
blocks IBlockAPI —
blocks IIndustrialApiary —
blocks IMutatron —
blocks IAdvancedMutatron —
blocks IWorkerMachine —
blocks IForestryMultiErrorSource 2.1.0(2.3.0 已弃用)
items IItemAPI —
items IGeneSample —
items IApiaryUpgrade —
registries IRegistriesApi 2.0.0
registries IFluidSourceRegistry 2.0.0
registries IMutatronOverrides 2.0.0

IBlockAPI:方块查询(8 个方法)

按 is<X> / get<X> 成对提供,共 4 组:

查询 返回
isIndustrialApiary(w,x,y,z) boolean
getIndustrialApiary(w,x,y,z) IIndustrialApiary
isMutatron(w,x,y,z) boolean
getMutatron(w,x,y,z) IMutatron
isAdvancedMutatron(w,x,y,z) boolean
getAdvancedMutatron(w,x,y,z) IAdvancedMutatron
isWorkerMachine(w,x,y,z) boolean
getWorkerMachine(w,x,y,z) IWorkerMachine

全部以 World + 坐标查询,不暴露 TileEntity 类 —— 这是 API 隔离的关键设计,消费方不会被迫依赖实现类。

IItemAPI:基因物品解析(8 个方法)

方法 返回 说明
isFullTemplate(stack) / isEmptyTemplate(stack) / isCompleteTemplate(stack) boolean 模板三态:已填 / 空 / 完整(集齐必需染色体)
isFullSample(stack) / isEmptySample(stack) boolean 样本两态
getSampleInfo(stack) IGeneSample 取单条样本的染色体 + 等位基因
getTemplateSamples(stack) List<IGeneSample> 取模板内全部样本
getTemplateGenome(stack) IGenome 由模板直接组装出完整基因组(Forestry 类型)

getTemplateGenome 返回 Forestry 的 IGenome,因此消费方必须依赖 Forestry 才能编译 —— 这是 API 里唯一的跨模组类型泄漏。

版本演进(api-changelog.md)

版本 变更
2.3.0 弃用 IForestryMultiErrorSource,改用 Forestry API 的 IErrorLogicSource
2.2.0 新增 IConfigLoader —— 允许其他模组提交配置交给 Gendustry 加载
2.1.0 新增 blocks.IForestryMultiErrorSource —— 访问多个 Forestry 错误状态(工业蜂箱使用)
2.0.0 改用语义化版本;新增 Registries / IRegistriesApi / IFluidSourceRegistry / IMutatronOverrides + EnumMutationSetting

2.3.0 弃用 IForestryMultiErrorSource 的原因是它与 Forestry 自带的 IErrorLogicSource 功能重复。

相关条目