API > Redstone & Colors

「API/Redstone & Colors」の編集履歴(バックアップ)一覧に戻る
API/Redstone & Colors」を以下のとおり復元します。
このページでは Redstone API と Colors API について解説する。

参考資料:
-[[Redstone API>http://computercraft.info/wiki/index.php?title=Redstone_%28API%29]]
-[[Colors API>http://computercraft.info/wiki/index.php?title=Color_%28API%29]]
執筆時のバージョン:
-ComputerCraft 1.53 for Minecraft 1.5.2

----
#contents
----

*Redstone API
ComputarやTurtleのレッドストーン入出力を制御する。"redstone"は"rs"と省略可能。
名前に"Bundled"が含まれる関数は、RedPowerのInsulated Wire(絶縁ワイヤー)やBundled Cables(ケーブル束)、【1.53-】MineFactoryReloadedのRedNet Cable(レッドネットケーブル)による入出力専用である。逆に、"Bundled"が含まれない関数ではBundled CablesやRedNet Cableの入出力を利用することができない。

**getSides
-rs.getSides()
-ComputerやTurtleが利用可能な方向を表す文字列を取得する
-戻り値:テーブル型。利用可能な方向を表す文字列のリスト

例:
 for k,v in pairs(rs.getSides()) do
     print(v)
 end
利用可能な全ての方向を表示する。

**getInput
-rs.getInput( &italic(){side} )
-&italic(){side}(文字列)方向のレッドストーン入力の状態を取得する
-戻り値:ブーリアン型。trueならON、falseならOFF

コンピュータ自身がレッドストーン出力している場合でもtrueを返す。
rs.getInputがtrue かつ rs.getOutputがfalse なら外部からの入力。

&italic(){side} は "left", "right", "top", "bottom", "front", "back" のいずれか(以下同様)。

例:
 print(rs.getInput("back"))
後方向からのレッドストーン入力の状態を表示する。

**setOutput
-rs.setOutput( &italic(){side} , &italic(){state} )
-&italic(){side}(文字列)方向のレッドストーン出力を&italic(){state}(ブーリアン)に設定する(trueならON、falseならOFF)
-戻り値:nil

例:
 rs.setOutput("back", true)
 sleep(1)
 rs.setOutput("back", false)
後方向へのレッドストーン出力をONにして、その一秒後にOFFにする。

**getOutput
-rs.getOutput( &italic(){side} )
-&italic(){side}(文字列)方向の自身のレッドストーン出力の状態を取得する
-戻り値:ブーリアン型。trueならON、falseならOFF

例:
 rs.setOutput("left", true)
 print(rs.getOutput("left"))
左方向へのレッドストーン出力をONにした後、左方向のレッドストーン出力の状態を表示する。
(この例では true と表示される)

**getAnalogInput
【1.51-】
-rs.getAnalogInput( &italic(){side} )
-&italic(){side}(文字列)方向のレッドストーン入力の強さを取得する
-戻り値:数値型。レッドストーン信号の強さ(0~15)

コンピュータ自身がレッドストーン出力している場合、自身の出力を返す可能性がある。

**setAnalogOutput
【1.51-】
-rs.setAnalogOutput( &italic(){side}, &italic(){number} )
-&italic(){side}(文字列)方向のレッドストーン出力を強さ&italic(){number}(数値)に設定する
-戻り値:nil

&italic(){number}は0~15の整数。

**getAnalogOutput
【1.51-】
-rs.getAnalogOutput( &italic(){side} )
-&italic(){side}(文字列)方向の自身のレッドストーン出力の強さを取得する
-戻り値:数値型。レッドストーン信号の強さ(0~15)

**getBundledInput
-rs.getBundledInput( &italic(){side} )
-&italic(){side}(文字列)方向のレッドストーン入力の状態を取得する(RedPower及び【1.53-】MineFactoryReloaded専用)
-戻り値:数値型。ONのワイヤーの色に対応した整数値。数値の内容はColors APIで調べることもできる

例:
 print(colors.test(rs.getBundledInput("back"), colors.blue))
後方向からのレッドストーン入力のうち青ワイヤーがONならtrueを、OFFならfalseを表示する。

**setBundledOutput
-rs.setBundledOutput( &italic(){side} , &italic(){colors} )
-&italic(){side}(文字列)方向のレッドストーン出力を&italic(){colors}(数値)に設定する(RedPower及び【1.53-】MineFactoryReloaded専用)。&italic(){colors}はONにするワイヤーの色に対応した整数値。ONにしなかった色のワイヤーはOFFになる。&italic(){colors}の値はColors APIで作成できる
-戻り値:nil

例:
 while(true) do
     rs.setBundledOutput("back", colors.black)
     sleep(2)
     rs.setBundledOutput("back", colors.white)
     sleep(2)
 end
後方向へ2秒間隔で交互に黒ワイヤーと白ワイヤーからレッドストーン出力をする。
("while(true)"は"while true"と書くこともできる)

**getBundledOutput
-rs.getBundledOutput( &italic(){side} )
-&italic(){side}(文字列)方向の自身のレッドストーン出力の状態を取得する(RedPower及び【1.53-】MineFactoryReloaded専用)
-戻り値:数値型。ONのワイヤーの色に対応した整数値。数値の内容はColors APIで調べることもできる

**testBundledInput
-rs.testBundledInput( &italic(){side} , &italic(){color} )
-side(文字列)方向のレッドストーン入力でcolor(数値)のワイヤーがONかを調べる(RedPower及び【1.53-】MineFactoryReloaded専用)。&italic(){color}には複数の色を表す値を指定することもでき、その場合は&italic(){color}の値に含まれる全ての色がONのときにのみtrueを返す。&italic(){colors}の値はColors APIで作成できる
-戻り値:ブーリアン型。trueならcolorはON、falseならOFF

*Colors API
Redstone APIで使用するRedPowerのワイヤーの色を表す値の使用を補助する。イギリス綴りで"colours"と表記することもできる。

**色定数
RedPowerのInsulated Wire(絶縁ワイヤー)の各色を表す整数値の定数。文字色や背景色を指定する際にも用いられる。

|MIDDLE:CENTER:BGCOLOR(#DDD):&bold(){定数名}|MIDDLE:CENTER:BGCOLOR(#DDD):&bold(){数値(10)}|MIDDLE:CENTER:BGCOLOR(#DDD):&bold(){数値(16)}|MIDDLE:CENTER:BGCOLOR(#DDD):&bold(){[[Image>API/Paintutils#id_25b992e0]]&br()データ}|MIDDLE:CENTER:BGCOLOR(#DDD):&bold(){文字色}|
|colors.white|RIGHT:1|RIGHT:0x1|CENTER:0|BGCOLOR(#1E1B1B): &color(#F0F0F0){■}&color(#F0F0F0){#F0F0F0}|
|colors.orange|RIGHT:2|RIGHT:0x2|CENTER:1|BGCOLOR(#1E1B1B): &color(#EB8844){■}&color(#F0F0F0){#EB8844}|
|colors.magenta|RIGHT:4|RIGHT:0x4|CENTER:2|BGCOLOR(#1E1B1B): &color(#C354CD){■}&color(#F0F0F0){#C354CD}|
|colors.lightBlue|RIGHT:8|RIGHT:0x8|CENTER:3|BGCOLOR(#1E1B1B): &color(#6689D3){■}&color(#F0F0F0){#6689D3}|
|colors.yellow|RIGHT:16|RIGHT:0x10|CENTER:4|BGCOLOR(#1E1B1B): &color(#DEDE6C){■}&color(#F0F0F0){#DEDE6C}|
|colors.lime|RIGHT:32|RIGHT:0x20|CENTER:5|BGCOLOR(#1E1B1B): &color(#41CD34){■}&color(#F0F0F0){#41CD34}|
|colors.pink|RIGHT:64|RIGHT:0x40|CENTER:6|BGCOLOR(#1E1B1B): &color(#D88198){■}&color(#F0F0F0){#D88198}|
|colors.gray|RIGHT:128|RIGHT:0x80|CENTER:7|BGCOLOR(#1E1B1B): &color(#434343){■}&color(#F0F0F0){#434343}|
|colors.lightGray|RIGHT:256|RIGHT:0x100|CENTER:8|BGCOLOR(#1E1B1B): &color(#999999){■}&color(#F0F0F0){#999999}|
|colors.cyan|RIGHT:512|RIGHT:0x200|CENTER:9|BGCOLOR(#1E1B1B): &color(#287697){■}&color(#F0F0F0){#287697}|
|colors.purple|RIGHT:1024|RIGHT:0x400|CENTER:a|BGCOLOR(#1E1B1B): &color(#7B2FBE){■}&color(#F0F0F0){#7B2FBE}|
|colors.blue|RIGHT:2048|RIGHT:0x800|CENTER:b|BGCOLOR(#1E1B1B): &color(#253192){■}&color(#F0F0F0){#253192}|
|colors.brown|RIGHT:4096|RIGHT:0x1000|CENTER:c|BGCOLOR(#1E1B1B): &color(#51301A){■}&color(#F0F0F0){#51301A}|
|colors.green|RIGHT:8192|RIGHT:0x2000|CENTER:d|BGCOLOR(#1E1B1B): &color(#3B511A){■}&color(#F0F0F0){#3B511A}|
|colors.red|RIGHT:16384|RIGHT:0x4000|CENTER:e|BGCOLOR(#1E1B1B): &color(#B3312C){■}&color(#F0F0F0){#B3312C}|
|colors.black|RIGHT:32768|RIGHT:0x8000|CENTER:f|BGCOLOR(#1E1B1B): &color(#1E1B1B){■}&color(#F0F0F0){#1E1B1B}|

全16色のワイヤーの各色を、16ビットのうち特定のビットを1にすることで表現している。これら値の論理和(OR)を取ることにより、複数の色の組み合わせを表現できる。Colors APIの各関数で行っていることは単なるビット演算である(ビット演算を行うには[[Bit API>bit (API)]]を参照)。

**combine
-colors.combine( &italic(){color1} , &italic(){color2} , ... )
-ワイヤーの色をを表す値&italic(){color1}, &italic(){color2}, ...(数値)を合成する。引数は複数指定できる
-戻り値:数値型。合成されたワイヤーの色を表す整数値

例:
 print(colors.combine(colors.white, colors.magenta, colours.lightBlue))
白とマゼンタとライトブルーのワイヤーを表す値(13)を作り、表示する。

**subtract
-colors.subtract( &italic(){colors} , &italic(){color1} , &italic(){color2} , &italic(){...} )
-ワイヤの色を表す値colors(数値)から&italic(){color1}, &italic(){color2}, &italic(){...}(数値)の値の色を取り除く。引数は複数指定できる
-戻り値:数値型。引数で指定した色を取り除いたワイヤーの色を表す値

例:
 print(colors.subtract(colors.combine(colors.white, colors.magenta, colours.lightBlue), colors.magenta))
白とマゼンタとライトブルーのワイヤーを表す値からマゼンタを取り除いた値(9)を表示する。

**test
-colors.test( &italic(){colors} , &italic(){color} )
-ワイヤの色を表す値&italic(){colors}(数値)に&italic(){color}(数値)の値の色が含まれているかを調べる。&italic(){color}にも複数の色を表す値を指定することができ、その場合は&italic(){color}の値に含まれる全ての色が&italic(){colors}に含まれているときにのみtrueを返す
-戻り値:ブーリアン型。含まれているならtrue、いないならfalse

例:
 print(colors.test(colors.combine(colors.white, colors.magenta, colours.lightBlue), colors.lightBlue))
白とマゼンタとライトブルーのワイヤーを表す値にライトブルーが含まれているかを調べて表示する。
(この例では true と表示される)

復元してよろしいですか?