minecraft mod教程:实体2-自定义一个基本的实体

上一节我们已经了解了一些有关minecraft实体的基本的知识。这一节我们就把学到的知识来使用一下,让我们创建一个没用的实体吧。(这节内容这么少的原因就不要说明了吧,没错,就是我在偷懒wwww


这一节我们不会涉及复杂的服务器和客户端同步的问题,那种问题想要解释起来实在是太过于复杂。所以我们就先注册一个我们的实体并且让它可以被指令召唤出来就好。

实体的原型是net.minecraft.entity.Entiry你只需要传递一个Entity类本身到EntityRegistry.registerModEntity就可以了。注册Entity并不是一件像注册方块一样的事情。在Minecraft里面,一个方块或者物品的实例代表的是一类物品或者方块。而一个实体的实例就是一个实体。如果你不注册实体,你将会无法再服务器和客户端之间传递实体信息。

下面是组册实体的函数原型:

public static void registerModEntity(Class<? extends Entity> entityClass, String entityName, int id, Object mod, int trackingRange, int updateFrequency, boolean sendsVelocityUpdates)

  • entityClass:实体的类
  • entityName:实体的名称
  • id:一个mod指定的id。(这个是随便指定的)
  • mod:你的mod的主mod的对象。一般来讲,如果你在mod类里面注册的话,你只需要传递一个this指针
  • trackingRange:一个被加载的距离。如果实体的距离超过了这个值,mod将不会收到实体的活动的消息。
  • updateFrequency:更新频率,单位是tick。可以参考上面那个参数。
  • sendsVelocityUpdates:是否发送同步数据

通过这个函数你可以轻松地注册一个实体。其实还有其他的注册方法可以直接包含刷怪蛋一起注册。但是,由于它有引发id冲突的可能性,现在就不介绍了。


 

先写这么多吧。感觉以后每回些少点,但是精一点比较好呢

5 thoughts on “minecraft mod教程:实体2-自定义一个基本的实体

  1. 我看了下,1.8只支持b3d格式的模型

  2. 楼主请教下 对于雪球之类的实体,在自定义事怎么添加其纹理。(用于发射的实体)

    • 一个实体都具有自己的模型,你是需要定制你的实体的模型才能修改这些。不过幸运的是你可以直接使用自雪球或者火焰弹之类的。这样你就可以省去建模的痛苦(明明这个模型很简单的吧)。
      渲染的管理是通过RenderManager来实现的,你可以通过注册你的Entity使用RenderSnowball这个渲染器来渲染达到直接渲染出这种效果。如果你关联了RenderManager这个渲染器到你的Entity的话,你的Entity渲染的时候的纹理会使用getIconFromDamage得到的纹理

      • 您好,我想知道怎么创建生物,包括完整的模型、贴图、动画以及生命属性的使用,(就是我扔出去一个球,就创建一个我的模型,并具有一定的属性,前提,这个模型已经做好了)谢谢

      • 其实forge提供了一个接口可以渲染obj格式模型,不过1.8之后的forge现在加载不了obj格式的。这个渲染方面还是szszss比较熟悉,他是自定义史蒂夫mod的作者之一啦

发表评论

电子邮件地址不会被公开。 必填项已用*标注