Class DynamicChunk
- All Implemented Interfaces:
Block.Getter
,Block.Setter
,Snapshotable
,Taggable
,TagReadable
,TagWritable
,Tickable
,Viewable
,Biome.Getter
,Biome.Setter
Chunk
which store each individual block in memory.
WARNING: not thread-safe.
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.minestom.server.instance.block.Block.Getter
Block.Getter.Condition
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap<Block>
protected final it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap<Block>
Fields inherited from class net.minestom.server.instance.Chunk
CHUNK_SECTION_SIZE, CHUNK_SIZE_X, CHUNK_SIZE_Z, chunkX, chunkZ, columnarSpace, instance, loaded, maxSection, minSection
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription@NotNull Chunk
Creates a copy of this chunk, including blocks state id, custom block id, biomes, update data.@NotNull Biome
getBiome
(int x, int y, int z) @Nullable Block
getBlock
(int x, int y, int z, @NotNull Block.Getter.Condition condition) long
Gets the last time that this chunk changed.@NotNull Section
getSection
(int section) void
reset()
Resets the chunk, this means clearing all the data making it empty.void
void
Sends the chunk data toplayer
.void
void
Sets a block at a position.void
tick
(long time) Executes a chunk tick.@NotNull ChunkSnapshot
updateSnapshot
(@NotNull SnapshotUpdater updater) Updates the currently cached snapshot if required.Methods inherited from class net.minestom.server.instance.Chunk
addViewer, getChunkX, getChunkZ, getIdentifier, getInstance, getMaxSection, getMinSection, getSectionAt, getViewers, isLoaded, isReadOnly, removeViewer, setColumnarSpace, setReadOnly, shouldGenerate, tagHandler, toPosition, toString, unload
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.minestom.server.world.biomes.Biome.Getter
getBiome
Methods inherited from interface net.minestom.server.world.biomes.Biome.Setter
setBiome
Methods inherited from interface net.minestom.server.instance.block.Block.Getter
getBlock, getBlock, getBlock
Methods inherited from interface net.minestom.server.instance.block.Block.Setter
setBlock
Methods inherited from interface net.minestom.server.Viewable
getViewersAsAudience, getViewersAsAudiences, isViewer, sendPacketsToViewers, sendPacketsToViewers, sendPacketToViewers, sendPacketToViewersAndSelf
-
Field Details
-
entries
-
tickableMap
-
-
Constructor Details
-
DynamicChunk
-
-
Method Details
-
setBlock
Description copied from class:Chunk
Sets a block at a position.This is used when the previous block has to be destroyed/replaced, meaning that it clears the previous data and update method.
WARNING: this method is not thread-safe (in order to bring performance improvement with
batches
) The thread-safe version isBlock.Setter.setBlock(int, int, int, Block)
(or any similar instance methods) Otherwise, you can simply do not forget to have this chunk synchronized when this is called.- Specified by:
setBlock
in interfaceBlock.Setter
- Specified by:
setBlock
in classChunk
- Parameters:
x
- the block Xy
- the block Yz
- the block Zblock
- the block to place
-
setBiome
-
getSections
- Specified by:
getSections
in classChunk
-
getSection
- Specified by:
getSection
in classChunk
-
tick
public void tick(long time) Description copied from class:Chunk
Executes a chunk tick.Should be used to update all the blocks in the chunk.
WARNING: this method doesn't necessary have to be thread-safe, proceed with caution.
-
getBlock
@Nullable public @Nullable Block getBlock(int x, int y, int z, @NotNull @NotNull Block.Getter.Condition condition) -
getBiome
-
getLastChangeTime
public long getLastChangeTime()Description copied from class:Chunk
Gets the last time that this chunk changed."Change" means here data used in
ChunkDataPacket
. It is necessary to see if the cached version of this chunk can be used instead of re writing and compressing everything.- Specified by:
getLastChangeTime
in classChunk
- Returns:
- the last change time in milliseconds
-
sendChunk
Description copied from class:Chunk
Sends the chunk data toplayer
. -
sendChunk
public void sendChunk() -
copy
Description copied from class:Chunk
Creates a copy of this chunk, including blocks state id, custom block id, biomes, update data.The chunk position (X/Z) can be modified using the given arguments.
-
reset
public void reset()Description copied from class:Chunk
Resets the chunk, this means clearing all the data making it empty. -
updateSnapshot
Description copied from interface:Snapshotable
Updates the currently cached snapshot if required. The updater can be used to retrieve references to other snapshots while avoiding circular dependency. Be careful to do not storeupdater
anywhere as its data will change when building requested references.This method is not thread-safe, and targeted at internal use since its execution rely on safe-points (e.g. end of ticks)
- Parameters:
updater
- the snapshot updater/context- Returns:
- the updated snapshot
-