java.lang.Object
com.fastasyncworldedit.core.queue.implementation.chunk.NullChunk
All Implemented Interfaces:
IBlocks, IChunk, IChunkGet, IChunkSet, IQueueChunk, ITileInput, Trimable, InputExtent, OutputExtent, Callable

public final class NullChunk extends Object implements IQueueChunk
  • Method Details

    • getInstance

      public static NullChunk getInstance()
    • getX

      public int getX()
      Description copied from interface: IChunk
      Get chunkX
      Specified by:
      getX in interface IChunk
      Returns:
      the x coordinate of the chunk
    • getZ

      public int getZ()
      Description copied from interface: IChunk
      Get chunkZ
      Specified by:
      getZ in interface IChunk
      Returns:
      the z coordinate of the chunk
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface IChunkSet
    • call

      public Future call()
      Description copied from interface: IQueueChunk
      Apply the queued changes to the world containing this chunk.

      The future returned may return another future. To ensure completion keep calling Future.get() on each result.

      Specified by:
      call in interface Callable
      Specified by:
      call in interface IQueueChunk
      Returns:
      Future
    • filterBlocks

      public void filterBlocks(@Nonnull Filter filter, @Nonnull ChunkFilterBlock block, @Nullable Region region, boolean full)
      Description copied from interface: IChunk
      Filter through all the blocks in the chunk
      Specified by:
      filterBlocks in interface IChunk
      Parameters:
      filter - the filter
      block - The filter block
      region - The region allowed to filter (maybe null)
    • setBiome

      public boolean setBiome(int x, int y, int z, @Nonnull BiomeType biome)
      Specified by:
      setBiome in interface IChunkSet
      Specified by:
      setBiome in interface OutputExtent
    • setTile

      public boolean setTile(int x, int y, int z, @Nonnull CompoundTag tag)
      Specified by:
      setTile in interface IChunkSet
      Specified by:
      setTile in interface OutputExtent
    • setEntity

      public void setEntity(@Nonnull CompoundTag tag)
      Specified by:
      setEntity in interface IChunkSet
    • removeEntity

      public void removeEntity(@Nonnull UUID uuid)
      Specified by:
      removeEntity in interface IChunkSet
    • getEntityRemoves

      @Nullable public Set<UUID> getEntityRemoves()
      Specified by:
      getEntityRemoves in interface IChunkSet
    • getSkyLight

      public int getSkyLight(int x, int y, int z)
      Specified by:
      getSkyLight in interface IChunkGet
      Specified by:
      getSkyLight in interface InputExtent
    • getLight

      @Nonnull public char[][] getLight()
      Specified by:
      getLight in interface IChunkSet
    • getSkyLight

      @Nonnull public char[][] getSkyLight()
      Specified by:
      getSkyLight in interface IChunkSet
    • hasBiomes

      public boolean hasBiomes(int layer)
      Description copied from interface: IChunkSet
      If the given layer has biomes stored to be set to the world. Can be negative
      Specified by:
      hasBiomes in interface IChunkSet
      Parameters:
      layer - layer to check
      Returns:
      if the layer has biomes stored to be set to the world
    • getHeightMap

      @Nonnull public int[] getHeightMap(@Nullable HeightMapType type)
      Specified by:
      getHeightMap in interface IChunkGet
      Specified by:
      getHeightMap in interface InputExtent
    • getEmittedLight

      public int getEmittedLight(int x, int y, int z)
      Specified by:
      getEmittedLight in interface IChunkGet
      Specified by:
      getEmittedLight in interface InputExtent
    • setSkyLight

      public void setSkyLight(int x, int y, int z, int value)
      Specified by:
      setSkyLight in interface IChunkSet
      Specified by:
      setSkyLight in interface OutputExtent
    • setHeightMap

      public void setHeightMap(@Nullable HeightMapType type, @Nullable int[] heightMap)
      Specified by:
      setHeightMap in interface IChunkSet
      Specified by:
      setHeightMap in interface OutputExtent
    • fullySupports3DBiomes

      public boolean fullySupports3DBiomes()
      Description copied from interface: OutputExtent
      Check if this extent fully supports 3D biomes.

      If false, the extent only visually reads biomes from y = 0. The biomes will still be set in 3D, but the client will only see the one at y = 0. It is up to the caller to determine if they want to set that biome instead, or simply warn the actor.

      Specified by:
      fullySupports3DBiomes in interface OutputExtent
      Returns:
      if the extent fully supports 3D biomes
    • setBlockLight

      public void setBlockLight(int x, int y, int z, int value)
      Specified by:
      setBlockLight in interface IChunkSet
      Specified by:
      setBlockLight in interface OutputExtent
    • setFullBright

      public void setFullBright(int layer)
      Specified by:
      setFullBright in interface IChunkSet
    • removeSectionLighting

      public void removeSectionLighting(int layer, boolean sky)
      Specified by:
      removeSectionLighting in interface IBlocks
    • setSkyLightLayer

      public void setSkyLightLayer(int layer, @Nullable char[] toSet)
      Specified by:
      setSkyLightLayer in interface IChunkSet
    • setLightLayer

      public void setLightLayer(int layer, @Nullable char[] toSet)
      Specified by:
      setLightLayer in interface IChunkSet
    • getBiomes

      @Nullable public BiomeType[][] getBiomes()
      Description copied from interface: IChunkSet
      This will return only biomes SET to the EXTENT or QUEUE. This will NOT return the current biomes in the world. This is used for history purposes.
      Specified by:
      getBiomes in interface IChunkSet
      Returns:
      Array of biomes set
    • setBlock

      public <T extends BlockStateHolder<T>> boolean setBlock(int x, int y, int z, T holder)
      Specified by:
      setBlock in interface IChunkSet
      Specified by:
      setBlock in interface OutputExtent
    • setBlocks

      public void setBlocks(int layer, @Nonnull char[] data)
      Specified by:
      setBlocks in interface IChunkSet
    • getBiomeType

      @Nullable public BiomeType getBiomeType(int x, int y, int z)
      Specified by:
      getBiomeType in interface IBlocks
      Specified by:
      getBiomeType in interface IChunkGet
      Specified by:
      getBiomeType in interface InputExtent
    • hasSection

      public boolean hasSection(int layer)
      Description copied from interface: IBlocks
      Returns if the chunk has a BLOCKS section at the given layer. May not be indicative of presence of entities, tile entites, biomes, etc.
      Specified by:
      hasSection in interface IBlocks
      Parameters:
      layer - chunk section layer
      Returns:
      if blocks/a block section is present
    • getBlock

      @Nonnull public BlockState getBlock(int x, int y, int z)
      Specified by:
      getBlock in interface IBlocks
      Specified by:
      getBlock in interface IChunkGet
      Specified by:
      getBlock in interface InputExtent
    • getFullBlock

      @Nonnull public BaseBlock getFullBlock(int x, int y, int z)
      Specified by:
      getFullBlock in interface IChunkGet
      Specified by:
      getFullBlock in interface InputExtent
    • getTiles

      @Nonnull public Map<BlockVector3,CompoundTag> getTiles()
      Specified by:
      getTiles in interface IBlocks
    • getTile

      @Nullable public CompoundTag getTile(int x, int y, int z)
      Specified by:
      getTile in interface IBlocks
      Specified by:
      getTile in interface ITileInput
    • getEntities

      @Nonnull public Set<CompoundTag> getEntities()
      Specified by:
      getEntities in interface IBlocks
    • load

      @Nullable public char[] load(int layer)
      Description copied from interface: IBlocks
      Obtain the specified chunk section stored as an array of ordinals. Uses normal minecraft chunk-section position indices (length 4096). Operations synchronises on the section and will load the section into memory if not present. For chunk GET operations, this will load the data from the world. For chunk SET, this will create a new empty array.
      Specified by:
      load in interface IBlocks
      Parameters:
      layer - chunk section layer (may be negative)
      Returns:
      char array of ordinals of the chunk section
    • loadIfPresent

      @Nullable public char[] loadIfPresent(int layer)
      Description copied from interface: IBlocks
      Obtain the specified chunk section stored as an array of ordinals if present or null. Uses normal minecraft chunk-section position indices (length 4096). Does not synchronise to the section layer as it will not attempt to load into memory.
      Specified by:
      loadIfPresent in interface IBlocks
      Parameters:
      layer - chunk section layer (may be negative)
      Returns:
      char array of ordinals of the chunk section if present
    • getEntity

      @Nullable public CompoundTag getEntity(@Nonnull UUID uuid)
      Specified by:
      getEntity in interface IChunkGet
    • setCreateCopy

      public void setCreateCopy(boolean createCopy)
      Specified by:
      setCreateCopy in interface IChunkGet
    • isCreateCopy

      public boolean isCreateCopy()
      Specified by:
      isCreateCopy in interface IChunkGet
    • setLightingToGet

      public void setLightingToGet(char[][] lighting, int minSectionPosition, int maxSectionPosition)
      Description copied from interface: IChunkGet
      Flush the block lighting array (section*blocks) to the chunk GET between the given section indices. Negative allowed.
      Specified by:
      setLightingToGet in interface IChunkGet
      Parameters:
      lighting - lighting array
      minSectionPosition - lowest section index
      maxSectionPosition - highest section index
    • setSkyLightingToGet

      public void setSkyLightingToGet(char[][] lighting, int minSectionPosition, int maxSectionPosition)
      Description copied from interface: IChunkGet
      Flush the sky lighting array (section*blocks) to the chunk GET between the given section indices. Negative allowed.
      Specified by:
      setSkyLightingToGet in interface IChunkGet
      Parameters:
      lighting - sky lighting array
      minSectionPosition - lowest section index
      maxSectionPosition - highest section index
    • setHeightmapToGet

      public void setHeightmapToGet(HeightMapType type, int[] data)
      Specified by:
      setHeightmapToGet in interface IChunkGet
    • getMaxY

      public int getMaxY()
      Description copied from interface: IChunkGet
      Max y value for the chunk's world (inclusive)
      Specified by:
      getMaxY in interface IChunkGet
    • getMinY

      public int getMinY()
      Description copied from interface: IChunkGet
      Min y value for the chunk's world (inclusive)
      Specified by:
      getMinY in interface IChunkGet
    • getMaxSectionPosition

      public int getMaxSectionPosition()
      Description copied from interface: IBlocks
      Get the highest layer position stored in the internal chunk. For 1.16 and below, always returns 15. For 1.17 and above, may not return a value correct to the world if this is a IChunkSet instance, which defaults to 15. For extended height worlds, this will only return over 15 if blocks are stored outside the default range.
      Specified by:
      getMaxSectionPosition in interface IBlocks
    • getMinSectionPosition

      public int getMinSectionPosition()
      Description copied from interface: IBlocks
      Get the lowest layer position stored in the internal chunk. For 1.16 and below, always returns 0. For 1.17 and above, may not return a value correct to the world if this is a IChunkSet instance, which defaults to 0. For extended height worlds, this will only return under 0 if blocks are stored outside the default range.
      Specified by:
      getMinSectionPosition in interface IBlocks
    • call

      @Nullable public <T extends Future<T>> T call(@Nullable IChunkSet set, @Nullable Runnable finalize)
      Specified by:
      call in interface IChunkGet
    • trim

      public boolean trim(boolean aggressive)
      Description copied from interface: Trimable
      Trims the object, reducing its memory footprint.
      Specified by:
      trim in interface Trimable
      Parameters:
      aggressive - if trimming should be aggressive e.g., Not returning early when the first element cannot be trimmed
      Returns:
      if this object is empty at the end of the trim, and can therefore be deleted
    • trim

      public boolean trim(boolean aggressive, int layer)
      Specified by:
      trim in interface IBlocks
    • getSectionCount

      public int getSectionCount()
      Description copied from interface: IBlocks
      Get the number of stored sections
      Specified by:
      getSectionCount in interface IBlocks