BranchNoiseJsonLoader class

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

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

extends: AbstractCellJitterJsonLoader<T, BranchNoise>

Поля (57)

МодификаторыТипИмя
double DEFAULT_JITTER
CellType DEFAULT_LINE_CELL_TYPE
BranchEvaluator.Direction DEFAULT_LINE_DIRECTION
double DEFAULT_LINE_SCALE
double DEFAULT_LINE_THICKNESS
CellType DEFAULT_PARENT_CELL_TYPE
DistanceCalculationMode DEFAULT_PARENT_DISTANCE_CAL_MODE
DistanceNoise.Distance2Mode DEFAULT_PARENT_DISTANCE_TYPE
double DEFAULT_PARENT_FADE
NoiseFormulaProperty.NoiseFormula DEFAULT_PARENT_FORMULA
double DEFAULT_PARENT_VALUE
String KEY_LINE_DIRECTION_MODE
String KEY_LINE_JITTER
String KEY_LINE_JITTER_X
String KEY_LINE_JITTER_Y
String KEY_LINE_SCALE
String KEY_LINE_THICKNESS
String KEY_LINE_TYPE
String KEY_PARENT_DENSITY
String KEY_PARENT_DISTANCE_CALCULATION_MODE
String KEY_PARENT_DISTANCE_TYPE
String KEY_PARENT_FADE
String KEY_PARENT_FORMULA
String KEY_PARENT_JITTER
String KEY_PARENT_JITTER_X
String KEY_PARENT_JITTER_Y
String KEY_PARENT_TYPE
String KEY_PARENT_VALUE
protected final SeedResource seedResource
SeedResource var1
double var1
IIntCondition var1
var1
NoiseFormulaProperty.NoiseFormula.Formula var10
CellType var11
CellJitter var11
CellPointFunction var12
BranchEvaluator.Direction var12
double var13
IDoubleRange var15
CellDistanceFunction var16
PointEvaluator var17
CellType var2
IDoubleCondition var2
CellDistanceFunction var3
double var3
PointEvaluator var4
double var5
double var5
double var5
IDoubleRange var7
CellJitter var7
double var7
IIntCondition var8
DistanceCalculationMode var8
DistanceNoise.Distance2Function var9
double var9

Методы (15)

МодификаторыВозвратСигнатура
abstract return new BranchEvaluatorreturn new BranchEvaluator(var1, var2, var12, var11, var3)
public LoadedBranchNoisepublic LoadedBranchNoise(CellDistanceFunction var1, PointEvaluator var2, double var3, IDoubleRange var5, IIntCondition var6, DistanceNoise.Distance2Function var7, NoiseFormulaProperty.NoiseFormula.Formula var8, CellDistanceFunction var9, PointEvaluator var10, double var11, IDoubleRange var13, SeedResource var14)
protected double loadDoubledouble loadDouble(String var1, double var2)
protected <E extends Enum<E>> E loadEnum<E extends Enum<E>> E loadEnum(String var1, @Nonnull Function<String, E> var2, E var3)
protected CellType loadLineCellTypeCellType loadLineCellType()
protected CellType loadParentCellTypeCellType loadParentCellType()
protected DistanceNoise.Distance2Function loadParentDistance2FunctionDistanceNoise.Distance2Function loadParentDistance2Function()
protected PointEvaluator loadParentEvaluatorPointEvaluator loadParentEvaluator()
protected NoiseFormulaProperty.NoiseFormula.Formula loadParentFormulaNoiseFormulaProperty.NoiseFormula.Formula loadParentFormula()
protected ResultBuffer.ResultBuffer2d localBuffer2dprotected ResultBuffer.ResultBuffer2d localBuffer2d()
abstract super super(var1, var2, var3)
abstract super super(var1, var2, var3, var5, var6, var7, var8, var9, var10, var11, var13)
return switchreturn switch(var0)
return switchreturn switch(var0)
public String toStringpublic String toString()

Исходный код

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

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.procedurallib.condition.ConstantIntCondition;
class="kw">import com.hypixel.hytale.procedurallib.condition.IDoubleCondition;
class="kw">import com.hypixel.hytale.procedurallib.condition.IIntCondition;
class="kw">import com.hypixel.hytale.procedurallib.logic.BranchNoise;
class="kw">import com.hypixel.hytale.procedurallib.logic.DistanceNoise;
class="kw">import com.hypixel.hytale.procedurallib.logic.ResultBuffer;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.CellDistanceFunction;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.CellPointFunction;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.CellType;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.DistanceCalculationMode;
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.evaluator.BranchEvaluator;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.evaluator.DensityPointEvaluator;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.evaluator.PointEvaluator;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.jitter.CellJitter;
class="kw">import com.hypixel.hytale.procedurallib.property.NoiseFormulaProperty;
class="kw">import com.hypixel.hytale.procedurallib.supplier.DoubleRange;
class="kw">import com.hypixel.hytale.procedurallib.supplier.IDoubleRange;
class="kw">import java.nio.file.Path;
class="kw">import java.util.function.Function;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class BranchNoiseJsonLoader<T class="kw">extends SeedResource> class="kw">extends AbstractCellJitterJsonLoader<T, BranchNoise> {
   class="kw">public BranchNoiseJsonLoader(SeedString<T> var1, Path var2, JsonElement var3) {
      super(var1, var2, var3);
   }

