提供: Minecraft Modding Wiki
移動先: 案内検索
11行目: 11行目:
  
 
import net.minecraft.item.EnumToolMaterial;
 
import net.minecraft.item.EnumToolMaterial;
 +
import net.minecraftforge.MinecraftForgeClient;
 
import cpw.mods.fml.common.Mod;
 
import cpw.mods.fml.common.Mod;
 
import cpw.mods.fml.common.network.NetworkMod;
 
import cpw.mods.fml.common.network.NetworkMod;
31行目: 32行目:
 
     public static final boolean clientSideRequiredBoolean = true;
 
     public static final boolean clientSideRequiredBoolean = true;
 
     public static final boolean serverSudeRequiredBoolean = false;
 
     public static final boolean serverSudeRequiredBoolean = false;
 +
   
 +
    public static boolean Model_ON_OFF_Boolean = true;
 +
    public static String ModelTexture;
 +
    public static String texture;
 
      
 
      
 
     public static EnumToolMaterial toolMaterial;
 
     public static EnumToolMaterial toolMaterial;
40行目: 45行目:
 
     {
 
     {
 
         mainItem = new ItemCustomModelTools(3001, toolMaterial.rock).setData("CustomModelItem", "CustomModelItem");
 
         mainItem = new ItemCustomModelTools(3001, toolMaterial.rock).setData("CustomModelItem", "CustomModelItem");
         registerItem(mainItem, "CustomModelItem", "Custom Model Item", "カスタムモデルアイテム");
+
         registerItem(mainItem, "CustomModelItem", "Custom Model Item", "カスタムモデルアイテム", new ItemCustomModelToolsRenderer(), texture, 64, 32);
 
     }
 
     }
     public void registerItem(Item items, String name, String en_US, String ja_JP)
+
     public void registerItem(Item items, String name, String en_US, String ja_JP, IItemRenderer itemRenderer, boolean modeling, String texture, int width, int height)
 
     {
 
     {
 
         GameReigstry.registerItem(items, name);
 
         GameReigstry.registerItem(items, name);
 
         LanguageRegistry.addNameForObject(items, "en_US", en_US);
 
         LanguageRegistry.addNameForObject(items, "en_US", en_US);
 
         LanguageRegistry.addNameForObject(items, "ja_JP", ja_JP);
 
         LanguageRegistry.addNameForObject(items, "ja_JP", ja_JP);
 +
        MinecraftForgeClient.registerItemRenderer(items.itemID, itemRenderer);
 +
        Model_ON_OFF_Boolean = modeling;
 +
        ModelTexture = texture;
 +
        ModelCustomModelTools modeling = new ModelCustomModelTools();
 +
        modeling.setTextureSize(width, height);
 
     }
 
     }
 
}
 
}
60行目: 70行目:
 
import net.minecraft.item.EnumToolMaterial;
 
import net.minecraft.item.EnumToolMaterial;
 
import net.minecraft.block.Block;
 
import net.minecraft.block.Block;
 +
import net.minecraft.block.Material;
  
 
public class ItemCustomModelTools extends ItemTool
 
public class ItemCustomModelTools extends ItemTool
 
