PositionsCellNoiseDensityAsset class

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

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/density/positions/PositionsCellNoiseDensityAsset.java

extends: DensityAsset

Поля (3)

МодификаторыТипИмя
PositionProvider var2
ReturnType var3
DistanceFunction var4

Методы (2)

МодификаторыВозвратСигнатура
abstract return new ConstantValueDensityreturn new ConstantValueDensity(0.0)
abstract return new PositionsDensityreturn new PositionsDensity(var2, var3, var4, this.maxDistance)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.density.DensityAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.density.positions.distancefunctions.DistanceFunctionAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.density.positions.distancefunctions.EuclideanDistanceFunctionAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.density.positions.returntypes.CurveReturnTypeAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.density.positions.returntypes.ReturnTypeAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.positionproviders.ListPositionProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.positionproviders.PositionProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.ConstantValueDensity;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.Density;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.positions.PositionsDensity;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.positions.distancefunctions.DistanceFunction;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.positions.returntypes.ReturnType;
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 com.hypixel.hytale.codec.validation.Validators;
class="kw">import javax.annotation.Nonnull;

class="kw">public class PositionsCellNoiseDensityAsset class="kw">extends DensityAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<PositionsCellNoiseDensityAsset> CODEC = BuilderCodec.builder(
         PositionsCellNoiseDensityAsset.class, PositionsCellNoiseDensityAsset::new, DensityAsset.ABSTRACT_CODEC
      )
      .append(
         new KeyedCodec<>("Positions", PositionProviderAsset.CODEC, true),
         (var0, var1) -> var0.positionProviderAsset = var1,
         var0 -> var0.positionProviderAsset
      )
      .add()
      .append(new KeyedCodec<>("ReturnType", ReturnTypeAsset.CODEC, true), (var0, var1) -> var0.returnTypeAsset = var1, var0 -> var0.returnTypeAsset)
      .add()
      .append(
         new KeyedCodec<>("DistanceFunction", DistanceFunctionAsset.CODEC, true),
         (var0, var1) -> var0.distanceFunctionAsset = var1,
         var0 -> var0.distanceFunctionAsset
      )
      .add()
      .<Double>append(new KeyedCodec<>("MaxDistance", Codec.DOUBLE, true), (var0, var1) -> var0.maxDistance = var1, var0 -> var0.maxDistance)
      .addValidator(Validators.greaterThanOrEqual(0.0))
      .add()
      .build();
   class="kw">private PositionProviderAsset positionProviderAsset = ListPositionProviderAsset.INSTANCE;
   class="kw">private ReturnTypeAsset returnTypeAsset = new CurveReturnTypeAsset();
   class="kw">private DistanceFunctionAsset distanceFunctionAsset = new EuclideanDistanceFunctionAsset();
   class="kw">private double maxDistance = 0.0;

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

   @Nonnull
   @Override
   class="kw">public Density build(@Nonnull DensityAsset.Argument var1) {
      if (this.isSkipped()) {
         class="kw">return new ConstantValueDensity(0.0);
      }

      PositionProvider var2 = this.positionProviderAsset
         .build(new PositionProviderAsset.Argument(var1.parentSeed, var1.referenceBundle, var1.workerId, var1.threadBridge));
      ReturnType var3 = this.returnTypeAsset.build(var1.parentSeed, var1.referenceBundle, var1.workerId, var1.threadBridge);
      var3.setMaxDistance(this.maxDistance);
      DistanceFunction var4 = this.distanceFunctionAsset.build(var1.parentSeed, this.maxDistance);
      class="kw">return new PositionsDensity(var2, var3, var4, this.maxDistance);
   }

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