classpublicabstractPriority 3
BufferChunkLoader
com.hypixel.hytale.server.core.universe.world.storage.BufferChunkLoader
implements IChunkLoader
3
Methods
3
Public Methods
1
Fields
1
Constructors
Constructors
public
BufferChunkLoader(Store<ChunkStore> store)Methods
Public Methods (3)
public
Store<ChunkStore> getStore()@Nonnull
public
CompletableFuture<ByteBuffer> loadBuffer(int var1, int var2)public
CompletableFuture<Holder<ChunkStore>> loadHolder(int x, int z)@Nonnull@Override
Fields
Private/Package Fields (1)
private
Store<ChunkStore> storeInheritance
Parent
Current
Interface
Child
Use mouse wheel to zoom, drag to pan. Click nodes to navigate.
Related Classes
Source Code
package com.hypixel.hytale.server.core.universe.world.storage;
import com.hypixel.hytale.component.Holder;
import com.hypixel.hytale.component.Store;
import com.hypixel.hytale.server.core.universe.world.chunk.WorldChunk;
import com.hypixel.hytale.server.core.util.BsonUtil;
import java.nio.ByteBuffer;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import javax.annotation.Nonnull;
import org.bson.BsonDocument;
public abstract class BufferChunkLoader implements IChunkLoader {
@Nonnull
private final Store<ChunkStore> store;
public BufferChunkLoader(@Nonnull Store<ChunkStore> store) {
Objects.requireNonNull(store);
this.store = store;
}
@Nonnull
public Store<ChunkStore> getStore() {
return this.store;
}
public abstract CompletableFuture<ByteBuffer> loadBuffer(int var1, int var2);
@Nonnull
@Override
public CompletableFuture<Holder<ChunkStore>> loadHolder(int x, int z) {
return this.loadBuffer(x, z).thenApplyAsync(buffer -> {
if (buffer == null) {
return null;
} else {
BsonDocument bsonDocument = BsonUtil.readFromBuffer(buffer);
Holder<ChunkStore> holder = ChunkStore.REGISTRY.deserialize(bsonDocument);
WorldChunk worldChunkComponent = holder.getComponent(WorldChunk.getComponentType());
assert worldChunkComponent != null;
worldChunkComponent.loadFromHolder(this.store.getExternalData().getWorld(), x, z, holder);
return holder;
}
});
}
}