此组件由数据库升级提供。
数据库组件主要用于处理“完整的”物品堆,包括NBT标签,这些标签(默认情况下)对Lua脚本不可用(以避免利用漏洞/破坏其他mod的游戏玩法)。将物品堆放入数据库组件,然后指定数据库组件地址及其槽位号,就可以给一些组件提供物品堆数据。例如,AE2的输出总线驱动程序就利用了这个功能。
组件名:database
。
回调函数:
get(slot:number):table
computeHash(slot:number):string
indexOf(hash:string):number
clear(slot:number):boolean
true
。copy(fromSlot:number, toSlot:number[, address:string]):boolean
true
。clone(address:string):number
使用例:
local component = require("component") local sides = require("sides") local db = component.database --首选数据库组件 local invcontrol = component.inventory_controller --首选物品栏控制器 --定义槽位序号 dbSlot = 1 invSlot = 1 --将外部物品容器中的物品与数据库第一个槽位中的物品进行对比 if db.get(dbSlot).label == invcontrol.getStackInSlot(sides.north, invSlot).label then --物品匹配,进行对应操作。 else --物品不匹配,什么都不做,或者进行其他操作 end