このページでは Redstone
API と Colors API について解説する。
参考資料:
執筆時のバージョン:
- ComputerCraft 1.55 for Minecraft 1.6.2
Redstone API
ComputarやTurtleのレッドストーン入出力を制御する。"redstone"は"rs"と省略可能。
名前に"Bundled"が含まれる関数は、RedPowerのInsulated Wire(絶縁ワイヤー)やBundled Cables(ケーブル束)、【1.53-】MineFactoryReloadedのRedNet Cable(レッドネットケーブル)による入出力専用である。逆に、"Bundled"が含まれない関数ではBundled CablesやRedNet Cableの入出力を利用することができない。
【1.51-】 名前に"Analog"が含まれる関数は、入出力で0~15の信号の強さを利用できる。なお、イギリス綴りで"Analogue"と表記することもできる。
getSides
- rs.getSides()
- ComputerやTurtleが利用可能な方向を表す文字列を取得する
- 戻り値:テーブル型。利用可能な方向を表す文字列のリスト
例:
for k,v in pairs(rs.getSides()) do
print(v)
end
利用可能な全ての方向を表示する。
getInput
- rs.getInput( side )
- side(文字列)方向のレッドストーン入力の状態を取得する
- 戻り値:ブーリアン型。trueならON、falseならOFF
コンピュータ自身がレッドストーン出力している場合でもtrueを返す。
rs.getInputがtrue かつ rs.getOutputがfalse なら外部からの入力。
side は "left", "right", "top", "bottom", "front", "back" のいずれか(以下同様)。
例:
print(rs.getInput("back"))
後方向からのレッドストーン入力の状態を表示する。
setOutput
- rs.setOutput( side , state )
- side(文字列)方向のレッドストーン出力をstate(ブーリアン)に設定する(trueならON、falseならOFF)
- 戻り値:nil
例:
rs.setOutput("back", true)
sleep(1)
rs.setOutput("back", false)
後方向へのレッドストーン出力をONにして、その一秒後にOFFにする。
getOutput
- rs.getOutput( side )
- side(文字列)方向の自身のレッドストーン出力の状態を取得する
- 戻り値:ブーリアン型。trueならON、falseならOFF
例:
rs.setOutput("left", true)
print(rs.getOutput("left"))
左方向へのレッドストーン出力をONにした後、左方向のレッドストーン出力の状態を表示する。
(この例では true と表示される)
getAnalogInput
【1.51-】
- rs.getAnalogInput( side )
- side(文字列)方向のレッドストーン入力の強さを取得する
- 戻り値:数値型。レッドストーン信号の強さ(0~15)
コンピュータ自身がレッドストーン出力している場合、自身の出力を返す可能性がある。
setAnalogOutput
【1.51-】
- rs.setAnalogOutput( side, number )
- side(文字列)方向のレッドストーン出力を強さnumber(数値)に設定する
- 戻り値:nil
numberは0~15の整数。
getAnalogOutput
【1.51-】
- rs.getAnalogOutput( side )
- side(文字列)方向の自身のレッドストーン出力の強さを取得する
- 戻り値:数値型。レッドストーン信号の強さ(0~15)
getBundledInput
- rs.getBundledInput( side )
- side(文字列)方向のレッドストーン入力の状態を取得する(RedPower及び【1.53-】MineFactoryReloaded専用)
- 戻り値:数値型。ONのワイヤーの色に対応した整数値。数値の内容はColors APIで調べることもできる
例:
print(colors.test(rs.getBundledInput("back"), colors.blue))
後方向からのレッドストーン入力のうち青ワイヤーがONならtrueを、OFFならfalseを表示する。
setBundledOutput
- rs.setBundledOutput( side , colors )
- side(文字列)方向のレッドストーン出力をcolors(数値)に設定する(RedPower及び【1.53-】MineFactoryReloaded専用)。colorsはONにするワイヤーの色に対応した整数値。ONにしなかった色のワイヤーはOFFになる。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( side )
- side(文字列)方向の自身のレッドストーン出力の状態を取得する(RedPower及び【1.53-】MineFactoryReloaded専用)
- 戻り値:数値型。ONのワイヤーの色に対応した整数値。数値の内容はColors APIで調べることもできる
testBundledInput
- rs.testBundledInput( side , color )
- side(文字列)方向のレッドストーン入力でcolor(数値)のワイヤーがONかを調べる(RedPower及び【1.53-】MineFactoryReloaded専用)。colorには複数の色を表す値を指定することもでき、その場合はcolorの値に含まれる全ての色がONのときにのみtrueを返す。colorsの値はColors APIで作成できる
- 戻り値:ブーリアン型。trueならcolorはON、falseならOFF
Colors API
Redstone APIで使用するRedPowerのワイヤーの色を表す値の使用を補助する。イギリス綴りで"colours"と表記することもできる。
色定数
RedPowerのInsulated Wire(絶縁ワイヤー)やMineFactoryReloadedのRedNet Cableの各色を表す整数値の定数。文字色や背景色を指定する際にも用いられる。
定数名 |
数値(10) |
数値(16) |
文字色 【-1.53】 |
文字色 【1.55-】 |
Image データ |
colors.white |
1 |
0x1 |
■#F0F0F0 |
■#F0F0F0 |
0 |
colors.orange |
2 |
0x2 |
■#EB8844 |
■#F2B233 |
1 |
colors.magenta |
4 |
0x4 |
■#C354CD |
■#E57FD8 |
2 |
colors.lightBlue |
8 |
0x8 |
■#6689D3 |
■#99B2F2 |
3 |
colors.yellow |
16 |
0x10 |
■#DEDE6C |
■#DEDE6C |
4 |
colors.lime |
32 |
0x20 |
■#41CD34 |
■#7FCC19 |
5 |
colors.pink |
64 |
0x40 |
■#D88198 |
■#F2B2CC |
6 |
colors.gray |
128 |
0x80 |
■#434343 |
■#4C4C4C |
7 |
colors.lightGray |
256 |
0x100 |
■#999999 |
■#999999 |
8 |
colors.cyan |
512 |
0x200 |
■#287697 |
■#4C99B2 |
9 |
colors.purple |
1024 |
0x400 |
■#7B2FBE |
■#B266E5 |
a |
colors.blue |
2048 |
0x800 |
■#253192 |
■#253192 |
b |
colors.brown |
4096 |
0x1000 |
■#51301A |
■#7F664C |
c |
colors.green |
8192 |
0x2000 |
■#3B511A |
■#57A64E |
d |
colors.red |
16384 |
0x4000 |
■#B3312C |
■#CC4C4C |
e |
colors.black |
32768 |
0x8000 |
■#1E1B1B |
■#191919 |
f |
全16色のワイヤーの各色を、16ビットのうち特定のビットを1にすることで表現している。これら値の論理和(OR)を取ることにより、複数の色の組み合わせを表現できる。Colors APIの各関数で行っていることは単なるビット演算である(ビット演算を行うには
Bit APIを参照)。
combine
- colors.combine( color1 , color2 , ... )
- ワイヤーの色をを表す値color1, color2, ...(数値)を合成する。引数は複数指定できる
- 戻り値:数値型。合成されたワイヤーの色を表す整数値
例:
print(colors.combine(colors.white, colors.magenta, colours.lightBlue))
白とマゼンタとライトブルーのワイヤーを表す値(13)を作り、表示する。
subtract
- colors.subtract( colors , color1 , color2 , ... )
- ワイヤの色を表す値colors(数値)からcolor1, color2, ...(数値)の値の色を取り除く。引数は複数指定できる
- 戻り値:数値型。引数で指定した色を取り除いたワイヤーの色を表す値
例:
print(colors.subtract(colors.combine(colors.white, colors.magenta, colours.lightBlue), colors.magenta))
白とマゼンタとライトブルーのワイヤーを表す値からマゼンタを取り除いた値(9)を表示する。
test
- colors.test( colors , color )
- ワイヤの色を表す値colors(数値)にcolor(数値)の値の色が含まれているかを調べる。colorにも複数の色を表す値を指定することができ、その場合はcolorの値に含まれる全ての色がcolorsに含まれているときにのみtrueを返す
- 戻り値:ブーリアン型。含まれているならtrue、いないならfalse
例:
print(colors.test(colors.combine(colors.white, colors.magenta, colours.lightBlue), colors.lightBlue))
白とマゼンタとライトブルーのワイヤーを表す値にライトブルーが含まれているかを調べて表示する。
(この例では true と表示される)
最終更新:2014年01月14日 01:06