本页说明 OpenComputers 暴露给 Lua 的 AE2 Fluid Craft 集成接口。它在 Applied Energistics 风格 API 的基础上,增加了流体导出总线、流体导入总线、流体存储总线和流体接口。
- 依赖:
ae2fc - 标签:
integration-required
fluid_exportbusfluid_importbusfluid_storagebusfluid_interface
- 读取和修改 AE2 Fluid Craft 各类总线上的流体过滤槽。
- 用流体描述表配置流体接口。
- 在处理流体而不是物品时,继续沿用熟悉的 AE2 总线操作方式。
- 通过流体注册名、流体量和可选栈大小构建自动化逻辑。
本页大多数写入接口都接受流体描述表。这些表会通过 OpenComputers 的流体转换器进行解析。
常用字段如下:
name: string流体注册名,例如water、lava或其他模组流体 id。id: number可选的数字流体 id,可以代替name使用。amount: number流体数量。解析时如果省略,默认是0。size: number可选 AE 栈大小。省略时默认是1。
说明:
- 必须至少提供
name或id其中之一,否则会抛出fluid id or name expected。 - 如果提供的流体 id 或流体名不存在,会抛出
fluid not found。 - 不传描述表时,会清空目标配置槽。
- 返回表由 OC 的流体转换器和 AE 栈包装器共同生成,常见字段如下:
name: string,流体注册名。label: string,流体本地化名称。amount: number,流体量。hasTag: boolean,底层FluidStack是否带 NBT。size: number,AE 栈大小,未显式设置时默认为1。isCraftable: boolean,该 AE 栈是否被标记为可合成。
- 只有在
insertIdsInConverters配置开启时,返回表里才会额外包含id: number。
fluid_exportbus 用于 AE2 Fluid Craft 的流体导出总线部件。
- 语法:
getExportConfiguration(side: number[, slot: number]): table - 用途: 返回某个导出槽里配置的流体描述。
- 参数:
side: number安装该流体导出总线的 multipart 方向。slot: number可选配置槽编号。
- 返回值:
- 目标槽位中的流体描述表。
- 说明:
- 如果省略
slot,默认读取0号槽位。 - 槽位编号非法时会抛出
invalid slot。 - 返回表结构遵循上面的流体描述表格式。
- 如果省略
- 语法:
setExportConfiguration(side: number[, slot: number][, detail: table]): boolean - 用途: 设置或清空一个导出过滤槽。
- 参数:
side: number安装该流体导出总线的 multipart 方向。slot: number可选配置槽编号。detail: table可选流体描述表。
- 返回值:
true表示成功。
- 说明:
- 省略
detail时会清空该槽位。 - 槽位编号非法时会抛出
invalid slot。 - 虽然内部辅助类名称仍沿用 item bus 命名,但这里处理的实际是流体描述。
- 省略
- 语法:
getExportSlotSize(side: number): number - 用途: 返回该总线可用的配置槽数量。
- 参数:
side: number安装该流体导出总线的 multipart 方向。
- 返回值:
- 有效配置槽数量。
- 语法:
getExportOreFilter(side: number): string - 用途: 返回总线当前使用的过滤字符串。
- 参数:
side: number安装该流体导出总线的 multipart 方向。
- 返回值:
- 当前过滤字符串。
- 说明:
- 即使是流体总线,接口命名仍沿用了 AE 总线旧有的 ore filter 叫法。
- 语法:
setExportOreFilter(side: number, filter: string): boolean - 用途: 修改总线过滤字符串。
- 参数:
side: number安装该流体导出总线的 multipart 方向。filter: string新过滤字符串。
- 返回值:
true表示成功。
fluid_importbus 用于 AE2 Fluid Craft 的流体导入总线部件。
- 语法:
getImportConfiguration(side: number[, slot: number]): table - 用途: 返回某个导入槽里配置的流体描述。
- 参数:
side: number安装该流体导入总线的 multipart 方向。slot: number可选配置槽编号。
- 返回值:
- 流体描述表。
- 说明:
- 如果省略
slot,默认读取0号槽位。 - 槽位编号非法时会抛出
invalid slot。
- 如果省略
- 语法:
setImportConfiguration(side: number[, slot: number][, detail: table]): boolean - 用途: 设置或清空一个导入过滤槽。
- 参数:
side: number安装该流体导入总线的 multipart 方向。slot: number可选配置槽编号。detail: table可选流体描述表。
- 返回值:
true表示成功。
- 说明:
- 省略
detail时会清空目标槽位。 - 槽位编号非法时会抛出
invalid slot。
- 省略
- 语法:
getImportSlotSize(side: number): number - 用途: 返回导入总线有效配置槽数量。
- 参数:
side: number安装该流体导入总线的 multipart 方向。
- 返回值:
- 槽位数量。
- 语法:
getImportOreFilter(side: number): string - 用途: 返回当前导入总线过滤字符串。
- 参数:
side: number安装该流体导入总线的 multipart 方向。
- 返回值:
- 当前过滤字符串。
- 语法:
setImportOreFilter(side: number, filter: string): boolean - 用途: 修改导入总线过滤字符串。
- 参数:
side: number安装该流体导入总线的 multipart 方向。filter: string新过滤字符串。
- 返回值:
true表示成功。
fluid_storagebus 用于 AE2 Fluid Craft 的流体存储总线部件。
- 语法:
getStorageConfiguration(side: number[, slot: number]): table - 用途: 返回某个存储槽里配置的流体描述。
- 参数:
side: number安装该流体存储总线的 multipart 方向。slot: number可选配置槽编号。
- 返回值:
- 流体描述表。
- 说明:
- 如果省略
slot,默认读取0号槽位。 - 槽位编号非法时会抛出
invalid slot。
- 如果省略
- 语法:
setStorageConfiguration(side: number[, slot: number][, detail: table]): boolean - 用途: 设置或清空一个存储过滤槽。
- 参数:
side: number安装该流体存储总线的 multipart 方向。slot: number可选配置槽编号。detail: table可选流体描述表。
- 返回值:
true表示成功。
- 说明:
- 省略
detail时会清空该槽位。 - 槽位编号非法时会抛出
invalid slot。
- 省略
- 语法:
getStorageOreFilter(side: number): string - 用途: 返回当前存储总线过滤字符串。
- 参数:
side: number安装该流体存储总线的 multipart 方向。
- 返回值:
- 当前过滤字符串。
- 语法:
setStorageOreFilter(side: number, filter: string): boolean - 用途: 修改存储总线过滤字符串。
- 参数:
side: number安装该流体存储总线的 multipart 方向。filter: string新过滤字符串。
- 返回值:
true表示成功。
- 语法:
getStorageSlotSize(side: number): number - 用途: 返回有效存储配置槽数量。
- 参数:
side: number安装该流体存储总线的 multipart 方向。
- 返回值:
- 槽位数量。
fluid_interface 同时存在方块形态和 multipart 形态。它们的方法名相同,但 multipart 版本需要显式传入 side 参数。
- 语法:
getFluidInterfaceConfiguration([slot: number]): table - 用途: 返回方块流体接口某个槽位配置的流体描述。
- 参数:
slot: number可选槽位编号,默认是0。
- 返回值:
- 该槽位的流体描述表。
- 说明:
- 如果槽位超出接口配置库存范围,底层物品栏会抛出索引错误。
- 语法:
setFluidInterfaceConfiguration([slot: number][, detail: table]): boolean - 用途: 设置或清空方块流体接口中的某个槽位。
- 参数:
slot: number可选槽位编号,默认是0。detail: table可选流体描述表。
- 返回值:
true表示成功。
- 说明:
- 省略
detail会清空该槽位。 - 传入不存在的流体名或 id 时会直接报错,而不是静默失败。
- 省略
- 语法:
getFluidInterfaceConfiguration(side: number[, slot: number]): table - 用途: 返回 multipart 流体接口某个槽位配置的流体描述。
- 参数:
side: number安装该接口的 multipart 方向。slot: number可选槽位编号,默认是0。
- 返回值:
- 流体描述表。
- 说明:
- 如果槽位超出接口配置库存范围,底层物品栏会抛出索引错误。
- 语法:
setFluidInterfaceConfiguration(side: number[, slot: number][, detail: table]): boolean - 用途: 设置或清空 multipart 流体接口中的某个槽位。
- 参数:
side: number安装该接口的 multipart 方向。slot: number可选槽位编号,默认是0。detail: table可选流体描述表。
- 返回值:
true表示成功。
- 说明:
- 省略
detail会清空目标槽位。 side必须是确实安装了fluid_interface的方向,否则会抛出no matching part。
- 省略
local component = require("component")
if component.isAvailable("fluid_exportbus") then
local bus = component.fluid_exportbus
bus.setExportConfiguration(0, 0, {name = "water", amount = 1000, size = 1})
print("Export slots:", bus.getExportSlotSize(0))
print("Export filter:", bus.getExportOreFilter(0))
end
if component.isAvailable("fluid_interface") then
local iface = component.fluid_interface
iface.setFluidInterfaceConfiguration(0, {name = "lava", amount = 1000})
local stack = iface.getFluidInterfaceConfiguration(0)
print(stack and stack.name, stack and stack.amount)
endappengthaumicenergistics