提供: Minecraft Modding Wiki
移動先: 案内検索
 
(2人の利用者による、間の2版が非表示)
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などに関係してきます。対応したブロックを代入してあります。
 

2020年11月27日 (金) 21:24時点における最新版

このページは投稿・編集の練習用です。
自由に変更して頂いて構いませんが、不定期に内容は削除されますのでメモ代わりには使用しないで下さい。


編集楽しいー //