Minecraft(我的世界)中文论坛
标题: 利用Forge API开发联机MOD【基础篇】【第七章】
作者: yuxuanchiadm 时间: 2012-8-2 13:13
标题: 利用Forge API开发联机MOD【基础篇】【第七章】
本帖最后由 yuxuanchiadm 于 2013-8-4 15:16 编辑
利用Forge API开发联机MOD【基础篇】【第七章】
改善你制作的方块的功能
作者:yuxuanchiadm
索引贴地址:http://www.mcbbs.net/thread-38211-1-1.html
请确定你已经阅读完成第六章的内容:
http://www.mcbbs.net/thread-38526-1-1.html
否则不要阅读此贴!
序:
在上一章里,我们创建了一个极不完善的刷怪笼方块,而我们的目标是制作一个能够自定义所刷生物和刷怪间隔的高级刷怪笼。所以,在这一章里,首先让我们让这个方块具有基本的刷怪功能吧!:)。
使你的MOD具有基本的刷怪功能:
首先,刷怪笼需要一个继承自TileEntity的子类,用于储存所刷生物和刷怪间隔和刷新间隔计数。
/**知识点:什么是TileEntity
TileEntity也能算一种实体,只不过它是一种特殊的实体,而且不继承自Entity,用于记录方块的附加信息,比如箱子里的物品等,它与方块紧密相连,另外还可以对这个实体进行渲染。
**/
在myFirstMod包下新建包TileEntity,再新建一个类,命名为TileEntityAdvancedMobSpawner,出于简单考虑,继承自TileEntityMobSpawner,输入以下内容:
以上的公共实例方法主要是为了获取、设置刷怪间隔和所刷怪物,包括一些通过反射来越权访问。
然后,在mod_myFirstMod的load方法里注册它:
- TileEntity.addMapping(TileEntityAdvancedMobSpawner.class, "AdvancedMobSpawner");
复制代码
现在,保存你的代码,并编译运行,你就可以用一个刷怪笼和8个钻石得到一个高级刷怪笼,虽然和普通刷怪笼看上去没啥区别。
总结:
这一章里,我们让我们的高级刷怪笼已经有了普通刷怪笼的功能,下一章里,我们将要为刷怪笼能够实现更多功能做准备,建立我们的网络通信框架!
作者: 王叙皓 时间: 2013-7-19 18:12
占沙发
作者: huanghongxun 时间: 2013-11-17 12:57
问一下在updateEntity时肯定是要在world.isRemote时return掉的。
但是客户端的tileEntity和服务端的tileEntity是不一样的。
怎么使两个tileEntity相互通信(如果onDataPacket是接收,怎么发送packet给客户端的TileEntity)?
看了BuildCraft、RailCraft的源代码,但是看不太懂,IC2的也一样看不懂。。CompactWindmills干脆就直接在客户端和服务端都算一遍,但这是不可行的。