提供: Minecraft Modding Wiki
移動先: 案内検索
(ページの作成:「==MOBの追加==」)
 
1行目: 1行目:
 +
{{前提MOD|reqmod="Minecraft Forge Universal 9.10.0.871~"}}
 +
{{ チュートリアル難易度 | difficulty=1 |clear=none}}
 +
{{チュートリアルカテゴリー|type=Entity| difficulty=1}}
 +
'''このページは、編集中です。'''
 
==MOBの追加==
 
==MOBの追加==
 +
EntityLivingを継承して、MOBを追加します。
 +
モデルやAIも実装します
 +
===ソースコード===
 +
*SampleEntityCore.java
 +
<source lang="java">
 +
package mods.entity;
 +
 +
import cpw.mods.fml.client.registry.RenderingRegistry;
 +
import cpw.mods.fml.common.FMLCommonHandler;
 +
import cpw.mods.fml.common.Mod;
 +
import cpw.mods.fml.common.event.FMLInitializationEvent;
 +
import cpw.mods.fml.common.registry.EntityRegistry;
 +
import cpw.mods.fml.relauncher.Side;
 +
import net.minecraft.entity.EnumCreatureType;
 +
import net.minecraft.world.biome.BiomeGenBase;
 +
 +
@Mod(modid = "SampleEntity", name = "SampleEntity", version = "1.0.0")
 +
public class SampleEntityCore {
 +
    @EventHandler
 +
    public void init(FMLInitialization event) {
 +
        EntityRegistry.registerModEntity(EntitySample.class, "SampleEntity, 0, this, 250, 1, false);
 +
        EntityRegistry.addSpawn(EntitySample.class, 20, 1, 4, EnumCreatureType.creature, BiomeGenBase.plains);
 +
        if(FMLCommonHandler.instance().getSide() == Side.CLIENT) {
 +
RenderingRegistry.registerEntityRenderingHandler(EntitySample.class, new RenderSample());
 +
        }
 +
}
 +
</source>
 +
 +
*EntitySample.java
 +
<source lang="java">
 +
package mods.entity;
 +
 +
public class EntitySample extends EntityLiving {
 +
    public EntitySample(World world) {
 +
        super(world);
 +
        //bうろうろ移動するAIの追加
 +
this.tasks.addTask(1, new EntityAIWander(this, 1.0D));
 +
// 見回すAIの追加
 +
this.tasks.addTask(2, new EntityAILookIdle(this));
 +
    }
 +
 +
    @Override
 +
    public boolean isAIEnabled() { return true; }
 +
 +
    @Override
 +
    public String getLivingSound() { return /* MOBが生きている時の音のファイルパスを返す。 */ ; }
 +
 +
    @Override
 +
    public String getHurtSound() { return /* MOBがダメージを受けた時の音のファイルパスを返す。 */ ; }
 +
 +
    @Override
 +
    public String getDeathSound() { return /* MOBが死亡した時の音のファイルパスを返す。*/ ; }
 +
 +
    /*
 +
    * このMobが動いているときの音のファイルパスを返す.
 +
    * 引数のblockはMobの下にあるBlock.
 +
    */
 +
    @Override
 +
    protected void func_145780_a(int x, int y, int z, Block block)
 +
    {
 +
this.playSound("mob.skeleton.step", 0.15F, 1.0F);
 +
    }
 +
 +
  @Override
 +
    public EnumCreatureAttribute getCreatureAttribute() { return EnumCreatureAttribute.UNDEFINED; }
 +
 +
    @Override
 +
    public Item getDropItem() { return /* ドロップするアイテム */ ; }
 +
}
 +
</source>
 +
*RenderSample.java
 +
<source lang="java">
 +
package mods.entity;
 +
 +
public class RenderSample extends RenderSheep {
 +
    public RenderSample(
 +
}
 +
</source>

2014年11月29日 (土) 20:24時点における版

この記事は"Minecraft Forge Universal 9.10.0.871~"を前提MODとしています。

Stone pickaxe.png
中級者向けのチュートリアルです。
C entity.png
Entityに関係のあるチュートリアルです。

このページは、編集中です。

MOBの追加

EntityLivingを継承して、MOBを追加します。 モデルやAIも実装します

ソースコード

  • SampleEntityCore.java
package mods.entity;

import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.world.biome.BiomeGenBase;

@Mod(modid = "SampleEntity", name = "SampleEntity", version = "1.0.0")
public class SampleEntityCore {
    @EventHandler
    public void init(FMLInitialization event) {
        EntityRegistry.registerModEntity(EntitySample.class, "SampleEntity, 0, this, 250, 1, false);
        EntityRegistry.addSpawn(EntitySample.class, 20, 1, 4, EnumCreatureType.creature, BiomeGenBase.plains);
        if(FMLCommonHandler.instance().getSide() == Side.CLIENT) {
		RenderingRegistry.registerEntityRenderingHandler(EntitySample.class, new RenderSample());
        }
}
  • EntitySample.java
package mods.entity;

public class EntitySample extends EntityLiving {
    public EntitySample(World world) {
        super(world);
        	//bうろうろ移動するAIの追加
		this.tasks.addTask(1, new EntityAIWander(this, 1.0D));
		// 見回すAIの追加
		this.tasks.addTask(2, new EntityAILookIdle(this));
    }

    @Override
    public boolean isAIEnabled() { return true; }

    @Override
    public String getLivingSound() { return /* MOBが生きている時の音のファイルパスを返す。 */ ; }

    @Override
    public String getHurtSound() { return /* MOBがダメージを受けた時の音のファイルパスを返す。 */ ; }

    @Override
    public String getDeathSound() { return /* MOBが死亡した時の音のファイルパスを返す。*/ ; }

    /*
    * このMobが動いているときの音のファイルパスを返す.
    * 引数のblockはMobの下にあるBlock.
    */
    @Override
    protected void func_145780_a(int x, int y, int z, Block block)
    {
	this.playSound("mob.skeleton.step", 0.15F, 1.0F);
    }

   @Override
    public EnumCreatureAttribute getCreatureAttribute() { return EnumCreatureAttribute.UNDEFINED; }

    @Override
    public Item getDropItem() { return /* ドロップするアイテム */ ; }
}
  • RenderSample.java
package mods.entity;

public class RenderSample extends RenderSheep {
    public RenderSample(
}