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;
}
}