mirror of
https://github.com/PaperMC/Paper.git
synced 2025-02-13 11:02:06 +01:00
Added helper methods World.getHighestBlockAt, Block.isEmpty, Block.isLiquid. Added methods to safely retrieve biome/temperature/humidity data for a block without generating the block.
By: Dinnerbone <dinnerbone@dinnerbone.com>
This commit is contained in:
parent
7bcdc12da0
commit
c68daa00bd
@ -6,6 +6,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.*;
|
||||
import org.bukkit.generator.BlockPopulator;
|
||||
@ -74,6 +75,25 @@ public interface World {
|
||||
*/
|
||||
public int getHighestBlockYAt(Location location);
|
||||
|
||||
/**
|
||||
* Gets the highest non-empty block at the given coordinates
|
||||
*
|
||||
* @param x X-coordinate of the block
|
||||
* @param z Z-coordinate of the block
|
||||
*
|
||||
* @return Highest non-empty block
|
||||
*/
|
||||
public Block getHighestBlockAt(int x, int z);
|
||||
|
||||
/**
|
||||
* Gets the highest non-empty block at the given coordinates
|
||||
*
|
||||
* @param location Coordinates to get the highest block
|
||||
*
|
||||
* @return Highest non-empty block
|
||||
*/
|
||||
public Block getHighestBlockAt(Location location);
|
||||
|
||||
/**
|
||||
* Gets the {@link Chunk} at the given coordinates
|
||||
*
|
||||
@ -651,6 +671,42 @@ public interface World {
|
||||
*/
|
||||
public boolean getAllowMonsters();
|
||||
|
||||
/**
|
||||
* Gets the biome for the given block coordinates.
|
||||
*
|
||||
* It is safe to run this method when the block does not exist, it will not create the block.
|
||||
*
|
||||
* @param x X coordinate of the block
|
||||
* @param z Z coordinate of the block
|
||||
*
|
||||
* @return Biome of the requested block
|
||||
*/
|
||||
public Biome getBiome(int x, int z);
|
||||
|
||||
/**
|
||||
* Gets the temperature for the given block coordinates.
|
||||
*
|
||||
* It is safe to run this method when the block does not exist, it will not create the block.
|
||||
*
|
||||
* @param x X coordinate of the block
|
||||
* @param z Z coordinate of the block
|
||||
*
|
||||
* @return Temperature of the requested block
|
||||
*/
|
||||
public double getTemperature(int x, int z);
|
||||
|
||||
/**
|
||||
* Gets the humidity for the given block coordinates.
|
||||
*
|
||||
* It is safe to run this method when the block does not exist, it will not create the block.
|
||||
*
|
||||
* @param x X coordinate of the block
|
||||
* @param z Z coordinate of the block
|
||||
*
|
||||
* @return Humidity of the requested block
|
||||
*/
|
||||
public double getHumidity(int x, int z);
|
||||
|
||||
/**
|
||||
* Represents various map environment types that a world may be
|
||||
*/
|
||||
|
@ -236,4 +236,36 @@ public interface Block {
|
||||
* @return
|
||||
*/
|
||||
int getBlockPower();
|
||||
|
||||
/**
|
||||
* Checks if this block is empty.
|
||||
*
|
||||
* A block is considered empty when {@link #getType()} returns {@link Material#AIR}.
|
||||
*
|
||||
* @return true if this block is empty
|
||||
*/
|
||||
boolean isEmpty();
|
||||
|
||||
/**
|
||||
* Checks if this block is liquid.
|
||||
*
|
||||
* A block is considered liquid when {@link #getType()} returns {@link Material#WATER}, {@link Material#STATIONARY_WATER}, {@link Material#LAVA} or {@link Material#STATIONARY_LAVA}.
|
||||
*
|
||||
* @return true if this block is liquid
|
||||
*/
|
||||
boolean isLiquid();
|
||||
|
||||
/**
|
||||
* Gets the temperature of the biome of this block
|
||||
*
|
||||
* @return Temperature of this block
|
||||
*/
|
||||
double getTemperature();
|
||||
|
||||
/**
|
||||
* Gets the humidity of the biome of this block
|
||||
*
|
||||
* @return Humidity of this block
|
||||
*/
|
||||
double getHumidity();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user