package erebus.world.genlayer;
import erebus.ModBiomes;
import erebus.world.biomes.BiomeBaseErebus;
import erebus.world.loot.WeightedList;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.gen.layer.GenLayer;
import net.minecraft.world.gen.layer.IntCache;
public class GenLayerBiomes extends GenLayerErebus {
private final WeightedList<BiomeBaseErebus> biomesToGenerate;
private final int totalWeight;
public GenLayerBiomes(long seed, GenLayer parentGenLayer) {
super(seed);
biomesToGenerate = ModBiomes.biomeList;
totalWeight = biomesToGenerate.getTotalWeight();
parent = parentGenLayer;
}
@Override
public int[] getInts(int x, int z, int sizeX, int sizeZ) {
parent.getInts(x, z, sizeX, sizeZ);
int[] ints = IntCache.getIntCache(sizeX * sizeZ);
for (int zz = 0; zz < sizeZ; ++zz)
for (int xx = 0; xx < sizeX; ++xx) {
initChunkSeed(xx + x, zz + z);
ints[xx + zz * sizeX] = Biome.getIdForBiome(biomesToGenerate.getRandomItem(nextInt(totalWeight)));
}
return ints;
}
}