public interface InputExtent
Modifier and Type | Method and Description |
---|---|
BaseBiome |
getBiome(Vector2D position)
Get the biome at the given location.
|
BaseBlock |
getBlock(Vector position)
Get a snapshot of the block at the given location.
|
BaseBlock |
getLazyBlock(Vector position)
Get a lazy, immutable snapshot of the block at the given location that only
immediately contains information about the block's type (and metadata).
|
BaseBlock getBlock(Vector position)
If the given position is out of the bounds of the extent, then the behavior
is undefined (an air block could be returned). However, null
should not be returned.
The returned block is mutable and is a snapshot of the block at the time
of call. It has no position attached to it, so it could be reused in
Pattern
s and so on.
Calls to this method can actually be quite expensive, so cache results
whenever it is possible, while being aware of the mutability aspect.
The cost, however, depends on the implementation and particular extent.
If only basic information about the block is required, then use of
getLazyBlock(Vector)
is recommended.
position
- position of the blockBaseBlock getLazyBlock(Vector position)
Further information (such as NBT data) will be available by the time of access. Therefore, it is not recommended that this method is used if the world is being simulated at the time of call. If the block needs to be stored for future use, then this method should definitely not be used. Moreover, the block that is returned is immutable (or should be), and therefore modifications should not be attempted on it. If a modifiable copy is required, then the block should be cloned.
This method exists because it is sometimes important to inspect the block
at a given location, but getBlock(Vector)
may be too expensive in
the underlying implementation. It is also not possible to implement
caching if the returned object is mutable, so this methods allows caching
implementations to be used.
position
- position of the block