<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ocr.michiyo.me/w/index.php?action=history&amp;feed=atom&amp;title=Component%2Fredstone%2Fzh</id>
	<title>Component/redstone/zh - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ocr.michiyo.me/w/index.php?action=history&amp;feed=atom&amp;title=Component%2Fredstone%2Fzh"/>
	<link rel="alternate" type="text/html" href="https://ocr.michiyo.me/w/index.php?title=Component/redstone/zh&amp;action=history"/>
	<updated>2026-08-24T15:18:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://ocr.michiyo.me/w/index.php?title=Component/redstone/zh&amp;diff=1191&amp;oldid=prev</id>
		<title>imported&gt;OCDoc Import: Imported from legacy OpenComputers documentation at ocdoc.cil.li</title>
		<link rel="alternate" type="text/html" href="https://ocr.michiyo.me/w/index.php?title=Component/redstone/zh&amp;diff=1191&amp;oldid=prev"/>
		<updated>2026-08-24T08:08:27Z</updated>

		<summary type="html">&lt;p&gt;Imported from legacy OpenComputers documentation at ocdoc.cil.li&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= 组件：红石 =&lt;br /&gt;
&lt;br /&gt;
此组件由[[Item/redstone card/zh|红石卡]]提供。&lt;br /&gt;
&lt;br /&gt;
1级红石卡仅支持MC原版红石功能（单路模拟红石信号）。2级红石卡提供与其他模组红石系统的联动（集束红石和无线红石）。对于集束红石，在Minecraft 1.12版本我们仅支持Project Red（红石计划），在更低版本我们支持：RedLogic、Project Red（1.1版本）、MineFactory Reloaded（我的工厂重制版）。无线红石方面支持以下模组：WR-CBE、SlimeVoid&amp;#039;s WR。&lt;br /&gt;
&lt;br /&gt;
= ==== get&amp;#039;&amp;#039;与set&amp;#039;&amp;#039;方法重载 =&lt;br /&gt;
&lt;br /&gt;
自patch release 1.7.3起，红石组件提供以下函数的重载版本：`getInput`、`getOuput`、`setInput`、`getBundledInput`、`getBundledOutput`以及`setBundledOutput`。&lt;br /&gt;
&lt;br /&gt;
= ==== get&amp;#039;&amp;#039;与set&amp;#039;&amp;#039;调用开销 =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;get&amp;#039;&amp;#039;&amp;#039;方法为“直接”调用，且几乎无开销。实验中我每秒可以调用20000到22000次`getInput`方法。&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;set&amp;#039;&amp;#039;&amp;#039;方法并非为“直接”调用，因此每tick最多只能调用一次。也就是说每秒钟可以调用约20次。除了间接成本（消耗剩余的tick）之外，调用&amp;#039;&amp;#039;&amp;#039;set&amp;#039;&amp;#039;&amp;#039;改变了输出的强度等级后机器上还会有额外的延迟。默认情况下，调用&amp;#039;&amp;#039;&amp;#039;set&amp;#039;&amp;#039;&amp;#039;每秒可以改变输出约6次。&lt;br /&gt;
&lt;br /&gt;
使用这些重载变体的显著优势之一是，API调用开销为每次调用后结算，而不是每次设定数值后结算。&lt;br /&gt;
&lt;br /&gt;
组件名：`redstone`。&lt;br /&gt;
&lt;br /&gt;
回调函数：&lt;br /&gt;
&lt;br /&gt;
* `getInput(side: number): number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;`getInput(): table`  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
返回当前输入的（非集束）红石信号值。`getInput(side)`会返回指定[[API/sides/zh|方向]]上的红石信号等级。`getInput()`会返回包含所有方向上红石信号等级的表。 请注意返回的表的索引从0开始。因为表的索引其实是方向的原始值，`sides.bottom`对应了0。 还需注意此函数用到的方向是相对于电脑而言的。即`sides.south`为&amp;#039;&amp;#039;&amp;#039;电脑的前方&amp;#039;&amp;#039;&amp;#039;，而不是世界的南方。类似还有`sides.left`为电脑的左侧，也就是说如果你站在电脑面前的话，在你的右侧。 如果使用了例如RedLogic这样的模组，输入值可能会超出MC原版的[0, 15]范围。&lt;br /&gt;
&lt;br /&gt;
```lua lua&amp;gt; component.redstone.getInput(sides.left) 15 lua&amp;gt; component.redstone.getInput(sides.right) 4 lua&amp;gt; component.redstone.getInput() {[0]=7, 0, 0, 0, 4, 15} lua&amp;gt; component.redstone.getInput()[sides.bottom] 7 ```&lt;br /&gt;
&lt;br /&gt;
* `getOutput(side: number): number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;`getOutput(): table`  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
获取指定方向上输出的设定值，若不含参数调用则返回所有方向上的设定值。&lt;br /&gt;
&lt;br /&gt;
```lua lua&amp;gt; component.redstone.getOutput(sides.left) 7 lua&amp;gt; component.redstone.getOutput() [sides.left] 7 ```&lt;br /&gt;
&lt;br /&gt;
* `setOutput(side: number, value: number): number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;`setOutput(values: table): table`  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
设定要发出的红石信号强度。返回&amp;#039;&amp;#039;&amp;#039;旧的&amp;#039;&amp;#039;&amp;#039;值。配合支持的mod时可以为很大的值。此方法的参数为[[API/sides/zh|方向]]以及要应用到此方向的红石信号强度。`setOutput(values)`这种写法可以在一次调用内设定所有方向（或数个方向）上的红石信号强度。&lt;br /&gt;
* `getBundledInput(side: number, color: number): number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;`getBundledInput(side: number): table`  &lt;br /&gt;
`getBundledInput(): table`  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
和`getInput`类似，但适用于集束输入。读取指定[[API/colors/zh|颜色]]对应通道的值。 &amp;#039;&amp;#039;&amp;#039;对OC 1.3而言：&amp;#039;&amp;#039;&amp;#039;仅可用于2级红石卡。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;`getBundledInput(side, color)`返回指定方向上输入的指定颜色红石信号强度值。  &lt;br /&gt;
`getBundledInput(side)`返回一个表（格式为Map[Int, Int]这样的表结构），整合了指定方向上红石信号值，索引值为颜色。  &lt;br /&gt;
`getBundledInput()`返回所有的红石信号值，包括所有方向以及所有颜色。格式为Map[Int, Map[Int, Int]]这样的两层表结构。外层表的索引值范围是[0, 5]，值为[[API/sides/zh|方向]]（请记住`sides.bottom`为0）。每个方向对应内层表的数据结构与`getBundledInput(side)`返回值相同。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `getBundledOutput(side: number, color: number): number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;`getBundledOutput(side: number): table`  &lt;br /&gt;
`getBundledOutput(): table`  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
类似`getOutput`，但是适用于集束输出。用于获取先前设定的输出值。 &amp;#039;&amp;#039;&amp;#039;对OC 1.3而言：&amp;#039;&amp;#039;&amp;#039;仅可用于2级红石卡。&lt;br /&gt;
* `setBundledOutput(side: number, color: number, value: number): number` 类似`setOutput`，但是适用于集束输出。用于设定指定[[API/colors/zh|颜色]]对应通道的输出值。返回之前设定的值。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;`setBundledOutput(side, values)`设定一组红石信号值，以颜色为索引，颜色取值范围为[0, 15]，`colors.white`为0。提供的值不一定要连续，省略的值将会保持不变。  &lt;br /&gt;
`setBundledOutput(values)`让你能在单次API调用中修改所有方向上所有颜色的红石信号值。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;对OC 1.3而言：&amp;#039;&amp;#039;&amp;#039;仅可用于2级红石卡。&lt;br /&gt;
```lua lua&amp;gt; component.redstone.setBundledOutput(sides.left, { [colors.white] = 15 } ) -- only sets 1 output lua&amp;gt; component.redstone.setBundledOutput({ [sides.left] = { [colors.white] = 15 } } ) -- same as above ```&lt;br /&gt;
&lt;br /&gt;
* `getComparatorInput(side:number):number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取指定方向上的比较器输入。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `getWirelessInput():number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取无线红石输入值。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;自OC 1.3起添加：&amp;#039;&amp;#039;&amp;#039;仅可用于2级红石卡。&lt;br /&gt;
&lt;br /&gt;
* `getWirelessOutput():boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取无线红石输出值。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;自OC 1.3起添加：&amp;#039;&amp;#039;&amp;#039;仅可用于2级红石卡。&lt;br /&gt;
&lt;br /&gt;
* `setWirelessOutput(value:boolean):boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;设定无线红石输出值。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;自OC 1.3起添加：&amp;#039;&amp;#039;&amp;#039;仅可用于2级红石卡。&lt;br /&gt;
&lt;br /&gt;
* `getWirelessFrequency():number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取当前设定的无线红石频率。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;自OC 1.3起添加：&amp;#039;&amp;#039;&amp;#039;仅可用于2级红石卡。&lt;br /&gt;
&lt;br /&gt;
* `setWirelessFrequency(frequency:number):number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;设定要使用的无线红石频率。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;自OC 1.3起添加：&amp;#039;&amp;#039;&amp;#039;仅可用于2级红石卡。&lt;br /&gt;
&lt;br /&gt;
* `getWakeThreshold():number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取当前唤醒阈值。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `setWakeThreshold(threshold:number):number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;将唤醒阈值设定为给定数字。\\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
请注意对于如ProjectRed（红石计划）这样的模组而言，较低的强度值（例如原版最高为15的强度值）可能不会像预期一样起到简单开/关信号的作用（例如用于开门）。因为这些模组的红石信号值范围更大。你可能需要指定一个更大的值，例如255。&lt;br /&gt;
== 使用例： ```lua local component = require(&amp;quot;component&amp;quot;) local sides = require(&amp;quot;sides&amp;quot;) local colors = require(&amp;quot;colors&amp;quot;) local rs = component.redstone --获取首选红石组件 print(rs.getInput(sides.back)) rs.setBundledOutput(sides.bottom, colors.green, rs.getBundledInput(sides.top, colors.red)) ``` ` 目录 ==&lt;br /&gt;
&lt;br /&gt;
{{:Component/contents/zh}}&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;OCDoc Import</name></author>
	</entry>
</feed>