リアルなコークス炉を作りたい

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

リアルなコークス炉を作りたい

投稿記事by mineshop » 2016年10月20日(木) 15:44

今のところのどうにかしたい所:
火打石での点火を検知しブロックを置き換え(fireの設置の検知など)
複数ブロックを一つのブロックのようにする(RCやFFM等にあるようなもの)
仕様:
火打石か電気(ICは今のところ互換性なしの予定)で点火する
乾燥石炭を投入し、奥からコークスをドロップ
下部からコールタール(液体)を取り出せる

環境:
maincraft:1.7.10
Forge:1.7.10-10.13.4.1558
IDE:eclipse
最後に編集したユーザー mineshop [ 2016年10月20日(木) 17:11 ], 累計 1 回
mineshop
ID:86c2d2ee
石掘り
 
記事: 87
登録日時: 2015年8月07日(金) 14:22

  • (PostNo.286072)

Re: リアルなコークス炉を作りたい

投稿記事by noriokun4649 » 2016年10月20日(木) 16:26

答えさせていただく前に一つ、使用している開発環境の情報はきちんと載せましょう。
使用しているIDEやForgeのバージョン マインクラフトのバージョンなどそれらによって回答の内容は大きく変わります。

mineshop さんが書きました:
今のところのどうにかしたい所:
火打石での点火を検知しブロックを置き換え(fireの設置の検知など)

では、こちらだけですが答えさせていただきます。

Forgeのバージョンによってメソッド名が変わるので正確には言えませんが、1.7.10のForge10.13.3.1408-1.7.10でしたら「onBlockActivated」などをオーバライドしてブロックの右クリを検出し、引数のEntityPlayerでプレイヤーの持っているアイテムを調べて火打ち石だった場合、火打ち石にダメージを与えて点火 という感じにすれば良いと思います。

わからなかったら見てみてください。
雑なコードですがこんな感じ
コード: 全て選択
  @Override
   public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) {
       ItemStack stack = player.getCurrentEquippedItem();
       if (stack != null){
          Item item = stack.getItem();
          if (item == Items.flint_and_steel){//火打ち石だったら
             //~~~点火の処理とか火打ち石のときにしたいこと
             world.setBlock(x, y, z,Blocks.bookshelf);//試しに本棚に置き換える
             item.setDamage(stack, 10);//通常ダメージ以外に与えたいダメージ
             return true;//火打石に火を置かせないためtrueを返す
          }
       }
      return false;
   }
質問した問題を解決に導いてくれた人には感謝の気持ちを忘れずに・・・・・・
プラスチックMOD・サイコパスMOD・AlmightyMOD・TorchBowMod・PowerManegerModなどを作成&配布しています→こちら
お問い合わせはこちら→https://noriokun4649.ddo.jp
プラスチックMODは絶賛IC2と連携作業中! こんな風に連携してほしい!など要望があればPMなどでお願いします。
アバター
noriokun4649
ID:221a1fb9
鉄鉱掘り
 
記事: 300
登録日時: 2014年12月26日(金) 12:37

  • (PostNo.286075)

Re: リアルなコークス炉を作りたい

投稿記事by mineshop » 2016年10月20日(木) 17:13

noriokun4649 さんが書きました:答えさせていただく前に一つ、使用している開発環境の情報はきちんと載せましょう。
使用しているIDEやForgeのバージョン マインクラフトのバージョンなどそれらによって回答の内容は大きく変わります。

mineshop さんが書きました:
今のところのどうにかしたい所:
火打石での点火を検知しブロックを置き換え(fireの設置の検知など)

では、こちらだけですが答えさせていただきます。

Forgeのバージョンによってメソッド名が変わるので正確には言えませんが、1.7.10のForge10.13.3.1408-1.7.10でしたら「onBlockActivated」などをオーバライドしてブロックの右クリを検出し、引数のEntityPlayerでプレイヤーの持っているアイテムを調べて火打ち石だった場合、火打ち石にダメージを与えて点火 という感じにすれば良いと思います。

わからなかったら見てみてください。
雑なコードですがこんな感じ
コード: 全て選択
  @Override
   public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) {
       ItemStack stack = player.getCurrentEquippedItem();
       if (stack != null){
          Item item = stack.getItem();
          if (item == Items.flint_and_steel){//火打ち石だったら
             //~~~点火の処理とか火打ち石のときにしたいこと
             world.setBlock(x, y, z,Blocks.bookshelf);//試しに本棚に置き換える
             item.setDamage(stack, 10);//通常ダメージ以外に与えたいダメージ
             return true;//火打石に火を置かせないためtrueを返す
          }
       }
      return false;
   }

すみません。環境を書き忘れていました。
それでも書いて下さりありがとうございます。
mineshop
ID:86c2d2ee
石掘り
 
記事: 87
登録日時: 2015年8月07日(金) 14:22


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

x