本帖最后由 SkinBBS 于 2019-10-3 14:41 编辑
原本以为村庄的边长没有上限, 但是在看源码时发现了这样一个方法:
复制代码代码中非常明确的指出了寻找结构 References 的范围只有 8x2+1=17 区块, 也就是 272 方块边长, 超出这个范围即使存在村庄, 他们所在的区块也不会被识别为村庄的一部分, 不会被建造...但是我好像记得以前有 dalao 确实通过修改一些参数什么的弄出了边长 600 的超大村庄. 所以想请教一下熟悉游戏的道友, 村庄到底有没有面积上限?
另外, 这个 272 面积的上限是否也意味着游戏内全部自然结构(包括下界要塞, 要塞, 废弃矿井)都不可能超过这个面积?
原本以为村庄的边长没有上限, 但是在看源码时发现了这样一个方法:
- public void addStructureReferences(IWorld iWorld_1, Chunk chunk_1) {
- int int_1 = true;
- int int_2 = chunk_1.getPos().x;
- int int_3 = chunk_1.getPos().z;
- int int_4 = int_2 << 4;
- int int_5 = int_3 << 4;
- for(int int_6 = int_2 - 8; int_6 <= int_2 + 8; ++int_6) {
- for(int int_7 = int_3 - 8; int_7 <= int_3 + 8; ++int_7) {
- long long_1 = ChunkPos.toLong(int_6, int_7);
- Iterator var12 = iWorld_1.getChunk(int_6, int_7).getStructureStarts().entrySet().iterator();
- while(var12.hasNext()) {
- Entry<String, StructureStart> map$Entry_1 = (Entry)var12.next();
- StructureStart structureStart_1 = (StructureStart)map$Entry_1.getValue();
- if (structureStart_1 != StructureStart.DEFAULT && structureStart_1.getBoundingBox().intersectsXZ(int_4, int_5, int_4 + 15, int_5 + 15)) {
- chunk_1.addStructureReference((String)map$Entry_1.getKey(), long_1);
- DebugRendererInfoManager.sendStructureStart(iWorld_1, structureStart_1);
- }
- }
- }
- }
- }
另外, 这个 272 面积的上限是否也意味着游戏内全部自然结构(包括下界要塞, 要塞, 废弃矿井)都不可能超过这个面积?