Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
api:component:zh [2023/11/03 20:26]
hfsr [Component(组件) API]
api:component:zh [2023/11/29 06:21] (current)
hfsr [Component(组件) API]
Line 4: Line 4:
  
 - `component.doc(address:​string,​ method:​string):​ string`  ​ - `component.doc(address:​string,​ method:​string):​ string`  ​
-  返回指定地址的组件中指定名称的方法对应文档字符串(如果存在)。请注意你也可以对代理对象(proxy)的方法使用`tostring`来获取此字符串。例如`tostring(component.screen.isOn)`。 ​  +  返回指定组件中指定方法对应文档字符串(存在)。请注意你也可以对代理对象的方法使用`tostring`来获取此字符串。例如`tostring(component.screen.isOn)`。 ​  
-  \\+\\
 - `component.invoke(address:​string,​ method:​string[,​ ...]): ...`  ​ - `component.invoke(address:​string,​ method:​string[,​ ...]): ...`  ​
-  调用指定地址的组件指定名称的方法,将其余参数传递给此方法作为其参数。返回方法调用的结果,即方法的返回值。调用时可能会抛出异常,依被调用方法的实现而异。 ​  +  调用指定组件指定方法,将其余参数传递给此方法作为其参数。返回方法调用的结果,即方法的返回值。调用时可能会抛出异常,依被调用方法的实现而异。 ​  
-  \\+\\
 - `component.list([filter:​string[,​ exact:​boolean]]):​function`  ​ - `component.list([filter:​string[,​ exact:​boolean]]):​function`  ​
   返回一个表,其中列出当前所有连接到电脑的组件,表中以组件地址为键并以组件类型为值。此方法还通过`__call`提供了迭代器语法,所以你还可以这样调用:`for address, componentType in component.list() do ... end`  ​   返回一个表,其中列出当前所有连接到电脑的组件,表中以组件地址为键并以组件类型为值。此方法还通过`__call`提供了迭代器语法,所以你还可以这样调用:`for address, componentType in component.list() do ... end`  ​
-  若设置了`filter`(过滤器),则此方法只会返回包含过滤器字符串的组件(*并非*模式字符串/​正则表达式)。例如,`component.list("​red"​)`将会返回`redstone`组件的结果。  +  若设置了`filter`(过滤器),则此方法只会返回包含过滤器字符串(**并非**模式字符串/​正则表达式)的组件。例如,`component.list("​red"​)`将会返回`redstone`组件的结果。 ​  
-  如果将`true`作为第二个参数传递,则执行精确匹配。例如`red`在此情况下*不会*匹配`redstone`。 ​  +  如果将`true`作为第二个参数传递,则执行精确匹配。例如`red`在此情况下**不会**匹配`redstone`。 ​  
-  \\+\\
 - `component.methods(address:​string):​table`  ​ - `component.methods(address:​string):​table`  ​
-  返回一张表,其中包含指定地址的组件提供的所有方法名。表中的键为方法名,而表中的值代表了此方法是否为直接调用。 ​  +  返回一张表,其中包含指定组件提供的所有方法名。表中的键为方法名,而表中的值代表了此方法是否为直接调用。 ​  
-  \\+\\
 - `component.proxy(address:​string):​table`  ​ - `component.proxy(address:​string):​table`  ​
-  获取某组件的'proxy'对象(代理对象),代理对象将组件提供的所有方法以字段(键值对)的形式给出,因此可以更直接地调用它们(无需通过`invoke`)。这也是用来生成各个组件类型的“首选组件”的方法,也即你通过`component.某某`(某某为组件类型)方法得到的东西。 +  获取某组件的proxy对象(代理对象),代理对象将组件提供的所有方法以字段的形式给出,因此可以更直接地调用它们(无需通过`invoke`)。这也是用来生成各个组件类型的“首选组件”的方法,也即你通过`component.某某`(某某为组件类型)方法得到的东西。 ​  
-  例如,你可以这样使用此方法:`component.proxy(component.list("​redstone"​)()).getInput(sides.north)`,这段代码会为你获取`component.list`迭代器返回的第一个`redstone`组件的代理对象,然后调用它的`getInput`方法。+  例如,你可以这样使用此方法:`component.proxy(component.list("​redstone"​)()).getInput(sides.north)`,这段代码会为你获取`component.list`迭代器返回的第一个`redstone`组件的代理对象,然后调用它的`getInput`方法。 ​ 
   请注意代理对象无论如何都至少有两个字段:一是`type`与组件的类型名,二是`address`与组件的地址。  ​   请注意代理对象无论如何都至少有两个字段:一是`type`与组件的类型名,二是`address`与组件的地址。  ​
-  ​\\+\\
 - `component.type(address:​string):​string`  ​ - `component.type(address:​string):​string`  ​
-  获取指定地址的组件的类型。 ​  +  获取指定组件的类型。 ​  
-  \\+\\
 - `component.slot(address:​string):​string`  ​ - `component.slot(address:​string):​string`  ​
-  返回安装组件的插槽编号。如果无意义则返回-1。 ​  +  返回安装组件的插槽编号。无意义则返回-1。 ​  
-  \\+\\
 - `component.fields(address:​string):​string`  ​ - `component.fields(address:​string):​string`  ​
-  未记录(译者注:有空去游戏里试一下) ​  +  未记录 ​  
-  \\+\\
 - `component.get(address:​ string[, componentType:​ string]): string | (nil, string)`  ​ - `component.get(address:​ string[, componentType:​ string]): string | (nil, string)`  ​
   尝试将简写地址(部分地址)解析为完整地址。成功时返回完整地址,失败时返回`nil`和一条报错信息。可选是否通过组件类型进行筛选。  ​   尝试将简写地址(部分地址)解析为完整地址。成功时返回完整地址,失败时返回`nil`和一条报错信息。可选是否通过组件类型进行筛选。  ​
-  ​\\+\\
 - `component.isAvailable(componentType:​ string): boolean`  ​ - `component.isAvailable(componentType:​ string): boolean`  ​
-  检查指定组件类型是否存在首选组件。 ​  +  检查指定组件类型是否存在首选组件。 ​  
-  \\+\\
 - `component.getPrimary(componentType:​ string): table`  ​ - `component.getPrimary(componentType:​ string): table`  ​
-  获取指定类型的首组件的代理对象。如果指定类型无首选组件则抛出异常。 ​  +  获取指定类型组件的首组件的代理对象。如果指定类型无首选组件则抛出异常。 ​  
-  \\+\\
 - `component.setPrimary(componentType:​ string, address: string)`  ​ - `component.setPrimary(componentType:​ string, address: string)`  ​
-  为指定组件类型设定一个新的首选组件。地址可以为简写地址,但必须合法,否则应当为`nil`。将其设定为`nil`新值时分别会触发`component_unavailable`和`component_available`信号。 ​  +  为指定组件类型设定一个新的首选组件。地址可以为简写地址,但必须合法,否则应当为`nil`。将其设定为`nil`新值时分别会触发`component_unavailable`和`component_available`信号。 ​  
-  \\+\\ 
 请注意component API有一个元表,支持以下语法: 请注意component API有一个元表,支持以下语法: