component(组件) API可用于访问电脑中的组件并与其交互。读者还可查看有关访问组件的页面。
component.doc(address:string, method:string): string
tostring
来获取此字符串。例如tostring(component.screen.isOn)
。component.invoke(address:string, method:string[, ...]): ...
component.list([filter:string[, exact:boolean]]):function
__call
提供了迭代器语法,所以你还可以这样调用:for address, componentType in component.list() do ... end
filter
(过滤器),则此方法只会返回包含过滤器字符串(并非模式字符串/正则表达式)的组件。例如,component.list("red")
将会返回redstone
组件的结果。true
作为第二个参数传递,则执行精确匹配。例如red
在此情况下不会匹配redstone
。component.methods(address:string):table
component.proxy(address:string):table
invoke
)。这也是用来生成各个组件类型的“首选组件”的方法,也即你通过component.某某
(“某某”为组件类型)方法得到的东西。component.proxy(component.list("redstone")()).getInput(sides.north)
,这段代码会为你获取component.list
迭代器返回的第一个redstone
组件的代理对象,然后调用它的getInput
方法。type
与组件的类型名,二是address
与组件的地址。component.type(address:string):string
component.slot(address:string):string
component.fields(address:string):string
component.get(address: string[, componentType: string]): string | (nil, string)
nil
和一条报错信息。可选是否通过组件类型进行筛选。component.isAvailable(componentType: string): boolean
component.getPrimary(componentType: string): table
component.setPrimary(componentType: string, address: string)
nil
。将其设定为nil
和新值时分别会触发component_unavailable
和component_available
信号。请注意component API有一个元表,支持以下语法:
local component = require("component") local rs0 = component.getPrimary("redstone") local rs1 = component.redstone --语法糖 print(rs0 == rs1) --输出值为true