Implemented helper methods + new biome methods

By: Dinnerbone <dinnerbone@dinnerbone.com>
This commit is contained in:
CraftBukkit/Spigot 2011-07-13 06:52:40 +01:00
parent 92dc42b3a8
commit 11d2a52689
2 changed files with 66 additions and 29 deletions

View file

@ -30,6 +30,7 @@ import org.bukkit.ChunkSnapshot;
import org.bukkit.Location;
import org.bukkit.TreeType;
import org.bukkit.World;
import org.bukkit.block.Biome;
import org.bukkit.generator.BlockPopulator;
public class CraftWorld implements World {
@ -488,6 +489,56 @@ public class CraftWorld implements World {
return populators;
}
public Block getHighestBlockAt(int x, int z) {
return getBlockAt(x, getHighestBlockYAt(x, z), z);
}
public Block getHighestBlockAt(Location location) {
return getHighestBlockAt(location.getBlockX(), location.getBlockZ());
}
public Biome getBiome(int x, int z) {
BiomeBase base = getHandle().getWorldChunkManager().getBiome(x, z);
if (base == BiomeBase.RAINFOREST) {
return Biome.RAINFOREST;
} else if (base == BiomeBase.SWAMPLAND) {
return Biome.SWAMPLAND;
} else if (base == BiomeBase.SEASONAL_FOREST) {
return Biome.SEASONAL_FOREST;
} else if (base == BiomeBase.FOREST) {
return Biome.FOREST;
} else if (base == BiomeBase.SAVANNA) {
return Biome.SAVANNA;
} else if (base == BiomeBase.SHRUBLAND) {
return Biome.SHRUBLAND;
} else if (base == BiomeBase.TAIGA) {
return Biome.TAIGA;
} else if (base == BiomeBase.DESERT) {
return Biome.DESERT;
} else if (base == BiomeBase.PLAINS) {
return Biome.PLAINS;
} else if (base == BiomeBase.ICE_DESERT) {
return Biome.ICE_DESERT;
} else if (base == BiomeBase.TUNDRA) {
return Biome.TUNDRA;
} else if (base == BiomeBase.HELL) {
return Biome.HELL;
} else if (base == BiomeBase.SKY) {
return Biome.SKY;
}
return null;
}
public double getTemperature(int x, int z) {
return getHandle().getWorldChunkManager().a((double[])null, x, z, 1, 1)[0];
}
public double getHumidity(int x, int z) {
return getHandle().getWorldChunkManager().getHumidity(x, z);
}
private final class ChunkCoordinate {
public final int x;
public final int z;

View file

@ -330,37 +330,15 @@ public class CraftBlock implements Block {
}
public Biome getBiome() {
BiomeBase base = chunk.getHandle().world.getWorldChunkManager().getBiome(x, z);
return getWorld().getBiome(x, z);
}
if (base == BiomeBase.RAINFOREST) {
return Biome.RAINFOREST;
} else if (base == BiomeBase.SWAMPLAND) {
return Biome.SWAMPLAND;
} else if (base == BiomeBase.SEASONAL_FOREST) {
return Biome.SEASONAL_FOREST;
} else if (base == BiomeBase.FOREST) {
return Biome.FOREST;
} else if (base == BiomeBase.SAVANNA) {
return Biome.SAVANNA;
} else if (base == BiomeBase.SHRUBLAND) {
return Biome.SHRUBLAND;
} else if (base == BiomeBase.TAIGA) {
return Biome.TAIGA;
} else if (base == BiomeBase.DESERT) {
return Biome.DESERT;
} else if (base == BiomeBase.PLAINS) {
return Biome.PLAINS;
} else if (base == BiomeBase.ICE_DESERT) {
return Biome.ICE_DESERT;
} else if (base == BiomeBase.TUNDRA) {
return Biome.TUNDRA;
} else if (base == BiomeBase.HELL) {
return Biome.HELL;
} else if (base == BiomeBase.SKY) {
return Biome.SKY;
}
public double getTemperature() {
return getWorld().getTemperature(x, z);
}
return null;
public double getHumidity() {
return getWorld().getHumidity(x, z);
}
public boolean isBlockPowered() {
@ -400,4 +378,12 @@ public class CraftBlock implements Block {
public int getBlockPower() {
return getBlockPower(BlockFace.SELF);
}
public boolean isEmpty() {
return getType() == Material.AIR;
}
public boolean isLiquid() {
return (getType() == Material.WATER) || (getType() == Material.STATIONARY_WATER) || (getType() == Material.LAVA) || (getType() == Material.STATIONARY_LAVA);
}
}