Interface LimitedRegion

All Superinterfaces:
FeatureFlagSetHolder, Keyed, Keyed, RegionAccessor

public interface LimitedRegion extends RegionAccessor
A limited region is used in world generation for features which are going over a chunk. For example, trees or ores. Use getBuffer() to know how much you can go beyond the central chunk. The buffer zone may or may not be already populated. The coordinates are absolute from the world origin.
  • Method Details

    • getBuffer

      int getBuffer()
      Gets the buffer around the central chunk which is accessible. The returned value is in normal world coordinate scale.

      For example: If the method returns 16 you have a working area of 48x48.

      Returns:
      The buffer in X and Z direction
    • isInRegion

      boolean isInRegion(@NotNull @NotNull Location location)
      Checks if the given Location is in the region.
      Parameters:
      location - the location to check
      Returns:
      true if the location is in the region, otherwise false.
    • isInRegion

      boolean isInRegion(int x, int y, int z)
      Checks if the given coordinates are in the region.
      Parameters:
      x - X-coordinate to check
      y - Y-coordinate to check
      z - Z-coordinate to check
      Returns:
      true if the coordinates are in the region, otherwise false.
    • getTileEntities

      @NotNull @NotNull List<BlockState> getTileEntities()
      Gets a list of all tile entities in the limited region including the buffer zone.
      Returns:
      a list of tile entities.
    • setBlockData

      default void setBlockData(@NotNull @NotNull Vector vector, @NotNull @NotNull BlockData data)
      Sets the block at a vector location to the provided BlockData.
      Parameters:
      vector - Vector representing the position of the block to set.
      data - BlockData to set the block at the provided coordinates to.
    • setBlockState

      void setBlockState(int x, int y, int z, @NotNull @NotNull BlockState state)
      Sets the BlockState at a location.
      Parameters:
      x - X coordinate.
      y - Y coordinate.
      z - Z coordinate.
      state - The block state.
    • setBlockState

      default void setBlockState(@NotNull @NotNull Vector location, @NotNull @NotNull BlockState state)
      Sets the BlockState at a location.
      Parameters:
      location - Location to set block state.
      state - The block state.
    • getBlockState

      @NotNull default @NotNull BlockState getBlockState(@NotNull @NotNull Vector location)
      Gets the BlockState at a location.
      Parameters:
      location - Location to get block state from.
      Returns:
      The block state.
    • scheduleBlockUpdate

      void scheduleBlockUpdate(int x, int y, int z)
      Schedules a block update at (x, y, z).
      Parameters:
      x - X coordinate
      y - Y coordinate
      z - Z coordinate
    • scheduleBlockUpdate

      default void scheduleBlockUpdate(@NotNull @NotNull Vector location)
      Schedules a block update at a vector location.
      Parameters:
      location - Vector representing the position of the block to update.
    • scheduleFluidUpdate

      void scheduleFluidUpdate(int x, int y, int z)
      Schedules a fluid update at (x, y, z).
      Parameters:
      x - X coordinate
      y - Y coordinate
      z - Z coordinate
    • scheduleFluidUpdate

      default void scheduleFluidUpdate(@NotNull @NotNull Vector location)
      Schedules a fluid update at a vector location.
      Parameters:
      location - Vector representing the position of the block to update.
    • getWorld

      @NotNull @NotNull World getWorld()
      Gets the World object this region represents.

      Do not attempt to read from/write to this world! Doing so during generation will cause a deadlock!

      Returns:
      The World object that this region represents.
    • getBlockData

      @NotNull default @NotNull BlockData getBlockData(@NotNull @NotNull Vector vector)
      Gets the BlockData of the block at the provided coordinates.
      Parameters:
      vector - Vector representing the position of the block to get.
      Returns:
      BlockData at the coordinates
    • getCenterChunkX

      int getCenterChunkX()
      Gets the X-coordinate of the chunk in the center of the region.
      Returns:
      The center chunk's X coordinate.
    • getCenterBlockX

      default int getCenterBlockX()
      Gets the X-coordinate of the block in the center of the region.
      Returns:
      The center chunk's X coordinate.
    • getCenterChunkZ

      int getCenterChunkZ()
      Gets the Z-coordinate of the chunk in the center of the region.
      Returns:
      The center chunk's Z coordinate.
    • getCenterBlockZ

      default int getCenterBlockZ()
      Gets the Z-coordinate of the block in the center of the region.
      Returns:
      The center chunk's Z coordinate.