用户:MashKJo/1.12.2模组开发笔记/实现新维度:修订间差异

 
<code>IChunkGenerator createChunkGenerator()</code>这个方法虽然在WorldProvider类中不是抽象方法,但它也必须被覆写!因为它提供的是该维度的区块生成类——它决定了这个维度的世界生成。如果你不覆写该方法,那么等你进入维度后,你会发现这个维度的地面在Y = 255处,且天空的光照分布十分不正常,TPS会非常非常低。
 
那么可能这个时候就会有人问了:我看过了主世界的WorldProvider,没看到它里面有指定主世界的ChunkGenerator啊?原因是:主世界有两个不同的ChunkGenerator:ChunkGeneratorOverworld和ChunkGeneratorFlat,后者用于生成超平坦主世界,前者用于生成正常的主世界。到底选择哪个ChunkGenerator生成主世界,取决于玩家在创建世界时所选的世界类型(WorldType),这些逻辑是被写在了其他地方的。由此也可以看出,虽然在很多时候,MC中一个World实例就可以近似代表一个维度,但WorldType和DimensionType是不一样的。
 
下界和末地的WorldProvider倒是直接给出了对应的ChunkGenerator,可见,这两个维度的世界生成并不受WorldType影响。
 
== ChunkGenerator ==
行政员、​优秀编辑者、​界面管理员、​监督员、​管理员、​小部件编辑者
3,258

个编辑