function redstoneUpdateHook(X, Y, Z, NEW_CURRENT, WORLD_LOADING, BLOCK_ID, BLOCK_DAMAGE){ }追加したブロックのレッドストーン入力に変更があった時に呼び出されるフック関数。
既存のブロックのレッドストーン入力の変更に対しては一切フックしない。
フックするブロックの条件は以下の2点である。
- Block.defineBlockで追加したブロックである事
- Block.setRedstoneConsumerで検出する設定にしたブロックである事
フックされるタイミングは二種類ある。
一つ目はワールド生成時や新しくBlock.setRedstoneConsumerで設定したブロックが設置された時。
二つ目は既に設置されたブロックへのレッドストーン入力に変化があった時。
この二つはWORLD_LOADINGの値で判別する。
型 | 引数 | 説明 |
---|---|---|
int | X | ブロックのX座標 |
int | Y | ブロックのY座標 |
int | Z | ブロックのZ座標 |
int | NEW_CURRENT | ブロックに流れるレッドストーン入力の量 |
boolean | WORLD_LOADING | ワールド読み込み時のフックか否か |
int | BLOCK_ID | ブロックのID |
int | BLOCK_DAMAGE | ブロックのダメージ値 |
true | ブロックを設置するか ワールド読み込みを行った場合 |
false | 既に設置されたブロックへのレッドストーン入力に 変化があった場合 |
//redstoneUpdateHookが受け取る情報を表示するテンプレ var TEXTURE_ARRAY = [["log",1],["pumpkin",0],["chest_inventory",2],["furnace",1],["tnt",0],["command_block",0]]; Block.defineBlock(23, "test", TEXTURE_ARRAY, 1, false, 0); Block.setRedstoneConsumer(23,true); //フックするブロックとして登録 Item.setCategory(23, ItemCategory.MATERIAL); Player.addItemCreativeInv(23,1,0); function redstoneUpdateHook(X, Y, Z, NEW_CURRENT, WORLD_LOADING, BLOCK_ID, BLOCK_DAMAGE){ clientMessage("座標 [ x:"+X+", y:"+Y+", z:"+Z+" ]"); clientMessage("ブロックの情報 [ ID:"+BLOCK_ID+", DAMAGE:"+BLOCK_DAMAGE+" ]"); clientMessage("レッドストーン入力の流量 :"+ NEW_CURRENT+", ローディング:"+WORLD_LOADING); }
コメントをかく