Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
component:signals:zh [2023/11/29 09:21]
hfsr [网卡]
component:signals:zh [2023/12/27 04:27]
hfsr [信号]
Line 2: Line 2:
 ==== ====
  
-信号是由某些外部来源发送给电脑的信息,可被用于各种用途。它们需要至少有个名字,然后还可以有任意数量的(简单)参数。注意,电脑也可以向自己的信号队列中添加信号。+信号是由某些外部来源发送给电脑的信息,可被用于各种用途。它们需要至少有个名字,然后还可以有任意数量的(简单)参数。注意,电脑自己也可以向自己的信号队列中添加信号。
  
 信号可以通过调用[[api:​computer:​zh|computer.pullSignal()]]或其简单封装[[api:​event:​zh|event.pull()]]来消耗。 信号可以通过调用[[api:​computer:​zh|computer.pullSignal()]]或其简单封装[[api:​event:​zh|event.pull()]]来消耗。
Line 115: Line 115:
  
 - `inventory_changed(slot:​ number)`  ​ - `inventory_changed(slot:​ number)`  ​
-  当机器人的物品栏发生变化时,机器人会将这个信号添加到事件队列。注意只包括储存在槽中的物品种类变化。增加或减少一个物品堆中的物品数量并不会触发这个信号。然而玩家手动将机器人库存中的一物品换成另一件物品(例如玩家鼠标持有木棍,然后点击机器人库存中的火把,玩家鼠标上的物品会变成火把,机器人对应槽中的物品会变成木棍)时实际上会触发*两个*信号:一个是移除火把的信号,一个是与此同时放入木棍的信号。使用 [[api:​robot:​zh|robot.transferTo()]] 交换两个槽中的物品甚至会触发*四个*信号——原因同上,但这次涉及到两个槽间的物品交换。 +  当机器人的物品栏发生变化时,机器人会将信号添加到队列。注意只包括储存在槽中的物品种类变化。增加或减少一个物品堆中的物品数量并不会触发这个信号。 ​  
-  此外,这个信号只针对机器人实际可寻址的物品栏,也就是说,它不会因备(工具、卡槽内的卡、升级槽内的升级组件)的变化而被触发。+  ​玩家手动将机器人库存中的一物品换成另一(例如火把木棍)时实际上会触发**两个**信号:一个是移除火把的信号,一个是与此同时放入木棍的信号。使用[[api:​robot:​zh|robot.transferTo()]]交换两个槽中的物品甚至会触发**四个**信号——原因同上,但这次涉及到两个槽间的物品交换。 ​  
 +  此外,信号只针对机器人物品栏中有地址的部分,也就是说,它不会因备(工具、扩展卡、升级)的变化而被触发。
  
  
-抽象总线+抽象总线
 -------- --------
 +
 +来自[Stargate Tech 2](http://​stargatetech.theender.net/​miscellaneous/​home.html)。
  
 - `bus_message(protocolId:​ number, senderAddress:​ number, targetAddress:​ number, data: table, metadata: table)` ​ - `bus_message(protocolId:​ number, senderAddress:​ number, targetAddress:​ number, data: table, metadata: table)` ​
-  - `protocolId` 是所使用的协议的版本。 +  - `protocolId`是所使用的协议的版本。 
-  - `senderAddress` 是发送息的设备地址。 +  - `senderAddress`是发送息的设备地址。 
-  - `targetAddress` 是所指向的设备地址(网络广播为 -1)。 +  - `targetAddress`是息的目标设备地址(网络广播为 -1)。 
-  - `data`是发送数据的表。 +  - `data`是包含所发送数据的表。 
-  - `metadata` 是发送设备所特有的数据的表。+  - `metadata`是特定于发送设备的数据的表。
  
  
-运输组件+车辆
 -------- --------
  
-**重要**: 这个组件已被移动到附属模组 OpenComponents。+来自[Redstone in motion / remain in motion(红石运动机构)](https://​www.curseforge.com/​minecraft/​mc-mods/​remain-in-motion) 
 + 
 +<del>**注意:**组件的驱动程序已被移动到附属模组OpenComponents中。</​del> ​  
 +OpenComponents模组的内容已合并进主模组
  
 - `carriage_moved(success:​ boolean[, reason:​string[,​ x:number, y: number, z: number]])`  ​ - `carriage_moved(success:​ boolean[, reason:​string[,​ x:number, y: number, z: number]])`  ​
-  ​这个信号会在运输组件发出移动或模拟命令后入队列。`success` 参数指出移动或模拟指令是否执行成功,即运载工具是否移动如果移动失败,`reason` ​包含的就是错误信息。取决于错误信息,(`x`,​ `y`, `z`)会是造成移动失败的方块在世界中的坐标。+  ​信号会在车辆组件成功执行移动或模拟移动命令后入队列。`success`参数指出移动或模拟移动指令是否执行成功,即车辆是否移动。移动失败,`reason`即为错误信息。取决于错误信息,(`x`,​`y`,​`z`)会是造成移动失败的方块在世界中的坐标。
  
 目录 目录
 ----------- -----------
-{{page>api:​contents:​zh&​noheader&​noeditbutton&​nouser&​nofooter}}+{{page>component:​contents:​zh&​noheader&​noeditbutton&​nouser&​nofooter}}