今のところのどうにかしたい所:
火打石での点火を検知しブロックを置き換え(fireの設置の検知など)
複数ブロックを一つのブロックのようにする(RCやFFM等にあるようなもの)
仕様:
火打石か電気(ICは今のところ互換性なしの予定)で点火する
乾燥石炭を投入し、奥からコークスをドロップ
下部からコールタール(液体)を取り出せる
環境:
maincraft:1.7.10
Forge:1.7.10-10.13.4.1558
IDE:eclipse
mineshop さんが書きました:
今のところのどうにかしたい所:
火打石での点火を検知しブロックを置き換え(fireの設置の検知など)
@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;
}
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;
}