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

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

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
1行目: 1行目:
 +
 +
 
このページは投稿・編集の練習用です。<br />
 
このページは投稿・編集の練習用です。<br />
 
自由に変更して頂いて構いませんが、不定期に内容は削除されますのでメモ代わりには使用しないで下さい。<br />
 
自由に変更して頂いて構いませんが、不定期に内容は削除されますのでメモ代わりには使用しないで下さい。<br />
  
----
+
 
編集楽しいー
+
==1.6のカスタムツール追加==
//
+
 
 +
ここでのカスタムツールというのは、たとえばつるはしなら丸石や石、かまどなどを素早く壊すことができるが、'''そのように素早く壊せるブロックを自分で指定した道具類'''とする。<br />今回は、石、丸石、苔石、丸石フェンス、かまど、木材、原木、作業台のみ対応させる。
 +
 
 +
===ソースコード===
 +
 
 +
*SampleCustomToolCore.java
 +
 
 +
<source lang = java>
 +
package mods.customtoolsample;
 +
 
 +
import net.minecraft.item.EnumToolMaterial;
 +
import net.minecraft.item.Item;
 +
 
 +
import cpw.mods.fml.common.Mod;
 +
import cpw.mods.fml.common.Mod.EventHandler;
 +
import cpw.mods.fml.common.event.FMLInitializationEvent;
 +
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
 +
import cpw.mods.fml.common.registry.GameRegistry;
 +
import cpw.mods.fml.common.registry.LanguageRegistry;
 +
 
 +
@Mod(modid = "CustomTool", name = "CustomTool", version = "1.0")
 +
public class SampleCustomToolCore
 +
{
 +
public static Item customTool;
 +
/* アイテムID */
 +
public static int customToolID = 27400;
 +
 
 +
@EventHandler
 +
public void Init(FMLInitializationEvent event)
 +
{
 +
/* 全言語での表示名登録 */
 +
LanguageRegistry.addName(customTool, "Custom Tool");
 +
/* ja_JP(日本語)での表示名登録 */
 +
LanguageRegistry.instance().addNameForObject(customTool, "ja_JP", "カスタムツール");
 +
}
 +
 
 +
@EventHandler
 +
public void PreInit(FMLPreInitializationEvent event)
 +
{
 +
/* インスタンスの代入 */
 +
customTool = new ItemCustomTool(customToolID, EnumToolMaterial.IRON);
 +
/* アイテム登録 */
 +
GameRegistry.registerItem(customTool, "Custom Tool");
 +
}
 +
}
 +
</source>
 +
 
 +
*ItemCustomTool.java
 +
<source lang = java>
 +
package mods.customtoolsample;
 +
 
 +
import net.minecraft.block.Block;
 +
import net.minecraft.block.material.Material;
 +
import net.minecraft.item.EnumToolMaterial;
 +
import net.minecraft.item.ItemStack;
 +
import net.minecraft.item.ItemTool;
 +
 
 +
public class ItemCustomTool extends ItemTool
 +
{
 +
public static final Block[] blocksEffectiveAgainst = new Block[] {Block.stone, Block.cobblestone, Block.cobblestoneMossy, Block.cobblestoneWall, Block.furnace, Block.planks, Block.wood, Block.workbench};
 +
 
 +
public ItemCustomTool(int par1, EnumToolMaterial par2EnumToolMaterial)
 +
{
 +
/* ItemID, 攻撃力(これが素材によってまた加算されます), 素材, 上で定義した素早く壊せるブロックの配列 */
 +
super(par1, 2.0F, par2EnumToolMaterial, blocksEffectiveAgainst);
 +
}
 +
 
 +
/* おもに石など、素手で掘るとドロップしないブロックを掘るときにもしtrueが帰っていて、なおかつblocksEffectiveAgainstにそのブロックが入っていたらそのブロックが素早く掘れるようになります */
 +
 
 +
public boolean canHarvestBlock(Block par1Block)
 +
{
 +
return true; //詳しい使い方はItemPickaxeを参照
 +
}
 +
 
 +
/ * ブロック破壊したときの破壊速度のベース。剣の場合は1.5Fを返している(1.5倍?)
 +
public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block)
 +
{
 +
return 1.0F; //通常は1.0F(一倍)です。
 +
}
 +
}
 +
</source>
 +
==解説==
 +
===SampleCustomToolsCore.java===
 +
*[[1.6のツール類追加]]
 +
こちらの''SamplePickaxeCore.java''を参照してください。
 +
===ItemCustomTool.java===
 +
<source lang = java>
 +
public static final Block[] blocksEffectiveAgainst = new Block[] {... ... ...};
 +
</source>
 +
こちらに対応しているブロックを入れているようです。ItemPickaxeやItemAxeでも同じように代入しています。
 +
<source lang = java>
 +
super(par1, 2.0F, par2EnumToolMaterial, blocksEffectiveAgainst);
 +
</source>
 +
*par1 = ItemID
 +
*2.0F = そのツールが持つ攻撃力。'''ItemAxeの場合は3.0F(ハート1.5個分)'''
 +
*par2EnumToolMaterial = EnumToolMaterial型のものを投げてあげましょう。詳しくは*[[1.6のツール類追加]]
 +
 EnumToolMaterial.IRONのようにしてもよいでしょう。(この場合鉄のツルハシと同じ耐久度・早さで採掘できるようになります)
 +
*blocksEffectiveAgainst = 先ほどのcanHarvestBlockなどに関係してきます。対応したブロックを代入してあります。

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

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

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