PointEvaluatorJsonLoader class

Пакет: com.hypixel.hytale.procedurallib.json

Файл: com/hypixel/hytale/procedurallib/json/PointEvaluatorJsonLoader.java

extends: AbstractCellJitterJsonLoader<T, PointEvaluator>

Поля (6)

МодификаторыТипИмя
BorderPointEvaluator var1
DistanceCalculationMode var1
var1
IDoubleThreshold var1
String var1
CellJitter var2

Методы (10)

МодификаторыВозвратСигнатура
abstract return new DoubleThresholdConditionreturn new DoubleThresholdCondition(var1)
if if(this.pointDistanceFunction != null)
public PointEvaluator loadPointEvaluator load()
public PointEvaluator loadCentrePointEvaluatorPointEvaluator loadCentrePointEvaluator()
public PointDistanceFunction loadPointDistanceFunctionPointDistanceFunction loadPointDistanceFunction()
public int loadSkipCountint loadSkipCount()
public SkipCellPointEvaluator.Mode loadSkipModeSkipCellPointEvaluator.Mode loadSkipMode()
return switchreturn switch(this.measurementMode)
abstract this this(var1, var2, var3, null)
abstract this this(var1, var2, var3, MeasurementMode.CENTRE_DISTANCE, var4)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.procedurallib.json;

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.procedurallib.condition.DoubleThresholdCondition;
class="kw">import com.hypixel.hytale.procedurallib.condition.IDoubleCondition;
class="kw">import com.hypixel.hytale.procedurallib.condition.IDoubleThreshold;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.DistanceCalculationMode;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.MeasurementMode;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.PointDistanceFunction;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.evaluator.BorderPointEvaluator;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.evaluator.JitterPointEvaluator;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.evaluator.PointEvaluator;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.evaluator.SkipCellPointEvaluator;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.jitter.CellJitter;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.jitter.DefaultCellJitter;
class="kw">import com.hypixel.hytale.procedurallib.supplier.IDoubleRange;
class="kw">import java.nio.file.Path;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class PointEvaluatorJsonLoader<T class="kw">extends SeedResource> class="kw">extends AbstractCellJitterJsonLoader<T, PointEvaluator> {
   @Nonnull
   class="kw">protected class="kw">final MeasurementMode measurementMode;
   class="kw">protected class="kw">final PointDistanceFunction pointDistanceFunction;

   class="kw">public PointEvaluatorJsonLoader(@Nonnull SeedString<T> var1, Path var2, JsonElement var3) {
      this(var1, var2, var3, null);
   }

   class="kw">public PointEvaluatorJsonLoader(@Nonnull SeedString<T> var1, Path var2, JsonElement var3, @Nullable PointDistanceFunction var4) {
      this(var1, var2, var3, MeasurementMode.CENTRE_DISTANCE, var4);
   }

   class="kw">public PointEvaluatorJsonLoader(
      @Nonnull SeedString<T> var1, Path var2, JsonElement var3, @Nonnull MeasurementMode var4, @Nullable PointDistanceFunction var5
   ) {
      super(var1.append(".PointEvaluator"), var2, var3);
      this.measurementMode = var4;
      this.pointDistanceFunction = var5;
   }

   class="kw">public PointEvaluator load() {
      class="kw">return class="kw">switch (this.measurementMode) {
         case CENTRE_DISTANCE -> this.loadCentrePointEvaluator();
         case BORDER_DISTANCE -> this.loadBorderPointEvaluator();
      };
   }

   class="kw">public PointEvaluator loadCentrePointEvaluator() {
      class="kw">return PointEvaluator.of(
         this.loadPointDistanceFunction(), this.loadDensity(), this.loadDistanceRange(), this.loadSkipCount(), this.loadSkipMode(), this.loadJitter()
      );
   }

   @Nonnull
   class="kw">public PointEvaluator loadBorderPointEvaluator() {
      BorderPointEvaluator var1 = BorderPointEvaluator.INSTANCE;
      CellJitter var2 = this.loadJitter();
      class="kw">return var2 == DefaultCellJitter.DEFAULT_ONE ? var1 : new JitterPointEvaluator(var1, var2);
   }

   class="kw">public PointDistanceFunction loadPointDistanceFunction() {
      if (this.pointDistanceFunction != null) {
         class="kw">return this.pointDistanceFunction;
      }

      DistanceCalculationMode var1 = CellNoiseJsonLoader.Constants.DEFAULT_DISTANCE_MODE;
      if (this.has("DistanceMode")) {
         var1 = DistanceCalculationMode.valueOf(this.get("DistanceMode").getAsString());
      }

      class="kw">return var1.getFunction();
   }

   @Nullable
   class="kw">public IDoubleRange loadDistanceRange() {
      class="kw">return !this.has("DistanceRange") ? null : new DoubleRangeJsonLoader<>(this.seed, this.dataFolder, this.get("DistanceRange")).load();
   }

   @Nullable
   class="kw">public IDoubleCondition loadDensity() {
      if (!this.has("Density")) {
         class="kw">return null;
      }

      IDoubleThreshold var1 = new DoubleThresholdJsonLoader<>(this.seed, this.dataFolder, this.get("Density")).load();
      class="kw">return new DoubleThresholdCondition(var1);
   }

   class="kw">public int loadSkipCount() {
      class="kw">return this.mustGetNumber("Skip", 0).intValue();
   }

   class="kw">public SkipCellPointEvaluator.Mode loadSkipMode() {
      String var1 = this.mustGetString("SkipMode", SkipCellPointEvaluator.DEFAULT_MODE.name());
      class="kw">return SkipCellPointEvaluator.Mode.valueOf(var1);
   }
}