public boolean getCanSpawnHere()
{
return super.getCanSpawnHere() && this.world.canSeeSky(new BlockPos(this));
}
public boolean canSeeSky(BlockPos pos)
{
int i = pos.getX() & 15;
int j = pos.getY();
int k = pos.getZ() & 15;
return j >= this.heightMap[k << 4 | i];
}
if (biome instanceof BiomeOcean) {
System.out.println("Disqualified because of ocean (would suck to terraform): "+biome.getBiomeName());
continue outer;
}
if (biome instanceof BiomeMushroomIsland) {
System.out.println("Disqualified because of mushroom island: "+biome.getBiomeName());
continue outer;
}
if (biome instanceof BiomeSwamp) {
System.out.println("Disqualified because of swamp (slimes): "+biome.getBiomeName());
continue outer;
}
if (biome instanceof BiomeSnow) {
System.out.println("Disqualified because of snowy biome (spawns stray and polar bear): "+biome.getBiomeName());
continue outer;
}
/*if (biome instanceof BiomeHills || biome instanceof BiomeSavanna) {
System.out.println("Disqualified because of llama spawning biome: "+biome.getBiomeName());
continue outer;
}*/
if (biome instanceof BiomeJungle) {
System.out.println("Disqualified because of jungle biome (spawn ocelot and parrot): "+biome.getBiomeName());
continue outer;
}
/*if (biome instanceof BiomeDesert) {
System.out.println("Disqualified because of desert biome (spawns husk): "+biome.getBiomeName());
continue outer;
}*/
BiomeProvider OVERWORLD_BIOME_PROVIDER = new BiomeProvider(new WorldInfo(
new WorldSettings(SEED, GameType.SURVIVAL, true, false, WorldType.DEFAULT),
String.valueOf(SEED)));
...
Biome[] biomes = OVERWORLD_BIOME_PROVIDER.getBiomes(null, minBlockX, minBlockZ, maxBlockX - minBlockX, maxBlockZ - minBlockZ);
// don't overwrite up to date data with old data
if (!NetherPathfinder.hasChunkFromJava(context, chunk.x, chunk.z)) {
continue;
}
this.pathfindAroundObstacles();
should run regardless of if overridePath == null
or not
and also replace these lines https://github.com/babbaj/baritone/blob/c672b52192e1e3d8132baf095c21596cfd408d2a/src/main/java/baritone/process/elytra/ElytraBehavior.java#L352-L357 with just OptionalInt rejoinMainPathAt = OptionalInt.of(rangeEndExcl - 1);
this.pathfindAroundObstacles();
should run regardless of if overridePath == null
or not
and also replace these lines https://github.com/babbaj/baritone/blob/c672b52192e1e3d8132baf095c21596cfd408d2a/src/main/java/baritone/process/elytra/ElytraBehavior.java#L352-L357 with just OptionalInt rejoinMainPathAt = OptionalInt.of(rangeEndExcl - 1);
this.pathfindAroundObstacles();
should run regardless of if overridePath == null
or not
and also replace these lines https://github.com/babbaj/baritone/blob/c672b52192e1e3d8132baf095c21596cfd408d2a/src/main/java/baritone/process/elytra/ElytraBehavior.java#L352-L357 with just OptionalInt rejoinMainPathAt = OptionalInt.of(rangeEndExcl - 1);
Team A (right-to-left sections)
Lava clear: X-
Kelp & block clear: X
Big trenches dig: X-
Small trenches dig: X
Build bombers: X
Bombing process: -
Hypothetical Team B
clear all liquids from left to right
conventional bombers that dont need a whole pass per y level
(edited)