CellDistanceFunctionJsonLoader class

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

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

extends: JsonLoader<K, CellDistanceFunction>

Поля (4)

МодификаторыТипИмя
final MeasurementMode measurementMode
CellDistanceFunction var1
CellType var1
var1

Методы (3)

МодификаторыВозвратСигнатура
public CellDistanceFunction loadCellDistanceFunction load()
return switchreturn switch(this.measurementMode)
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.logic.cell.CellDistanceFunction;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.CellType;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.GridCellDistanceFunction;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.HexCellDistanceFunction;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.MeasurementMode;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.PointDistanceFunction;
class="kw">import java.nio.file.Path;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class CellDistanceFunctionJsonLoader<K class="kw">extends SeedResource> class="kw">extends JsonLoader<K, CellDistanceFunction> {
   class="kw">protected class="kw">final MeasurementMode measurementMode;
   class="kw">protected class="kw">final PointDistanceFunction pointDistanceFunction;

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

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

   class="kw">public CellDistanceFunction load() {
      CellDistanceFunction var1 = this.loadDistanceFunction();

      class="kw">return class="kw">switch (this.measurementMode) {
         case CENTRE_DISTANCE -> var1;
         case BORDER_DISTANCE -> new CellBorderDistanceFunctionJsonLoader<>(this.seed, this.dataFolder, this.json, var1).load();
      };
   }

   @Nonnull
   class="kw">protected CellType loadCellType() {
      CellType var1 = CellNoiseJsonLoader.Constants.DEFAULT_CELL_TYPE;
      if (this.has("CellType")) {
         var1 = CellType.valueOf(this.get("CellType").getAsString());
      }

      class="kw">return var1;
   }

   @Nonnull
   class="kw">protected CellDistanceFunction loadDistanceFunction() {
      class="kw">return class="kw">switch (this.loadCellType()) {
         case SQUARE -> GridCellDistanceFunction.DISTANCE_FUNCTION;
         case HEX -> HexCellDistanceFunction.DISTANCE_FUNCTION;
      };
   }
}