DensityReturnType class

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

Файл: com/hypixel/hytale/builtin/hytalegenerator/density/positions/returntypes/DensityReturnType.java

extends: ReturnType

Поля (13)

МодификаторыТипИмя
var1
double var11
double var13
double var15
double var18
double var22
var22
int var24
var3
int var6
double var9
var9
var9

Методы (5)

МодификаторыВозвратСигнатура
for for(double[] var17 : this.delimiters)
if if(var6 != null && this.calculateDistanceFromWall)
if if(var7 == null)
if if(var6 == null)
if if(var22 >= var17[0] && var22 < var17[1])

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.Density;
class="kw">import com.hypixel.hytale.math.Range;
class="kw">import java.util.Map;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;

class="kw">public class DensityReturnType class="kw">extends ReturnType {
   @Nonnull
   class="kw">private class="kw">final Density choiceDensity;
   class="kw">private class="kw">final double defaultValue;
   @Nonnull
   class="kw">private class="kw">final double[][] delimiters;
   @Nonnull
   class="kw">private class="kw">final Density[] sampleDensities;
   class="kw">private class="kw">final boolean calculateDistanceFromWall;
   @Nonnull
   class="kw">private class="kw">final Vector3d rScaledSamplePointClone;
   @Nonnull
   class="kw">private class="kw">final Density.Context rChildContext;
   @Nonnull
   class="kw">private class="kw">final Density.Context rChoiceContext;

   class="kw">public DensityReturnType(@Nonnull Density var1, @Nonnull Map<Range, Density> var2, boolean var3, double var4) {
      this.choiceDensity = var1;
      this.defaultValue = var4;
      this.calculateDistanceFromWall = var3;
      this.delimiters = new double[var2.size()][2];
      this.sampleDensities = new Density[var2.size()];
      int var6 = 0;

      for (Entry var8 : var2.entrySet()) {
         this.delimiters[var6][0] = var8.getKey().getMin();
         this.delimiters[var6][1] = var8.getKey().getMax();
         this.sampleDensities[var6] = var8.getValue();
         var6++;
      }

      this.rScaledSamplePointClone = new Vector3d();
      this.rChildContext = new Density.Context();
      this.rChoiceContext = new Density.Context();
   }

   @Override
   class="kw">public double get(double var1, double var3, @Nonnull Vector3d var5, @Nullable Vector3d var6, @Nullable Vector3d var7, @Nullable Density.Context var8) {
      double var9 = Double.MAX_VALUE;
      if (var6 != null && this.calculateDistanceFromWall) {
         var1 = this.rScaledSamplePointClone.set(var5).sub(var6).length();
         double var11 = Math.abs(super.maxDistance - var1);
         if (var7 == null) {
            var9 = var11;
         } else {
            var3 = this.rScaledSamplePointClone.set(var5).sub(var7).length();
            double var13 = var3 / this.maxDistance;
            double var15 = Math.abs(var3 - var1) / 2.0;
            var9 = var15;
         }
      }

      double var22 = this.defaultValue;
      if (var6 == null) {
         class="kw">return this.defaultValue;
      }

      this.rChoiceContext.assign(var8);
      this.rChoiceContext.position = var6;
      var22 = this.choiceDensity.process(this.rChoiceContext);
      this.rChoiceContext.clearReferences();
      int var24 = 0;

      for (double[] var17 : this.delimiters) {
         if (var22 >= var17[0] && var22 < var17[1]) {
            this.rChildContext.assign(var8);
            this.rChildContext.densityAnchor = var6;
            this.rChildContext.distanceFromCellWall = var9;
            double var18 = this.sampleDensities[var24].process(this.rChildContext);
            this.rChildContext.clearReferences();
            class="kw">return var18;
         }

         var24++;
      }

      class="kw">return this.defaultValue;
   }
}