提供: Minecraft Modding Wiki
移動先: 案内検索

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
1行目: 1行目:
この記事は未完成です<br />
 
== 右クリックイベント ==
 
この記事では、何かを右クリックした際、発生するイベントについて記載しています。<br />
 
右クリックで効果を発揮する、特殊GUIを開くなどの前提として利用されます。<br />
 
  
=== 対象がアイテムの場合 ===
+
== 注意:一部未完成記事。更新希望。 ==
アイテムをクリックした場合には、onItemRightClickというメソッドが呼ばれます。<br />
 
Itemクラスだと何も起こらないようになっているので、Itemクラスを継承したクラスを作り(extends Item)、そこにオーバーライドしたメソッドに処理を書き込みます。<br />
 
引数はItemStack, World, EntityPlayer の3つです。<br />
 
返り値はItemStackです。この時、返すItemStackを変化(使用によるアイテムの消費など)させることでアイテムに動きを起こすことができます。<br />
 
  
記述例:
+
対象がアイテムの場合
<source lang="java">
+
アイテムをクリックした場合には、onItemRightClickというメソッドが呼ばれます。
@Override
+
Itemクラスだと何も起こらないようになっているので、Itemクラスを継承したクラスを作り(extnds hoge)、そこにオーバーライドしたメソッドに処理を書き込みます。
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityPlayer) {
+
引数はItemStack, World, EntityPlayer の3つです。
entityPlayer.dropPlayerItem(new ItemStack(Block.cobblestone, 8));
+
返り値はItemStackです。この時、返すItemStackを変化(使用によるアイテムの消費など)させることでアイテムに動きを起こすことができます。
return itemstack;
 
}
 
</source>
 
  
=== 対象がブロックの場合 ===
 
ブロックの場合は、blockActivatedが呼ばれます。<br />
 
javadocによると左クリックでも動作すると書いてありますが、この記事の記述者(日時12/6/13)は確認していません。<br />
 
同じくデフォルトでは何も起こらない仕様です。オーバーライドを利用して記述しましょう。<br />
 
引数はWorld,int x,int y,int z,EntityPlayer の5つが呼び出されます。<br />
 
int数値はそれぞれがブロックの座標になります。あること(TileEntityの読み出し等。未作成記事。)<br />
 
返り値は boolean(true/false)が返されます。基本true返して問題ない(はず)です。<br />
 
  
記述例:
+
対象がブロックの場合
<source lang="java">
 
@Override
 
public boolean blockActivated(World world, int i, int j, int k, EntityPlayer entityplayer) {
 
int l = world.getBlockMetadata(i, j, k) + 1;
 
world.setBlockMetadataWithNotify(i, j, k, l & 0xf);
 
return true;
 
}
 
</source>
 
  
=== 対象がEntityの場合 ===
+
ブロックの場合は、blockActivatedが呼ばれます。
Entityの場合interactが呼ばれます。<br />
+
javadocによると左クリックでも動作すると書いてありますが、この記事の記述者(日時12/6/13)は確認していません。
例によってEntityクラスでは何も起こらないので、メソッドをオーバーライドして処理を書き込みます。<br />
+
同じくデフォルトでは何も起こらない仕様です。オーバーライドを利用して記述しましょう。
引数は、EntityPlayerのみです。<br />
+
引数はWorld,int x,int y,int z,EntityPlayer の5つが呼び出されます。
返り値はbooleanです。基本的にtrueを返せばいいはずです。<br />
+
int数値はそれぞれがブロックの座標になります。あること(TileEntityの読み出し等。未作成記事。)
 +
返り値は boolean(true/false)が返されます。基本true返して問題ない(はず)です。
  
記述例:
+
 
<source lang="java">
+
対象がEntityの場合
@Override
+
 
public boolean interact(EntityPlayer entityplayer){
+
実戦したことがないので未筆記!!だれか追加お願いします!
if(!this.worldObj.isRemote)
+
 
entityplayer.addChatMessage("This entity life is " + this.getHealth());
+
 
return true;
+
この記事が誰かの役に立てば幸いです。
}
 
</source>
 

Minecraft Modding Wikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMinecraft Modding Wiki:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)