レッドストーン入力について

Modding・サーバPlugin制作・ツール制作など、開発関連の質問があればこちらにお願い致します。
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.24030)

レッドストーン入力について

投稿記事by yykimoto » 2012年2月12日(日) 13:16

レッドストーン :lev: :red: 入力がはいったら色々(例えば前にブロックを押し出す :pi1: 、光る :glo: )するブロックを追加するMODはどうやって作られているのでしょうか。
ピストンやディスペンサーのコードを見てもサッパリわかりません。
どなたかご教授願います。
なお、MODLOADERを前提MODとさせて頂きます。
画像
アバター
yykimoto
ID:45112fe7
石掘り
 
記事: 133
登録日時: 2011年10月15日(土) 06:15

  • (PostNo.24046)

Re: レッドストーン入力について

投稿記事by denpa » 2012年2月12日(日) 15:00

もっと簡単なドアとかハッチとか見たほうがいいのでは。
ON状態にあるかOFF状態にあるかはメタデータで記憶しているはず。
自作MODトピック:http://forum.minecraftuser.jp/viewtopic.php?f=13&t=2686
久しぶりにマイクラ再開したら、見事に砂漠寺院で吹っ飛びました。
アバター
denpa
ID:7e0aa23a
石掘り
 
記事: 92
登録日時: 2012年1月07日(土) 03:35
お住まい: 火継ぎの祭祀場

  • (PostNo.24054)

Re: レッドストーン入力について

投稿記事by yykimoto » 2012年2月12日(日) 15:41

denpa さんが書きました:もっと簡単なドアとかハッチとか見たほうがいいのでは。
ON状態にあるかOFF状態にあるかはメタデータで記憶しているはず。

えーとですね、
Java初心者なんで、こういう長文コードは単なる文字列が並べられているだけにみえてしまいまして、
なのでredstone入力がなんていう変数に格納されているのかをご教授されると幸いです
画像
アバター
yykimoto
ID:45112fe7
石掘り
 
記事: 133
登録日時: 2011年10月15日(土) 06:15

  • (PostNo.24125)

Re: レッドストーン入力について

投稿記事by denpa » 2012年2月12日(日) 23:37

BlockTrapDoorのソースのメソッド
コード: 全て選択
    public void onPoweredBlockChange(World world, int i, int j, int k, boolean flag)
    {
        int l = world.getBlockMetadata(i, j, k);
        boolean flag1 = (l & 4) > 0;
        if (flag1 == flag)
        {
            return;
        }
        else
        {
            world.setBlockMetadataWithNotify(i, j, k, l ^ 4);
            world.playAuxSFXAtEntity(null, 1003, i, j, k, 0);
            return;
        }
    }

確か動力に変化があるとこのonPoweredBlockChange()メソッドが呼ばれる。
Metadataっていうのは4bitの付加情報。worldに設置されたBlockに記録されていてゲームを終了しても記憶している。
例えば羊毛はMetadataで色を記憶している。
TrapDoorの場合のMetadataは3bit目が動力ONフラグ。
で、このフラグを参照して動力ON/OFFを判別している。
自作MODトピック:http://forum.minecraftuser.jp/viewtopic.php?f=13&t=2686
久しぶりにマイクラ再開したら、見事に砂漠寺院で吹っ飛びました。
アバター
denpa
ID:7e0aa23a
石掘り
 
記事: 92
登録日時: 2012年1月07日(土) 03:35
お住まい: 火継ぎの祭祀場

  • (PostNo.24185)

Re: レッドストーン入力について

投稿記事by yykimoto » 2012年2月13日(月) 17:12

なるほど、
ありがとうございます
でもonPoweredBlockChange関数の引数、world、i、j、k、flagの詳細をお願いします
画像
アバター
yykimoto
ID:45112fe7
石掘り
 
記事: 133
登録日時: 2011年10月15日(土) 06:15

  • (PostNo.24215)

Re: レッドストーン入力について

投稿記事by denpa » 2012年2月13日(月) 19:00

worldは世界です。minecraftには通常の世界、ネザー、ジエンドなどあります。
i,j,kはblockの座標x,y,z。
flagは動力ONならtrue,OFFならfalse

onPoweredBlockChangeの使われ方は、worldの(i,j,k)座標のBlockの動力状態をflagにしますよってこと。
自作MODトピック:http://forum.minecraftuser.jp/viewtopic.php?f=13&t=2686
久しぶりにマイクラ再開したら、見事に砂漠寺院で吹っ飛びました。
アバター
denpa
ID:7e0aa23a
石掘り
 
記事: 92
登録日時: 2012年1月07日(土) 03:35
お住まい: 火継ぎの祭祀場

  • (PostNo.25126)

Re: レッドストーン入力について

投稿記事by yykimoto » 2012年2月18日(土) 19:11

なるほどわかりました
画像
アバター
yykimoto
ID:45112fe7
石掘り
 
記事: 133
登録日時: 2011年10月15日(土) 06:15


Return to 質問:開発・制作関連

x