component(组件) API可用于访问电脑中的组件并与其交互。读者还可查看有关访问组件的页面。
component.doc(address:string, method:string): stringtostring来获取此字符串。例如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 ... endfilter(过滤器),则此方法只会返回包含过滤器字符串(并非模式字符串/正则表达式)的组件。例如,component.list("red")将会返回redstone组件的结果。true作为第二个参数传递,则执行精确匹配。例如red在此情况下不会匹配redstone。component.methods(address:string):tablecomponent.proxy(address:string):tableinvoke)。这也是用来生成各个组件类型的“首选组件”的方法,也即你通过component.某某(“某某”为组件类型)方法得到的东西。component.proxy(component.list("redstone")()).getInput(sides.north),这段代码会为你获取component.list迭代器返回的第一个redstone组件的代理对象,然后调用它的getInput方法。type与组件的类型名,二是address与组件的地址。component.type(address:string):stringcomponent.slot(address:string):stringcomponent.fields(address:string):stringcomponent.get(address: string[, componentType: string]): string | (nil, string)nil和一条报错信息。可选是否通过组件类型进行筛选。component.isAvailable(componentType: string): booleancomponent.getPrimary(componentType: string): tablecomponent.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