   @Nonnull
   class="kw">public BranchNoise load() {
      SeedResource var1 = this.seed.get();
      CellType var2 = this.loadParentCellType();
      CellDistanceFunction var3 = getCellDistanceFunction(var2);
      PointEvaluator var4 = this.loadParentEvaluator();
      double var5 = this.loadDouble("ParentValue", 0.0);
      IDoubleRange var7 = this.loadRange("ParentFade", 0.0);
      IIntCondition var8 = this.loadParentDensity();
      DistanceNoise.Distance2Function var9 = this.loadParentDistance2Function();
      NoiseFormulaProperty.NoiseFormula.Formula var10 = this.loadParentFormula();
      CellType var11 = this.loadLineCellType();
      CellPointFunction var12 = getCellPointFunction(var11);
      double var13 = this.loadDouble("LineScale", 0.1);
      IDoubleRange var15 = this.loadRange("LineThickness", 0.1);
      CellDistanceFunction var16 = getCellDistanceFunction(var11);
      PointEvaluator var17 = this.loadLineEvaluator(var3, var12, var13);
      class="kw">return new BranchNoiseJsonLoader.LoadedBranchNoise(var3, var4, var5, var7, var8, var9, var10, var16, var17, var13, var15, var1);
   }

   class="kw">protected CellType loadParentCellType() {
      class="kw">return this.loadEnum("ParentType", CellType::valueOf, BranchNoiseJsonLoader.Constant.DEFAULT_PARENT_CELL_TYPE);
   }

   class="kw">protected CellType loadLineCellType() {
      class="kw">return this.loadEnum("LineType", CellType::valueOf, BranchNoiseJsonLoader.Constant.DEFAULT_LINE_CELL_TYPE);
   }

   class="kw">protected PointEvaluator loadParentEvaluator() {
      double var1 = this.loadDouble("ParentJitter", 1.0);
      double var3 = this.loadDouble("ParentJitterX", var1);
      double var5 = this.loadDouble("ParentJitterY", var1);
      CellJitter var7 = CellJitter.of(var3, var5, 1.0);
      DistanceCalculationMode var8 = this.loadEnum(
         "ParentDistanceMode", DistanceCalculationMode::valueOf, BranchNoiseJsonLoader.Constant.DEFAULT_PARENT_DISTANCE_CAL_MODE
      );
      class="kw">return PointEvaluator.of(var8.getFunction(), null, null, var7);
   }

   @Nonnull
   class="kw">protected IIntCondition loadParentDensity() {
      IIntCondition var1 = ConstantIntCondition.DEFAULT_TRUE;
      if (this.has("ParentDensity")) {
         IDoubleCondition var2 = new DoubleConditionJsonLoader<>(this.seed, this.dataFolder, this.get("ParentDensity")).load();
         var1 = DensityPointEvaluator.getDensityCondition(var2);
      }

      class="kw">return var1;
   }

   class="kw">protected DistanceNoise.Distance2Function loadParentDistance2Function() {
      class="kw">return this.loadEnum("ParentDistanceType", DistanceNoise.Distance2Mode::valueOf, BranchNoiseJsonLoader.Constant.DEFAULT_PARENT_DISTANCE_TYPE)
         .getFunction();
   }

   class="kw">protected NoiseFormulaProperty.NoiseFormula.Formula loadParentFormula() {
      class="kw">return this.loadEnum("ParentFormula", NoiseFormulaProperty.NoiseFormula::valueOf, BranchNoiseJsonLoader.Constant.DEFAULT_PARENT_FORMULA).getFormula();
   }

   @Nonnull
   class="kw">protected PointEvaluator loadLineEvaluator(@Nonnull CellDistanceFunction var1, @Nonnull CellPointFunction var2, double var3) {
      double var5 = this.loadDouble("LineJitter", 1.0);
      double var7 = this.loadDouble("LineJitterX", var5);
      double var9 = this.loadDouble("LineJitterY", var5);
      CellJitter var11 = CellJitter.of(var7, var9, 1.0);
      BranchEvaluator.Direction var12 = this.loadEnum(
         "LineDirection", BranchEvaluator.Direction::valueOf, BranchNoiseJsonLoader.Constant.DEFAULT_LINE_DIRECTION
      );
      class="kw">return new BranchEvaluator(var1, var2, var12, var11, var3);
   }

   class="kw">protected double loadDouble(String var1, double var2) {
      class="kw">return !this.has(var1) ? var2 : this.get(var1).getAsDouble();
   }

   @Nullable
   class="kw">protected IDoubleRange loadRange(String var1, double var2) {
      class="kw">return !this.has(var1) ? new DoubleRange.Constant(var2) : new DoubleRangeJsonLoader<>(this.seed, this.dataFolder, this.get(var1)).load();
   }

