API > OS

「API/OS」の編集履歴(バックアップ)一覧に戻る

API/OS - (2013/03/17 (日) 22:21:27) の編集履歴(バックアップ)


このページでは OS API について解説する。

参考資料:
執筆時のバージョン:
  • ComputerCraft 1.51 for Minecraft 1.5




OS API

version

  • os.version()
  • コンピュータやタートルのOSのバージョンを取得する
  • 戻り値:文字列型

computerID

  • os.computerID()
  • コンピュータやタートルのIDを取得する
  • 戻り値:数値型

getComputerLabel

  • os.getComputerLabel()
  • コンピュータやタートルのラベルを取得する
  • 戻り値:文字列型

setComputerLabel

  • os.setComputerLabel( label )
  • コンピュータやタートルのラベルをlabel(文字列)に設定する
  • 戻り値:nil

pullEvent

  • os.pullEvent( [ filter ] )
  • イベントが発生するまで待ち、発生したイベントを返す。filter(文字列)にイベント名を指定すると、そのイベントが発生したときのみ返る
  • 戻り値:文字列型, ... 。一番目は発生イベント名(文字列)、その後は発生イベントごとに決まっている個数(最大5個)、型のパラメータ

強制中断(Ctrl+T長押し)によってterminateイベントは発生せず、プログラムは即終了する。
発生するイベントはイベント一覧を参照。

pullEventRaw

  • os.pullEventRaw( [ filter ] )
  • イベントが発生するまで待ち、発生したイベントを返す。filter(文字列)にイベント名を指定すると、そのイベントが発生したときのみ返る
  • 戻り値:文字列型, ... 。一番目は発生イベント名(文字列)、その後は発生イベントごとに決まっている個数(最大5個)、型のパラメータ

「Ctrl+T長押し」で発生するterminateイベントも取得できる。その後の処理はプログラム側に任せられる。
発生するイベントはイベント一覧を参照。

queueEvent

  • os.queueEvent( event , ... )
  • 任意のイベントを発生させる。event(文字列)で発生させるイベント名を指定する。2番目以降の引数でイベントのパラメータ(0~5個)を指定する
  • 戻り値:nil

clock

  • os.clock()
  • コンピュータやタートルの稼働時間を取得する
  • 戻り値:数値型。稼働時間を表す実数(秒)

startTimer

  • os.startTimer( timeout )
  • 実数timeout(数値)秒後にtimerイベントを発生させる
  • 戻り値:数値型。タイマーID

戻り値のタイマーIDとtimerイベント時に返るタイマーIDを比較することによって、どのタイマーによるtimerイベントなのかが判別可能。
一度timerイベントを発生させたタイマーは解除される。

sleep

  • os.sleep( timeout )
    sleep( timeout )
  • コンピュータやタートルの処理をtimeout(数値)秒間停止する
  • 戻り値:nil

プログラムを途中で一定時間停止させるのに使う。
一般に省略形である sleep( timeout ) の方が使われる。
内部的にはstartTimer関数とpullEvent関数で実装されている。そのためtimeoutに0を指定しても最低1tick(0.05秒)間は停止する。

day

【1.48-】
  • os.day()
  • 現在のワールドのゲーム内での経過日数を取得する
  • 戻り値:数値型。ゲーム内での経過日数を表す整数(日)

time

  • os.time()
  • Minecraftのゲーム内時間を取得する
  • 戻り値:数値型。ゲーム内時間を表す実数(時)

例:
local hour, min = math.modf( os.time() )
min = math.floor( min * 60 )
print("The time is " .. hour .. ":" .. min)
ゲーム内時刻を取得し、「時:分」の形式で表示する。
なお、「時:分」形式への変換にTextutils APIを使うと以下のようになる。
local time = os.time()
time = textutils.formatTime( time, true )
print("The time is " .. time)

setAlarm

  • os.setAlarm( time )
  • Minecraftのゲーム時間でtime(数値)時にalarmイベントを発生させる
  • 戻り値:数値型。アラームID

戻り値のアラームIDとalarmイベント時に返るアラームIDを比較することによって、どのアラームによるalarmイベントなのかが判別可能。
一度alarmイベントを発生させたアラームは解除される。