{
 
{
 +
    //壊せるブロックのリスト
 
     private static final Block[] setBleakingList = new Block[] {// ItemSpade.java
 
     private static final Block[] setBleakingList = new Block[] {// ItemSpade.java
 
                                                                 Block.grass,
 
                                                                 Block.grass,
150行目: 162行目:
 
}
 
}
  
 +
</source>
 +
 +
*ItemCustomModelToolsRenderer.java
 +
 +
<source lang = java>
 +
package custom.tool.item;
 +
 +
import net.minecraftforge.client.IItemRenderer;
 +
import net.minecraft.client.Minecraft;
 +
import net.minecraft.util.ResourceLocation;
 +
import org.lwjgl.opengl.GL11;
 +
 +
public class ItemCustomModelToolsRenderer implements IItemRenderer
 +
{
 +
    private ModelCustomModelTools modeling;
 +
    protected Minecraft mc;
 +
    public ItemCustomModelToolsRenderer()
 +
    {
 +
        modeling = new ModelCustomModelTools();
 +
    }
 +
    @Override
 +
    public boolean handleRenderType(ItemStack item, ItemRenderType type)
 +
    {
 +
        switch(type)
 +
        {
 +
            case EQUIPPED :
 +
                return CustomModelTools.Model_ON_OFF_Boolean;
 +
            default:
 +
                return false;
 +
        }
 +
    }
 +
    @Override
 +
    public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
 +
    {
 +
        return false;
 +
    }
 +
    @Override
 +
    public void renderItem(ItemRenderType type, ItemStack item, Object... data)
 +
    {
 +
        switch(type)
 +
        {
 +
            case EQUIPPED :
 +
            {
 +
                GL11.glPushMatrix();
 +
               
 +
                float scala = 2.5F;
 +
               
 +
                GL11.glScalaf(scala, scala, scala);
 +
               
 +
                GL11.glRotatef(0F, -10.0F, 0.0F, 0.0F);
 +
                GL11.glRotatef(8F, 0.0F, -10.0F, 0.0F);
 +
                GL11.glRotatef(125F, 0.0F, 0.0F, -10.0F);
 +
               
 +
                GL11.glTranslatef(-0.304800F, -0.500F, -0.09F);
 +
               
 +
                mc.renderEngine.bindTexture(new ResourceLocation(CustomModelTools.ModelTexture));
 +
               
 +
                modeling.render((Entity) data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
 +
               
 +
                GL11.glPopMatrix();
 +
            }
 +
            default:
 +
                break;
 +
        }
 +
    }
 +
}
 +
 +
</source>
 +
 +
*ModelCustomModelTools
 +
 +
<source lang = java>
 +
package custom.tool.item;
 +
 +
import net.minecraft,client.model.ModelBase;
 +
import net.minecraft.client.model.ModelRenderer;
 +
import net.minecraft.entity.Entity;
 +
 +
public class ModelCustomModelTools extends ModelBase
 +
{
 +
    public ModelRenderer Stick;
 +
    public ModelRenderer EnderEye;
 +
    public ModelRenderer PickaxePats1;
 +
    public ModelRenderer PickaxePats2;
 +
    public ModelRenderer PickaxePats3;
 +
    public ModelRenderer MainCenter;
 +
    public ModelRenderer AxeUp;
 +
    public ModelRenderer AxeLeft;
 +
    public ModelRenderer AxeRight;
 +
    public ModelRenderer AxeDown;
 +
    public ModelRenderer Forward;
 +
   
 +
    public int TextureSizeWidth = 64;
 +
    public int TextureSizeHeight = 32;
 +
    public ModelCustomModelTools()
 +
    {
 +
        textureWidth = TextureSizeWidth ;
 +
        textureHeight = TextureSizeHeight ;
 +
        Stick = new ModelRenderer(this, 0, 0);
 +
        Stick.addBox(0F, 0F, 0F, 2, 14, 2);
 +
        Stick.setRotationPoint(-1F, 0F, -1F);
 +
        Stick.setTextureSize(TextureSizeWidth, TextureSizeHeight);
 +
        Stick.mirror = true;
 +
        setRotation(Stick, 0F, 0F, 0F);
 +
        EnderEye = new ModelRenderer(this, 8, 0);
 +
        EnderEye.addBox(0F, 0F, 0F, 3, 3, 3);
 +
        EnderEye.setRotationPoint(-1.5F, 13.5F, -1.5F);
 +
        EnderEye.setTextureSize(TextureSizeWidth, TextureSizeHeight);
 +
        EnderEye.mirror = true;
 +
        setRotation(EnderEye, 0F, 0F, 0F);
 +
        PickaxePats1 = new ModelRenderer(this, 20, 0);
 +
        PickaxePats1.addBox(0F, 0F, 0F, 10, 2, 2);
 +
        PickaxePats1.setRotationPoint(-4F, -2F, -1F);
 +
        PickaxePats1.setTextureSize(TextureSizeWidth, TextureSizeHeight);
 +
        PickaxePats1.mirror = true;
 +
        setRotation(PickaxePats1, 0F, 0F, 0F);
 +
        PickaxePats2 = new ModelRenderer(this, 44, 0);
 +
        PickaxePats2.addBox(0F, 0F, 0F, 5, 2, 2);
 +
        PickaxePats2.setRotationPoint(6F, -2F, -1F);
 +
        PickaxePats2.setTextureSize(TextureSizeWidth, TextureSizeHeight);
 +
        PickaxePats2.mirror = true;
 +
        setRotation(PickaxePats2, 0F, 0F, 0.2617994F);
 +
        PickaxePats3 = new ModelRenderer(this, 20, 4);
 +
        PickaxePats3.addBox(0F, 0F, 0F, 3, 1, 2);
 +
        PickaxePats3.setRotationPoint(10F, 0F, -1F);
 +
        PickaxePats3.setTextureSize(TextureSizeWidth, TextureSizeHeight);
 +
        PickaxePats3.mirror = true;
 +
        setRotation(PickaxePats3, 0F, 0F, 0.4363323F);
 +
        MainCenter = new ModelRenderer(this, 30, 4);
 +
        MainCenter.addBox(0F, 0F, 0F, 4, 6, 4);
 +
        MainCenter.setRotationPoint(-8F, -5F, -2F);
 +
        MainCenter.setTextureSize(TextureSizeWidth, TextureSizeHeight);
 +
        MainCenter.mirror = true;
 +
        setRotation(MainCenter, 0F, 0F, 0F);
 +
AxeUp = new ModelRenderer(this, 30, 14);
 +
AxeUp.addBox(0F, 0F, 0F, 2, 6, 4);
 +
AxeUp.setRotationPoint(-4F, -9F, -2F);
 +
AxeUp.setTextureSize(TextureSizeWidth, TextureSizeHeight);
 +
AxeUp.mirror = true;
 +
setRotation(AxeUp, 0F, 0F, 0.7853982F);
 +
AxeLeft = new ModelRenderer(this, 30, 2);
 +
AxeLeft.addBox(0F, 0F, 0F, 2, 6, 6);
 +
AxeLeft.setRotationPoint(-3F, -5F, -5F);
 +
AxeLeft.setTextureSize(TextureSizeWidth, TextureSizeHeight);
 +
AxeLeft.mirror = true;
 +
setRotation(AxeLeft, 0F, -1.047198F, 0F);
 +
AxeRight = new ModelRenderer(this, 30, 2);
 +
AxeRight.addBox(0F, 0F, 0F, 2, 6, 6);
 +
AxeRight.setRotationPoint(-8F, -5F, 2F);
 +
AxeRight.setTextureSize(TextureSizeWidth, TextureSizeHeight);
 +
AxeRight.mirror = true;
 +
setRotation(AxeRight, 0F, 1.047198F, 0F);
 +
AxeDown = new ModelRenderer(this, 30, 14);
 +
AxeDown.addBox(0F, 0F, 0F, 2, 6, 4);
 +
AxeDown.setRotationPoint(-8F, 1F, -2F);
 +
AxeDown.setTextureSize(TextureSizeWidth, TextureSizeHeight);
 +
AxeDown.mirror = true;
 +
setRotation(AxeDown, 0F, 0F, -0.7853982F);
 +
Forward = new ModelRenderer(this, 8, 6);
 +
Forward.addBox(0F, 0F, 0F, 1, 4, 2);
 +
Forward.setRotationPoint(-8.5F, -4F, -1F);
 +
Forward.setTextureSize(TextureSizeWidth, TextureSizeHeight);
 +
Forward.mirror = true;
 +
    setRotation(Forward, 0F, 0F, 0F);
 +
    }
 +
    public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
 +
    {
 +
        super.render(entity, f, f1, f2, f3, f4, f5);
 +
        setRotationAngles(f, f1, f2, f3, f4, f5, entity);
 +
        Stick.render(f5);
 +
        EnderEye.render(f5);
 +
        PickaxePats1.render(f5);
 +
        PickaxePats2.render(f5);
 +
        PickaxePats3.render(f5);
 +
        MainCenter.render(f5);
 +
        AxeUp.render(f5);
 +
        AxeLeft.render(f5);
 +
        AxeRight.render(f5);
 +
        AxeDown.render(f5);
 +
        Forward.render(f5);
 +
    }
 +
    private void setRotation(ModelRenderer model, float x, float y, float z)
 +
    {
 +
        model.rotateAngleX = x;
 +
        model.rotateAngleY = y;
 +
        model.rotateAngleZ = z;
 +
    }
 +
    public void setRotationAngles(float f, float f1, float, f2, float f3, float f4, float f5, Entity entity)
 +
    {
 +
        super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
 +
    }
 +
    public void setTextureSize(int width, int height)
 +
    {
 +
        TextureSizeWidth = width
 +
        TextureSizeHeight = height
 +
    }
 +
}
 
</source>
 
</source>
  
 
未完成<br>
 
未完成<br>
 
[[チュートリアル一覧]]に乗せる方がいるのなら、まだ乗せないで下さい
 
[[チュートリアル一覧]]に乗せる方がいるのなら、まだ乗せないで下さい

2014年1月5日 (日) 16:02時点における版

1.6のモデル付きカスタムツール追加

このアイテムは、(つるはし)(ショベル)(斧)の三つ(鉄製)にモデルを付けて追加するものです。

ソース

  • CustomModelTools.java
package custom.tool.item;

import net.minecraft.item.EnumToolMaterial;
import net.minecraftforge.MinecraftForgeClient;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;

@Mod(
    modid = "CustomModelTools",
    name = "Custom Model Tools",
    version = "1"
)
@NetworkMod(
    clientSideRequired = CustomModelTools.clientSideRequiredBoolean,
    serverSideRequired = CustomModelTools.serverSideRequiredBoolean
)
public class CustomModelTools
{
    public static final boolean clientSideRequiredBoolean = true;
    public static final boolean serverSudeRequiredBoolean = false;
    
    public static boolean Model_ON_OFF_Boolean = true;
    public static String ModelTexture;
    public static String texture;
    
    public static EnumToolMaterial toolMaterial;
    
    public static ItemTool mainItem;
    
    @EventHabdler
    public void mainLoading(FMLPreInitializationEvent event)
    {
        mainItem = new ItemCustomModelTools(3001, toolMaterial.rock).setData("CustomModelItem", "CustomModelItem");
        registerItem(mainItem, "CustomModelItem", "Custom Model Item", "カスタムモデルアイテム", new ItemCustomModelToolsRenderer(), texture, 64, 32);
    }
    public void registerItem(Item items, String name, String en_US, String ja_JP, IItemRenderer itemRenderer, boolean modeling, String texture, int width, int height)
    {
        GameReigstry.registerItem(items, name);
        LanguageRegistry.addNameForObject(items, "en_US", en_US);
        LanguageRegistry.addNameForObject(items, "ja_JP", ja_JP);
        MinecraftForgeClient.registerItemRenderer(items.itemID, itemRenderer);
        Model_ON_OFF_Boolean = modeling;
        ModelTexture = texture;
        ModelCustomModelTools modeling = new ModelCustomModelTools();
        modeling.setTextureSize(width, height);
    }
}
  • ItemCustomModelTools.java
package custom.tool.item;

import net.minecraft.item.ItemTool;
import net.minecraft.item.EnumToolMaterial;
import net.minecraft.block.Block;
import net.minecraft.block.Material;

public class ItemCustomModelTools extends ItemTool
{
    //壊せるブロックのリスト
    private static final Block[] setBleakingList = new Block[] {// ItemSpade.java
                                                                Block.grass,
                                                                Block.dirt,
                                                                Block.sand,
                                                                Block.gravel,
                                                                Block.snow,
                                                                Block.blockSnow,
                                                                Block.blockClay,
                                                                Block.tilledField,
                                                                Block.slowSand,
                                                                Block.mycelium
                                                                // ItemPickaxe.java
                                                                Block.cobblestone,
                                                                Block.stoneDoubleSlab,
                                                                Block.stoneSingleSlab,
                                                                Block.stone, Block.sandStone,
                                                                Block.cobblestoneMossy,
                                                                Block.oreIron,
                                                                Block.blockIron,
                                                                Block.oreCoal,
                                                                Block.blockGold,
                                                                Block.oreGold,
                                                                Block.oreDiamond,
                                                                Block.blockDiamond,
                                                                Block.ice,
                                                                Block.netherrack,
                                                                Block.oreLapis, Block.blockLapis,
                                                                Block.oreRedstone,
                                                                Block.oreRedstoneGlowing,
                                                                Block.rail,
                                                                Block.railDetector,
                                                                Block.railPowered,
                                                                Block.railActivator
                                // ItemAxe.java
                                                                Block.planks, Block.bookShelf,
                                                                Block.wood, Block.chest,
                                                                Block.stoneDoubleSlab,
                                                                Block.stoneSingleSlab,
                                                                Block.pumpkin,
                                                                Block.pumpkinLantern};
                                                                // 詳しい情報は、ItemSpade.java ItemPickaxe.java ItemAxe.javaを参照
    
    public ItemCustomModelTools(int par1ID, EnumToolMaterial par2EnumToolMaterial)
    {
        super(par1ID, damageFloat, par2EnumToolMaterial, setBleakingList);
    }
    @Override
    public boolean canHarvestBlock(Block par1Block)
    {
        return par1Block == Block.snow ? true : par1Block == Block.blockSnow : //雪
               (par1Block == Block.obsidian ? this.toolMaterial.getHarvestLevel() == 3 : //黒曜石
               (par1Block != Block.blockDiamond && par1Block != Block.oreDiamond ? //ダイヤモンド
               (par1Block != Block.oreEmerald && par1Block != Block.blockEmerald ? //エメラルド
               (par1Block != Block.blockGold && par1Block != Block.oreGold ? //金
               (par1Block != Block.blockIron && par1Block != Block.oreIron ? //鉄
               (par1Block != Block.blockLapis && par1Block != Block.oreLapis ? //ラピスラズリ
               (par1Block != Block.oreRedstone && par1Block != Block.oreRedstoneGlowing ? //レッドストーン
               (par1Block.blockMaterial == Material.rock ? true : //マテリアル属性 石
               (par1Block.blockMaterial == Material.iron ? true : //マテリアル属性 鉄
                par1Block.blockMaterial == Material.anvil)) //マテリアル属性 金床
                this.toolMaterial.getHarvestLevel() >= 2) : //マテリアルレベル 2
                this.toolMaterial.getHarvestLevel() >= 1) : //マテリアルレベル 1
                this.toolMaterial.getHarvestLevel() >= 1) : //マテリアルレベル 1
                this.toolMaterial.getHarvestLevel() >= 2) : //マテリアルレベル 2
                this.toolMaterial.getHarvestLevel() >= 2) : //マテリアルレベル 2
                this.toolMaterial.getHarvestLevel() >= 2)); //マテリアルレベル 2
    }
    @Override
    public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block)
    {
        return par2Block != null &&
               (par2Block.blockMaterial == Material.iron || //マテリアル属性 鉄
                par2Block.blockMaterial == Material.anvil || //マテリアル属性 金床
                par2Block.blockMaterial == Material.rock || //マテリアル属性 石
                par2Block.blockMaterial == Material.wood || //マテリアル属性 原木
                par2Block.blockMaterial == Material.plants || //マテリアル属性 木の厚板
                par2Block.blockMaterial == Material.vine) ? //マテリアル属性 つる
                this.efficiencyOnProperMaterial :
                super.getStrVsBlock(par1ItemStack, par2Block);
    }
    public Item setData(String domain, String path)
    {
        setUnlocalizedName(path);
        iconString = domain + ":" + path;
    }
}
  • ItemCustomModelToolsRenderer.java
package custom.tool.item;

import net.minecraftforge.client.IItemRenderer;
import net.minecraft.client.Minecraft;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;

public class ItemCustomModelToolsRenderer implements IItemRenderer
{
    private ModelCustomModelTools modeling;
    protected Minecraft mc;
    public ItemCustomModelToolsRenderer()
    {
        modeling = new ModelCustomModelTools();
    }
    @Override
    public boolean handleRenderType(ItemStack item, ItemRenderType type)
    {
        switch(type)
        {
            case EQUIPPED :
                return CustomModelTools.Model_ON_OFF_Boolean;
            default:
                return false;
        }
    }
    @Override
    public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
    {
        return false;
    }
    @Override
    public void renderItem(ItemRenderType type, ItemStack item, Object... data)
    {
        switch(type)
        {
            case EQUIPPED :
            {
                GL11.glPushMatrix();
                
                float scala = 2.5F;
                
                GL11.glScalaf(scala, scala, scala);
                
                GL11.glRotatef(0F, -10.0F, 0.0F, 0.0F);
                GL11.glRotatef(8F, 0.0F, -10.0F, 0.0F);
                GL11.glRotatef(125F, 0.0F, 0.0F, -10.0F);
                
                GL11.glTranslatef(-0.304800F, -0.500F, -0.09F);
                
                mc.renderEngine.bindTexture(new ResourceLocation(CustomModelTools.ModelTexture));
                
                modeling.render((Entity) data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
                
                GL11.glPopMatrix();
            }
            default:
                break;
         }
    }
}
  • ModelCustomModelTools
package custom.tool.item;

import net.minecraft,client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;

public class ModelCustomModelTools extends ModelBase
{
    public ModelRenderer Stick;
    public ModelRenderer EnderEye;
    public ModelRenderer PickaxePats1;
    public ModelRenderer PickaxePats2;
    public ModelRenderer PickaxePats3;
    public ModelRenderer MainCenter;
    public ModelRenderer AxeUp;
    public ModelRenderer AxeLeft;
    public ModelRenderer AxeRight;
    public ModelRenderer AxeDown;
    public ModelRenderer Forward;
    
    public int TextureSizeWidth = 64;
    public int TextureSizeHeight = 32;
    public ModelCustomModelTools()
    {
        textureWidth = TextureSizeWidth ;
        textureHeight = TextureSizeHeight ;
        Stick = new ModelRenderer(this, 0, 0);
        Stick.addBox(0F, 0F, 0F, 2, 14, 2);
        Stick.setRotationPoint(-1F, 0F, -1F);
        Stick.setTextureSize(TextureSizeWidth, TextureSizeHeight);
        Stick.mirror = true;
        setRotation(Stick, 0F, 0F, 0F);
        EnderEye = new ModelRenderer(this, 8, 0);
        EnderEye.addBox(0F, 0F, 0F, 3, 3, 3);
        EnderEye.setRotationPoint(-1.5F, 13.5F, -1.5F);
        EnderEye.setTextureSize(TextureSizeWidth, TextureSizeHeight);
        EnderEye.mirror = true;
        setRotation(EnderEye, 0F, 0F, 0F);
        PickaxePats1 = new ModelRenderer(this, 20, 0);
        PickaxePats1.addBox(0F, 0F, 0F, 10, 2, 2);
        PickaxePats1.setRotationPoint(-4F, -2F, -1F);
        PickaxePats1.setTextureSize(TextureSizeWidth, TextureSizeHeight);
        PickaxePats1.mirror = true;
        setRotation(PickaxePats1, 0F, 0F, 0F);
        PickaxePats2 = new ModelRenderer(this, 44, 0);
        PickaxePats2.addBox(0F, 0F, 0F, 5, 2, 2);
        PickaxePats2.setRotationPoint(6F, -2F, -1F);
        PickaxePats2.setTextureSize(TextureSizeWidth, TextureSizeHeight);
        PickaxePats2.mirror = true;
        setRotation(PickaxePats2, 0F, 0F, 0.2617994F);
        PickaxePats3 = new ModelRenderer(this, 20, 4);
        PickaxePats3.addBox(0F, 0F, 0F, 3, 1, 2);
        PickaxePats3.setRotationPoint(10F, 0F, -1F);
        PickaxePats3.setTextureSize(TextureSizeWidth, TextureSizeHeight);
        PickaxePats3.mirror = true;
        setRotation(PickaxePats3, 0F, 0F, 0.4363323F);
        MainCenter = new ModelRenderer(this, 30, 4);
        MainCenter.addBox(0F, 0F, 0F, 4, 6, 4);
        MainCenter.setRotationPoint(-8F, -5F, -2F);
        MainCenter.setTextureSize(TextureSizeWidth, TextureSizeHeight);
        MainCenter.mirror = true;
        setRotation(MainCenter, 0F, 0F, 0F);
	AxeUp = new ModelRenderer(this, 30, 14);
	AxeUp.addBox(0F, 0F, 0F, 2, 6, 4);
	AxeUp.setRotationPoint(-4F, -9F, -2F);
	AxeUp.setTextureSize(TextureSizeWidth, TextureSizeHeight);
	AxeUp.mirror = true;
	setRotation(AxeUp, 0F, 0F, 0.7853982F);
	AxeLeft = new ModelRenderer(this, 30, 2);
	AxeLeft.addBox(0F, 0F, 0F, 2, 6, 6);
	AxeLeft.setRotationPoint(-3F, -5F, -5F);
	AxeLeft.setTextureSize(TextureSizeWidth, TextureSizeHeight);
	AxeLeft.mirror = true;
	setRotation(AxeLeft, 0F, -1.047198F, 0F);
	AxeRight = new ModelRenderer(this, 30, 2);
	AxeRight.addBox(0F, 0F, 0F, 2, 6, 6);
	AxeRight.setRotationPoint(-8F, -5F, 2F);
	AxeRight.setTextureSize(TextureSizeWidth, TextureSizeHeight);
	AxeRight.mirror = true;
	setRotation(AxeRight, 0F, 1.047198F, 0F);
	AxeDown = new ModelRenderer(this, 30, 14);
	AxeDown.addBox(0F, 0F, 0F, 2, 6, 4);
	AxeDown.setRotationPoint(-8F, 1F, -2F);
	AxeDown.setTextureSize(TextureSizeWidth, TextureSizeHeight);
	AxeDown.mirror = true;
	setRotation(AxeDown, 0F, 0F, -0.7853982F);
	Forward = new ModelRenderer(this, 8, 6);
	Forward.addBox(0F, 0F, 0F, 1, 4, 2);
	Forward.setRotationPoint(-8.5F, -4F, -1F);
	Forward.setTextureSize(TextureSizeWidth, TextureSizeHeight);
	Forward.mirror = true;
    	setRotation(Forward, 0F, 0F, 0F);
    }
    public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
    {
        super.render(entity, f, f1, f2, f3, f4, f5);
        setRotationAngles(f, f1, f2, f3, f4, f5, entity);
        Stick.render(f5);
        EnderEye.render(f5);
        PickaxePats1.render(f5);
        PickaxePats2.render(f5);
        PickaxePats3.render(f5);
        MainCenter.render(f5);
        AxeUp.render(f5);
        AxeLeft.render(f5);
        AxeRight.render(f5);
        AxeDown.render(f5);
        Forward.render(f5);
    }
    private void setRotation(ModelRenderer model, float x, float y, float z)
    {
        model.rotateAngleX = x;
        model.rotateAngleY = y;
        model.rotateAngleZ = z;
    }
    public void setRotationAngles(float f, float f1, float, f2, float f3, float f4, float f5, Entity entity)
    {
        super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    }
    public void setTextureSize(int width, int height)
    {
        TextureSizeWidth = width
        TextureSizeHeight = height
    }
}

未完成
チュートリアル一覧に乗せる方がいるのなら、まだ乗せないで下さい