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;
      });
   }
}