shutdown

  • os.shutdown()
  • コンピュータやタートルをシャットダウンする
  • 戻り値:nil

reboot

  • os.reboot()
  • コンピュータやタートルを再起動する
  • 戻り値:nil

run

  • os.run( env , path , ... )
  • パスpath(文字列)のプログラムを実行する。env(テーブル)でプログラムのグローバル変数の初期値を指定できる。3番目以降の引数でプログラムに渡されるパラメータを指定できる
  • 戻り値:ブーリアン型。成功したらture、失敗したらfalse

Shell APIのrun関数との違いは、envで環境変数を指定できること

loadAPI

  • os.loadAPI( name )
  • プログラムname(文字列)をAPIに追加する。プログラムファイル名がAPI名になる
  • 戻り値:ブーリアン型。APIの追加に成功したらtrue、失敗したらfalse。

プログラムファイル内の関数に対して、プログラムファイル名.foo() のようにアクセスできるようになる。
【1.4】指定プログラムが存在せず読み込みに失敗した場合でもAPI名が登録されてしまう不具合が修正された。

unloadAPI

  • os.unloadAPI( name )
  • name(文字列)をAPIから外す
  • 戻り値:nil

イベント一覧

pullEventおよびpullEventRawで捕捉できるイベント。
戻り値 解説
1 2 3 4 5 6
"alarm" アラームID(数値) nil nil nil nil アラームの指定時刻になった
"char" 文字(文字列) nil nil nil nil 文字が入力された
"disk" 方向(文字列)
【1.51-】名前(文字列)
nil nil nil nil ドライブにアイテムがセットされた
"disk_eject" 方向(文字列)
【1.51-】名前(文字列)
nil nil nil nil ドライブからアイテムが取り出された
"http_failure" URL(文字列) nil nil nil nil HTTPリクエスト失敗
"http_success" URL(文字列) ファイルハンドル nil nil nil HTTPリクエスト成功
"key" キーコード(数値) nil nil nil nil キーが押された
"modem_message" 方向(文字列)
【1.51-】名前(文字列)
受信チャンネル(数値) 送信者チャンネル(数値) メッセージ(文字列) 距離(数値) 【1.5-】通信を受信した。
(受信時には常に発生)
"monitor_resize" 方向(文字列)
【1.51-】名前(文字列)
nil nil nil nil モニタのサイズが変更された
"monitor_touch" 方向(文字列)
【1.51-】名前(文字列)
タッチ位置X(数値) タッチ位置Y(数値) nil nil 【1.48-】Advanced Monitor
画面がタッチされた
"mouse_click" ボタン(数値) マウス位置X(数値) マウス位置Y(数値) nil nil 【1.45-】Advanced Computer
GUI画面がクリックされた
"mouse_drag" ボタン(数値) マウス位置X(数値) マウス位置Y(数値) nil nil 【1.45-】Advanced Computer
GUI画面上でドラッグされた
"mouse_scroll" スクロール方向(数値) マウス位置X(数値) マウス位置Y(数値) nil nil 【1.45-】Advanced Computer
GUI画面上でホイールが動かされた。スクロール方向は奥・上が負、手前・下が正
"peripheral" 方向(文字列)
【1.51-】名前(文字列)
nil nil nil nil 周辺機器が設置された
"peripheral_detach" 方向(文字列)
【1.51-】名前(文字列)
nil nil nil nil 周辺機器が外された
"timer" タイマーID(数値) nil nil nil nil タイマーの指定時間が経過した
"turtle_response" コマンドID(数値) コマンドの成否(ブーリアン) nil nil nil Turtle
カスタムコマンドが実行された
"rednet_message" 送信者ID(数値)
【1.5-】送信者チャンネル(数値)
メッセージ(文字列) 距離(数値) nil nil 通信を受信した。
(受信チャンネル=受信者IDまたはbroadcastのときのみ発生)
"redstone" nil nil nil nil nil レッドストーン入力が変化した

上記に加えてpullEventRawで捕捉できるイベント。
戻り値 解説
1 2 3 4 5 6
"terminate" nil nil nil nil nil Ctrl+Tが長押しされた