BufferChunkLoader class
Пакет: com.hypixel.hytale.server.core.universe.world.storage
Файл: com/hypixel/hytale/server/core/universe/world/storage/BufferChunkLoader.java
implements: IChunkLoader
Поля (6)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Holder |
var10 |
|
BsonDocument |
var4 |
|
Holder |
var5 |
|
WorldChunk |
var6 |
|
ChunkColumn |
var7 |
|
Holder[] |
var8 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var9 = 0; var9 < var8.length; var9++) |
|
|
if if(var3 == null) |
|
|
if if(var10 != null) |
abstract abstract |
CompletableFuture<ByteBuffer> |
loadBufferCompletableFuture<ByteBuffer> loadBuffer(int var1, int var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.storage;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.ChunkColumn;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.WorldChunk;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.ChunkSection;
class="kw">import com.hypixel.hytale.server.core.util.BsonUtil;
class="kw">import java.nio.ByteBuffer;
class="kw">import java.util.Objects;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.bson.BsonDocument;
class="kw">public class="kw">abstract class BufferChunkLoader class="kw">implements IChunkLoader {
@Nonnull
class="kw">private class="kw">final Store<ChunkStore> store;
class="kw">public BufferChunkLoader(@Nonnull Store<ChunkStore> var1) {
Objects.requireNonNull(var1);
this.store = var1;
}
@Nonnull
class="kw">public Store<ChunkStore> getStore() {
class="kw">return this.store;
}
class="kw">public class="kw">abstract CompletableFuture<ByteBuffer> loadBuffer(int var1, int var2);
@Nonnull
@Override
class="kw">public CompletableFuture<Holder<ChunkStore>> loadHolder(int var1, int var2) {
class="kw">return this.loadBuffer(var1, var2).thenApplyAsync(var3 -> {
if (var3 == null) {
class="kw">return null;
}
BsonDocument var4 = BsonUtil.readFromBuffer(var3);
Holder var5 = ChunkStore.REGISTRY.deserialize(var4);
WorldChunk var6 = var5.getComponent(WorldChunk.getComponentType());
assert var6 != null;
ChunkColumn var7 = var5.getComponent(ChunkColumn.getComponentType());
if (var7 != null && var7.getSectionHolders() != null) {
Holder[] var8 = var7.getSectionHolders();
for (int var9 = 0; var9 < var8.length; var9++) {
Holder var10 = var8[var9];
if (var10 != null) {
var10.putComponent(ChunkSection.getComponentType(), new ChunkSection(null, var1, var9, var2, false));
}
}
}
var6.loadFromHolder(this.store.getExternalData().getWorld(), var1, var2, var5);
class="kw">return var5;
});
}
}