1. 实体

一句话:Minecraft 里会动的,但不是方块的东西,基本上都是实体。
诸如你自己(玩家)、动物、地上掉的物品、经验球、怪物、矿车…… 都是实体。物品展示架和盔甲架也都是实体,虽然看起来像是方块。

public class MyEntity extends Entity {
    //未完待续
}

1.1. 注册

实体的注册项通过一个叫 EntityEntry 的东西代理,而它是 IForgeRegistryEntry。所以:

@SubscribeEvent
public static void onEntityRegistation(RegistryEvent.Register<EntityEntry> event) {
    event.getRegistry().register(EntityEntryBuilder.create()
            .entity(MyEntity.class)
            .id(new ResourceLocation(myModId, "my_entity"), 233)
            .name("MyEntity")
            .tracker(80, 3, false)
            .build()
    );
}

1.2. 数据同步

所有 Mod 的实体都需要有这样一个构造器:

public MyEntity(World world) {
    // 初始化
}

这实际上是 FML 的要求,因为 FML 接管了非原版实体的数据同步。相关的细节会在第十四章重新提到。