3,258
个编辑
MCBBS Wiki欢迎您共同参与编辑!在参与编辑之前请先阅读Wiki方针。
如果在编辑的过程中遇到了什么问题,可以去讨论板提问。
为了您能够无阻碍地参与编辑 未验证/绑定过邮箱的用户,请尽快绑定/验证。
MCBBS Wiki GitHub群组已上线!
您可以在回声洞中发表吐槽!
服务器状态监控。点击进入
本站由MCBBS用户自行搭建,与MCBBS及东银河系漫游指南(北京)科技有限公司没有从属关系。点此了解 MCBBS Wiki 不是什么>>
要实现一个新维度,必须要为该维度提供对应的WorldProvider——这个WorldProvider可以是原版的WorldProvider,也可以是你自己写的WorldProvider。所有维度的WorldProvider类都是抽象类net.minecraft.world.WorldProvider的子类。
原版提供了三种WorldProvider:WorldProviderSurface、WorldProviderHell以及WorldProviderEnd。如果你只是想做个换皮维度的话,倒是可以考虑继承这三种WorldProvider的其中之一<ref>事实上,MCreator就是这么干的——用MCreator创建新维度的时候,你只有这三种WorldProvider可以选。因为自定义世界生成牵扯到复杂的算法,这东西是没法给出一个通用的程式的。</ref>。
当然,我们最好还是自己写一个WorldProvider。首先新建一个类,让其继承WorldProvider类。
public IChunkGenerator createChunkGenerator()
{
return new MyDimChunkGenerator(this.world
}
}
</code>
首先,WorldProvider虽然为一个抽象类,但它其实只有一个抽象方法待子类实现:<code>DimensionType getDimensionType()</code>。这里我们只需要返回我们之前新建的DimensionType对象即可。
<code>IChunkGenerator createChunkGenerator()</code>这个方法虽然在WorldProvider类中不是抽象方法,但它也必须被覆写!因为它提供的是该维度的区块生成类——它决定了这个维度的世界生成。如果你不覆写该方法,那么等你进入维度后,你会发现这个维度的地面在Y = 255处,且天空的光照分布十分不正常,TPS会非常非常低。
== ChunkGenerator ==
|