@Override public void cleanupCache() { this.biomeCache.cleanupCache(); } }
@Override public Biome[] getBiomes(Biome[] biomes, int x, int z, int width, int height, boolean cache) { if (biomes == null || biomes.length < width * height) { biomes = new Biome[width * height]; } boolean fillsChunk = this.isChunkGeneration(x, z, width, height); if (cache && fillsChunk) { System.arraycopy(this.biomeCache.getCachedBiomes(x, z), 0, biomes, 0, width * height); } else { this.populateArea(biomes, x, z, width, height); } return biomes; }
@Override public Biome getBiome(BlockPos pos, Biome defaultBiome) { return this.biomeCache.getBiome(pos.getX(), pos.getZ(), defaultBiome); }
public BiomeProviderErebus(World world) { biomesToSpawnIn = new ArrayList<Biome>(allowedBiomes); biomeCache = new BiomeCache(this); biomeGenLayer = GenLayerErebus.initializeAllBiomeGenerators(world.getSeed(), world.getWorldInfo().getTerrainType())[1]; }
@Override public Biome[] getBiomes(@Nullable Biome[] biomesForGeneration, int x, int z, int sizeX, int sizeZ, boolean useCache) { IntCache.resetIntCache(); if (biomesForGeneration == null || biomesForGeneration.length < sizeX * sizeZ) biomesForGeneration = new Biome[sizeX * sizeZ]; if (useCache && sizeX == 16 && sizeZ == 16 && (x & 15) == 0 && (z & 15) == 0) { Biome[] cachedBiomes = biomeCache.getCachedBiomes(x, z); System.arraycopy(cachedBiomes, 0, biomesForGeneration, 0, sizeX * sizeZ); return biomesForGeneration; } else { int[] generatedBiomes = biomeGenLayer.getInts(x, z, sizeX, sizeZ); for (int index = 0; index < sizeX * sizeZ; ++index) biomesForGeneration[index] = Biome.getBiome(generatedBiomes[index], Biomes.DEFAULT); return biomesForGeneration; } }
@Override public void cleanupCache() { biomeCache.cleanupCache(); }