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

 
==== boolean generateStructures(Chunk chunkIn, int x, int z) ====
这是个第一眼看上去意义不明的方法——“生成结构”?还是个返回值为boolean类型的方法。
 
很多模组添加的新维度的区块生成类中,一般都直接一个return false了事;在MC原版的主世界区块生成类中,它写的也很让人看不懂——先是定义了一个类型为boolean的flag局部变量(值为false),然后再通过判断海洋神殿是否生成来决定flag的值,最后返回flag。而且它的判断逻辑甚至还有“区块的加载时间”参与其中,实际上这个方法纯粹用于暴露一些数据给其他方法调用,而不是真的用于决定“是否生成结构”。它在其他地方的引用只有Chunk类中有,逻辑大概是检测这个方法的返回值,如果为true,就调用区块的markDirty方法——这个方法的作用为让MC对该区块的更新保持关注,写过Ticking TileEntity的开发者应该知道“markDirty”是什么意思。
 
听不懂?没事,其实笔者也不太懂这里面的运作机制。因此你可以就模仿一些模组的源代码,一个return false了事。
 
==== List<Biome.SpawnListEntry> getPossibleCreatures(EnumCreatureType creatureType, BlockPos pos) ====
行政员、​优秀编辑者、​界面管理员、​监督员、​管理员、​小部件编辑者
3,258

个编辑