提供: Minecraft Modding Wiki
2012年3月14日 (水) 23:52時点におけるIwa yukinoshita (トーク | 投稿記録)による版 (ページの作成:「このページはModLoaderを使用することを前提に書かれています。 MOBを追加するサンプルソースとして、Mr.Minecraft氏(公式ではT...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

このページはModLoaderを使用することを前提に書かれています。

MOBを追加するサンプルソースとして、Mr.Minecraft氏(公式ではThe Playerや"Steve?"と呼ばれるようですが、ここでは便宜上この名前を使用します)を追加するModを示します。


Modを構成するファイル

このModは以下のファイルで構成されています。通常、新しくMOBを追加する場合はEntity、Model、Renderの3種類のファイルを作成する必要があります。

mod_MrMinecraft.java
Modの本体
EntityMrMinecraft.java
Mr.Minecraft氏の動作を定義する
ModelMrMinecraft.java
Mr.Minecraft氏の形を定義する
RenderMrMinecraft.java
Mr.Minecraft氏の描画を行う


ファイルの内容

mod_MrMinecraft.java

 package net.minecraft.src;
 import java.util.*;

public class mod_MrMinecraft extends BaseMod {

    public mod_MrMinecraft() {
        super();
    }

    public void load() {
        ModLoader.registerEntityID(EntityMrMinecraft.class, "Mr.Minecraft", ModLoader.getUniqueEntityId());
        ModLoader.addSpawn(EntityMrMinecraft.class, 10, 3, 6,EnumCreatureType.creature);
    }

    public String getVersion() {
        return "1.2.3-a";
    }

    public void addRenderer(Map renderers) {
        renderers.put(net.minecraft.src.EntityMrMinecraft.class, new RenderMrMinecraft(new ModelMrMinecraft(), 0.5f));
    }

}


EntityMrMinecraft.java

package net.minecraft.src;

public class EntityMrMinecraft extends EntityVillager {

    public EntityMrMinecraft(World world) {
        super(world);
        texture = "/mob/char.png";
    }
	
    public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) {
        super.readEntityFromNBT(par1NBTTagCompound);
        texture = "/mob/char.png";
    }

    protected int getDropItemId() {
        return Item.appleRed.shiftedIndex;
    }

}


ModelMrMinecraft.java

package net.minecraft.src;

public class ModelMrMinecraft extends ModelBiped {

    public ModelMrMinecraft() {
        this(0.0f);
    }

    public ModelMrMinecraft(float f) {
        this(f, 0.0F);
    }

    public ModelMrMinecraft(float f, float f1) {
        super(f, f1);
    }

}


RenderMrMinecraft.java

package net.minecraft.src;

public class RenderMrMinecraft extends RenderLiving {

    public RenderMrMinecraft(ModelBase modelbase, float f) {
        super(modelbase, f);
    }

    public void renderMrMinecraft(EntityMrMinecraft entity, double d, double d1, double d2, float f, float f1) {
        super.doRenderLiving(entity, d, d1, d2, f, f1);
    }

    public void doRenderLiving(EntityLiving entityliving, double d, double d1, double d2, float f, float f1) {
        renderMrMinecraft((EntityMrMinecraft)entityliving, d, d1, d2, f, f1);
    }

    public void doRender(Entity entity, double d, double d1, double d2, float f, float f1)
    {
        renderMrMinecraft((EntityMrMinecraft)entity, d, d1, d2, f, f1);
    }

}