2020-06-26 16:52:04 +00:00
|
|
|
package com.terraforged.mod.server.command.search;
|
2020-03-08 21:50:10 +00:00
|
|
|
|
2020-06-18 09:03:21 +00:00
|
|
|
import com.terraforged.core.cell.Cell;
|
2020-06-28 13:53:35 +00:00
|
|
|
import com.terraforged.mod.biome.provider.TerraBiomeProvider;
|
2020-03-08 21:50:10 +00:00
|
|
|
import net.minecraft.util.math.BlockPos;
|
|
|
|
import net.minecraft.world.biome.Biome;
|
2020-06-18 09:03:21 +00:00
|
|
|
import net.minecraft.world.gen.ChunkGenerator;
|
2020-03-08 21:50:10 +00:00
|
|
|
|
2020-06-18 09:03:21 +00:00
|
|
|
public class BiomeSearchTask extends ChunkGeneratorSearch {
|
2020-03-08 21:50:10 +00:00
|
|
|
|
|
|
|
private final Biome biome;
|
2020-06-19 19:28:28 +00:00
|
|
|
private final TerraBiomeProvider biomeProvider;
|
2020-03-08 21:50:10 +00:00
|
|
|
|
2020-06-18 09:03:21 +00:00
|
|
|
private final Cell cell = new Cell();
|
|
|
|
|
2020-06-19 19:28:28 +00:00
|
|
|
public BiomeSearchTask(BlockPos center, Biome biome, ChunkGenerator<?> generator, TerraBiomeProvider biomeProvider) {
|
2020-06-18 09:03:21 +00:00
|
|
|
super(center, generator);
|
|
|
|
this.biomeProvider = biomeProvider;
|
2020-03-08 21:50:10 +00:00
|
|
|
this.biome = biome;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getSpacing() {
|
|
|
|
return 10;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean test(BlockPos pos) {
|
2020-06-18 09:03:21 +00:00
|
|
|
biomeProvider.getWorldLookup().applyCell(cell, pos.getX(), pos.getZ());
|
2020-06-30 11:16:42 +00:00
|
|
|
if (biomeProvider.getBiome(cell, pos.getX(), pos.getZ()) == biome) {
|
|
|
|
return biomeProvider.getBiome(pos.getX(), pos.getZ()) == biome;
|
|
|
|
}
|
|
|
|
return false;
|
2020-06-06 17:00:11 +00:00
|
|
|
}
|
2020-03-08 21:50:10 +00:00
|
|
|
}
|