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 功能重复。
相关条目
- 注册表 API -
Registries组的 3 个接口