Component/database/zh
组件:数据库
此组件由数据库升级提供。
数据库组件主要用于处理“完整的”物品堆,包括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`
将此数据库中存储的数据复制到指定地址对应的数据库。
使用例:
```lua 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 ```
目录
| < 100% 15% 15% > | ||
| 组件API | 3D打印机 - 抽象总线 - 无线接入点 - 区块加载器 - 电脑 - 合成 - 数据卡 - 数据库 - 调试 - 无人机 - 驱动器 - EEPROM - 经验 - 文件系统 - 发电机 - 地质分析仪 - GPU - 全息投影仪 - 因特网 - 物品栏控制器 - 拴绳 - 微控制器 - 调制解调器 - 运动传感器 - 导航 - 网络拆分器 - 活塞 - 红石 - 运动红石机构 - 机器人 - 屏幕 - 告示牌 - 储罐控制器 - 牵引光束 - 转运器 - 隧道 - 世界传感器 | |
| ::: | 其它 | 访问组件 - 信号 |
| ::: | 模组联动 | 应用能源 |