From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Sat, 1 Dec 2018 19:00:36 -0800 Subject: [PATCH] Add Heightmap API Changed to use upstream's heightmap API - Machine_Maker diff --git a/src/main/java/org/bukkit/Location.java b/src/main/java/org/bukkit/Location.java index eec6c9cd7da6938351905129bb5a66f49a257d01..65618b6b3c950fb27707f243a766511d6cd3aab4 100644 --- a/src/main/java/org/bukkit/Location.java +++ b/src/main/java/org/bukkit/Location.java @@ -649,6 +649,30 @@ public class Location implements Cloneable, ConfigurationSerializable, io.paperm } // Paper end - expand Location API + // Paper start - Add heightmap api + /** + * Returns a copy of this location except with y = getWorld().getHighestBlockYAt(this.getBlockX(), this.getBlockZ()) + * @return A copy of this location except with y = getWorld().getHighestBlockYAt(this.getBlockX(), this.getBlockZ()) + * @throws NullPointerException if {{@link #getWorld()}} is {@code null} + */ + @NotNull + public Location toHighestLocation() { + return this.toHighestLocation(HeightMap.WORLD_SURFACE); + } + + /** + * Returns a copy of this location except with y = getWorld().getHighestBlockYAt(this.getBlockX(), this.getBlockZ(), heightMap) + * @param heightMap The heightmap to use for finding the highest y location. + * @return A copy of this location except with y = getWorld().getHighestBlockYAt(this.getBlockX(), this.getBlockZ(), heightMap) + */ + @NotNull + public Location toHighestLocation(@NotNull final HeightMap heightMap) { + final Location ret = this.clone(); + ret.setY(this.getWorld().getHighestBlockYAt(this, heightMap)); + return ret; + } + // Paper end - Add heightmap api + // Paper start - Expand Explosions API /** * Creates explosion at this location with given power