GraphPositionProviderAsset class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.assets.positionproviders

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/positionproviders/GraphPositionProviderAsset.java

extends: PositionProviderAsset

Поля (7)

МодификаторыТипИмя
Registry var2
GraphGeneratorAsset.Argument var3
GridCache var4
GraphGenerator var5
List var6
GraphContentAsset var8
PositionsContentAsset var9

Методы (3)

МодификаторыВозвратСигнатура
abstract return new GraphPositionProviderreturn new GraphPositionProvider(var5, var4, var6)
abstract for for(int var7 = 0; var7 < var2.size()
if if(var9 == null)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.assets.positionproviders;

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.GridCache;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.Registry;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.graph.GraphContentAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.graph.GraphGeneratorAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.graph.PositionsContentAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.graph.GraphGenerator;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.graph.GraphSpace;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.positionproviders.EmptyPositionProvider;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.positionproviders.GraphPositionProvider;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.positionproviders.PositionProvider;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import java.util.ArrayList;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;

class="kw">public class GraphPositionProviderAsset class="kw">extends PositionProviderAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<GraphPositionProviderAsset> CODEC = BuilderCodec.builder(
         GraphPositionProviderAsset.class, GraphPositionProviderAsset::new, PositionProviderAsset.ABSTRACT_CODEC
      )
      .append(
         new KeyedCodec<>("GraphGenerator", GraphGeneratorAsset.CODEC, true), (var0, var1) -> var0.graphGeneratorAsset = var1, var0 -> var0.graphGeneratorAsset
      )
      .add()
      .append(new KeyedCodec<>("ContentLayer", Codec.STRING, true), (var0, var1) -> var0.contentLayerName = var1, var0 -> var0.contentLayerName)
      .add()
      .build();
   @Nonnull
   class="kw">private GraphGeneratorAsset graphGeneratorAsset = GraphGeneratorAsset.EMPTY;
   @Nonnull
   class="kw">private String contentLayerName = "";

   class="kw">public GraphPositionProviderAsset() {
   }

   @Nonnull
   @Override
   class="kw">public PositionProvider build(@Nonnull PositionProviderAsset.Argument var1) {
      if (super.skip()) {
         class="kw">return EmptyPositionProvider.INSTANCE;
      }

      Registry var2 = new Registry<>();
      GraphGeneratorAsset.Argument var3 = new GraphGeneratorAsset.Argument(var1, var2);
      GridCache var4 = this.graphGeneratorAsset.buildSingleInstanceGrid(var3);
      GraphGenerator var5 = this.graphGeneratorAsset.buildGraphGenerator(var3);
      List var6 = new ArrayList<>(var2.size());

      for (int var7 = 0; var7 < var2.size(); var7++) {
         GraphContentAsset var8 = var2.getObject(var7);
         PositionsContentAsset var9 = var8.getPositionsContent(this.contentLayerName);
         if (var9 == null) {
            var6.add(GraphPositionProvider.PositionsContent.EMPTY);
         } else {
            var6.add(var9.build(var3));
         }
      }

      class="kw">return new GraphPositionProvider(var5, var4, var6);
   }

   @Override
   class="kw">public void cleanUp() {
      this.graphGeneratorAsset.cleanUp();
   }
}