提供: Minecraft Modding Wiki
2016年6月3日 (金) 22:04時点における61.7.3.81 (トーク)による版
移動先: 案内検索

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

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

MOBの追加

MOBの登録方法です。 個別の挙動やモデルは各自で作成してください。

ソースコード

  • SampleMod .java
package com.example.entity;

import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.fml.client.registry.IRenderFactory;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.registry.EntityRegistry;

@Mod(modid = SampleMod.MOD_ID,
        name = SampleMod.MOD_NAME,
        version = SampleMod.MOD_VERSION,
        dependencies = SampleMod.MOD_DEPENDENCIES,
        acceptedMinecraftVersions = SampleMod.MOD_ACCEPTED_MC_VERSIONS,
        useMetadata = true)
public class SampleMod {
    /** ModID文字列 */
    public static final String MOD_ID = "samplemod";
    /** MOD名称 */
    public static final String MOD_NAME = "SampleMod";
    /** MODのバージョン */
    public static final String MOD_VERSION = "0.0.1";
    /** 前に読み込まれるべき前提MODをバージョン込みで指定 */
    public static final String MOD_DEPENDENCIES = "required-after:Forge@[1.9-12.16.0.1853,)";
    /** 起動出来るMinecraft本体のバージョン。記法はMavenのVersion Range Specificationを検索すること。 */
    public static final String MOD_ACCEPTED_MC_VERSIONS = "[1.9]";

    @Mod.EventHandler
    public void preInit(FMLPreInitializationEvent event) {
        int trackingRange = 80;
        int updateFrequency = 3;
        boolean sendVelocityUpdates = true;
        EntityRegistry.registerModEntity(SampleEntity.class, "SampleEntity", 0, this, trackingRange, updateFrequency, sendVelocityUpdates, 2243405, 7375001);
        EntityRegistry.addSpawn(SampleEntity.class, 8, 4, 4, EnumCreatureType.MONSTER, BiomeGenBase.getBiome(0));
        if(event.getSide().isServer()) {
            return;
        }
        RenderingRegistry.registerEntityRenderingHandler(SampleEntity.class, new IRenderFactory() {
            @Override
            public Render createRenderFor(RenderManager manager) {
                return new SampleEntityRender(manager);
            }
        });
    }
}

解説

  • SampleMod .java

このModのエントリクラス。

  • SampleEntity.java

EntityLivingBaseを継承したクラス。

  • SampleEntityRender.java

Renderを継承した描画用のクラス。