   class="kw">protected <E class="kw">extends Enum<E>> E loadEnum(String var1, @Nonnull Function<String, E> var2, E var3) {
      class="kw">return !this.has(var1) ? var3 : var2.apply(this.get(var1).getAsString());
   }

   @Nonnull
   class="kw">protected class="kw">static CellDistanceFunction getCellDistanceFunction(@Nonnull CellType var0) {
      class="kw">return class="kw">switch (var0) {
         case SQUARE -> GridCellDistanceFunction.DISTANCE_FUNCTION;
         case HEX -> HexCellDistanceFunction.DISTANCE_FUNCTION;
      };
   }

   @Nonnull
   class="kw">protected class="kw">static CellPointFunction getCellPointFunction(@Nonnull CellType var0) {
      class="kw">return class="kw">switch (var0) {
         case SQUARE -> GridCellDistanceFunction.POINT_FUNCTION;
         case HEX -> HexCellDistanceFunction.POINT_FUNCTION;
      };
   }

   class="kw">public class="kw">interface Constant {
      String KEY_PARENT_TYPE = "ParentType";
      String KEY_PARENT_DISTANCE_CALCULATION_MODE = "ParentDistanceMode";
      String KEY_PARENT_DISTANCE_TYPE = "ParentDistanceType";
      String KEY_PARENT_FORMULA = "ParentFormula";
      String KEY_PARENT_JITTER = "ParentJitter";
      String KEY_PARENT_JITTER_X = "ParentJitterX";
      String KEY_PARENT_JITTER_Y = "ParentJitterY";
      String KEY_PARENT_VALUE = "ParentValue";
      String KEY_PARENT_FADE = "ParentFade";
      String KEY_PARENT_DENSITY = "ParentDensity";
      String KEY_LINE_TYPE = "LineType";
      String KEY_LINE_DIRECTION_MODE = "LineDirection";
      String KEY_LINE_SCALE = "LineScale";
      String KEY_LINE_JITTER = "LineJitter";
      String KEY_LINE_JITTER_X = "LineJitterX";
      String KEY_LINE_JITTER_Y = "LineJitterY";
      String KEY_LINE_THICKNESS = "LineThickness";
      double DEFAULT_JITTER = 1.0;
      double DEFAULT_PARENT_VALUE = 0.0;
      double DEFAULT_PARENT_FADE = 0.0;
      double DEFAULT_LINE_SCALE = 0.1;
      double DEFAULT_LINE_THICKNESS = 0.1;
      CellType DEFAULT_PARENT_CELL_TYPE = CellType.SQUARE;
      CellType DEFAULT_LINE_CELL_TYPE = CellType.SQUARE;
      BranchEvaluator.Direction DEFAULT_LINE_DIRECTION = BranchEvaluator.Direction.OUTWARD;
      DistanceCalculationMode DEFAULT_PARENT_DISTANCE_CAL_MODE = DistanceCalculationMode.EUCLIDEAN;
      DistanceNoise.Distance2Mode DEFAULT_PARENT_DISTANCE_TYPE = DistanceNoise.Distance2Mode.DIV;
      NoiseFormulaProperty.NoiseFormula DEFAULT_PARENT_FORMULA = NoiseFormulaProperty.NoiseFormula.SQRT;
   }

   class="kw">protected class="kw">static class LoadedBranchNoise class="kw">extends BranchNoise {
      class="kw">protected class="kw">final SeedResource seedResource;

      class="kw">public LoadedBranchNoise(
         CellDistanceFunction var1,
         PointEvaluator var2,
         double var3,
         IDoubleRange var5,
         IIntCondition var6,
         DistanceNoise.Distance2Function var7,
         NoiseFormulaProperty.NoiseFormula.Formula var8,
         CellDistanceFunction var9,
         PointEvaluator var10,
         double var11,
         IDoubleRange var13,
         SeedResource var14
      ) {
         super(var1, var2, var3, var5, var6, var7, var8, var9, var10, var11, var13);
         this.seedResource = var14;
      }

      @Nonnull
      @Override
      class="kw">protected ResultBuffer.ResultBuffer2d localBuffer2d() {
         class="kw">return this.seedResource.localBuffer2d();
      }

      @Nonnull
      @Override
      class="kw">public String toString() {
         class="kw">return "LoadedBranchNoise{seedResource="
            + this.seedResource
            + ", parentFunction="
            + this.parentFunction
            + ", parentEvaluator="
            + this.parentEvaluator
            + ", parentValue="
            + this.parentValue
            + ", parentFade="
            + this.parentFade
            + ", distance2Function="
            + this.distance2Function
            + ", noiseFormula="
            + this.noiseFormula
            + ", lineFunction="
            + this.lineFunction
            + ", lineEvaluator="
            + this.lineEvaluator
            + ", lineScale="
            + this.lineScale
            + ", lineThickness="
            + this.lineThickness
            + "}";
      }
   }
}