@Override public ChunkPosition findClosestStructure(World world, String s, int i, int j, int k) { if ("Stronghold".equals(s) && strongholdGenerator != null) { return strongholdGenerator.getNearestInstance(world, i, j, k); } else { return null; } }
@Override protected void generateStructures(int i, int j, byte abyte0[]) { if (mapFeaturesEnabled) { if (ODNBXlite.Structures[0]) { ravineGenerator.generate(this, worldObj, i, j, abyte0); } if (ODNBXlite.Structures[3]) { mineshaftGenerator.generate(this, worldObj, i, j, abyte0); } if (ODNBXlite.Structures[1]) { villageGenerator.generate(this, worldObj, i, j, abyte0); } if (ODNBXlite.Structures[2]) { strongholdGenerator.generate(this, worldObj, i, j, abyte0); } } }
@Override public void populate(IChunkProvider ichunkprovider, int x, int z) { rand.setSeed((long) x * 0x12f88dd3L + (long) z * 0x36d41eecL); int x1 = x << 4; int z1 = z << 4; if (mapFeaturesEnabled) { if (ODNBXlite.Structures[2]) { strongholdGenerator.generateStructuresInChunk(worldObj, rand, x, z); } if (ODNBXlite.Structures[1]) { villageGenerator.generateStructuresInChunk(worldObj, rand, x, z); } if (ODNBXlite.Structures[3]) { mineshaftGenerator.generateStructuresInChunk(worldObj, rand, x, z); } } for (int i = 0; i < 20; i++) { int x2 = x1 + rand.nextInt(16); int y2 = rand.nextInt(128); int z2 = z1 + rand.nextInt(16); (new SuperOldWorldGenMinable(Block.oreCoal.blockID)) .generate_infdev(worldObj, rand, x2, y2, z2); } for (int i = 0; i < 10; i++) { int x2 = x1 + rand.nextInt(16); int y2 = rand.nextInt(64); int z2 = z1 + rand.nextInt(16); (new SuperOldWorldGenMinable(Block.oreIron.blockID)) .generate_infdev(worldObj, rand, x2, y2, z2); } if (rand.nextInt(2) == 0) { int x2 = x1 + rand.nextInt(16); int y2 = rand.nextInt(32); int z2 = z1 + rand.nextInt(16); (new SuperOldWorldGenMinable(Block.oreGold.blockID)) .generate_infdev(worldObj, rand, x2, y2, z2); } if (rand.nextInt(8) == 0) { int x2 = x1 + rand.nextInt(16); int y2 = rand.nextInt(16); int z2 = z1 + rand.nextInt(16); (new SuperOldWorldGenMinable(Block.oreDiamond.blockID)) .generate_infdev(worldObj, rand, x2, y2, z2); } if (ODNBXlite.getFlag("newores")) { for (int i = 0; i < 8; i++) { int x2 = x1 + rand.nextInt(16); int y2 = rand.nextInt(16); int z2 = z1 + rand.nextInt(16); (new SuperOldWorldGenMinable(Block.oreRedstone.blockID)) .generate_infdev(worldObj, rand, x2, y2, z2); } for (int i = 0; i < 1; i++) { int x2 = x1 + rand.nextInt(16); int y2 = rand.nextInt(16) + rand.nextInt(16); int z2 = z1 + rand.nextInt(16); (new SuperOldWorldGenMinable(Block.oreLapis.blockID)) .generate_infdev(worldObj, rand, x2, y2, z2); } int max = 0; detection: for (int i = x1; i < x1 + 16; i++) { for (int j = z1; j < z1 + 16; j++) { int h = worldObj.getPrecipitationHeight(i, j); if (max < h) { max = h; } if (max > 108) { break detection; } } } if (max > 108) { for (int i = 0; i < 3 + rand.nextInt(6); i++) { int x2 = x1 + rand.nextInt(16); int y2 = rand.nextInt(28) + 4; int z2 = z1 + rand.nextInt(16); int id = worldObj.getBlockId(x2, y2, z2); if (id == Block.stone.blockID) { worldObj.setBlock(x2, y2, z2, Block.oreEmerald.blockID); } } } } int trees = (int) (treeGen.func_806_a( (double) x1 * 0.050000000000000003D, (double) z1 * 0.050000000000000003D) - rand.nextDouble()); if (trees < 0) { trees = 0; } WorldGenerator treegen = ODNBXlite.MapFeatures == ODNBXlite.FEATURES_INFDEV0608 ? new OldWorldGenTrees(false) : new OldWorldGenBigTree(); if (rand.nextInt(100) == 0) { trees++; } if (ODNBXlite.MapTheme == ODNBXlite.THEME_WOODS) { trees += 20; } for (int i = 0; i < trees; i++) { int x2 = x1 + rand.nextInt(16) + 8; int z2 = z1 + rand.nextInt(16) + 8; treegen.setScale(1.0D, 1.0D, 1.0D); treegen.generate(worldObj, rand, x2, worldObj.getHeightValue(x2, z2), z2); } spawnAnimals(x * 16, z * 16); }