AngleEdgeSelectorAsset class

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

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/graph/edgeselectors/AngleEdgeSelectorAsset.java

extends: EdgeSelectorAsset

Поля (2)

МодификаторыТипИмя
VectorProvider var2
List var3

Методы (2)

МодификаторыВозвратСигнатура
abstract return new AngleEdgeSelectorreturn new AngleEdgeSelector(var2, var3)
for for(RangeDoubleAsset var7 : this.delimiterAssets)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.delimiters.RangeDoubleAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.graph.GraphGeneratorAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.vectorproviders.ConstantVectorProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.vectorproviders.VectorProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.delimiters.RangeDouble;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.graph.edgeselectors.AllEdgeSelector;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.graph.edgeselectors.AngleEdgeSelector;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.graph.edgeselectors.EdgeSelector;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.vectorproviders.VectorProvider;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import java.util.ArrayList;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;

class="kw">public class AngleEdgeSelectorAsset class="kw">extends EdgeSelectorAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<AngleEdgeSelectorAsset> CODEC = BuilderCodec.builder(
         AngleEdgeSelectorAsset.class, AngleEdgeSelectorAsset::new, EdgeSelectorAsset.ABSTRACT_CODEC
      )
      .append(
         new KeyedCodec<>("Reference", VectorProviderAsset.CODEC, true),
         (var0, var1) -> var0.referenceVectorProviderAsset = var1,
         var0 -> var0.referenceVectorProviderAsset
      )
      .add()
      .append(
         new KeyedCodec<>("Delimiters", new ArrayCodec<>(RangeDoubleAsset.CODEC, RangeDoubleAsset[]::new), true),
         (var0, var1) -> var0.delimiterAssets = var1,
         var0 -> var0.delimiterAssets
      )
      .add()
      .build();
   @Nonnull
   class="kw">private VectorProviderAsset referenceVectorProviderAsset = ConstantVectorProviderAsset.INSTANCE;
   @Nonnull
   class="kw">private RangeDoubleAsset[] delimiterAssets = new RangeDoubleAsset[0];

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

   @Nonnull
   @Override
   class="kw">public EdgeSelector build(@Nonnull GraphGeneratorAsset.Argument var1) {
      if (super.skip()) {
         class="kw">return AllEdgeSelector.INSTANCE;
      }

      VectorProvider var2 = this.referenceVectorProviderAsset.build(new VectorProviderAsset.Argument(var1));
      List var3 = new ArrayList<>(this.delimiterAssets.length);

      for (RangeDoubleAsset var7 : this.delimiterAssets) {
         var3.add(var7.build());
      }

      class="kw">return new AngleEdgeSelector(var2, var3);
   }

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