提供: 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としています。 |
このページは、編集中です。
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( }