BiomeTransitionUtil class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.biometransitionutils
Файл: com/hypixel/hytale/builtin/hytalegenerator/biometransitionutils/BiomeTransitionUtil.java
Поля (13)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
double |
ORIGIN_REACH |
|
double |
var10 |
|
BiomeDistanceStage.BiomeDistanceEntry |
var13 |
|
BiomeWeights.Entry |
var14 |
|
double |
var15 |
|
BiomeWeights.Entry |
var17 |
|
double |
var19 |
|
double |
var4 |
|
BiomeWeights |
var6 |
|
int |
var7 |
|
|
var7 |
|
double |
var8 |
|
|
var8 |
Методы (6)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
double |
areaUnderCircleCurvedouble areaUnderCircleCurve(double var0) |
static |
double |
areaUnderCircleCurvedouble areaUnderCircleCurve(double var0, double var2, double var4) |
|
|
for for(BiomeWeights.Entry var20 : var6.entries) |
abstract |
|
for for(int var12 = 0; var12 < var0.entries.size() |
|
|
if if(var0 < 0.0) |
|
|
if if(var13.biomeId == var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.biometransitionutils;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.engine.stages.BiomeDistanceStage;
class="kw">import javax.annotation.Nonnull;
class="kw">public class BiomeTransitionUtil {
class="kw">public class="kw">static class="kw">final double ORIGIN_REACH = 1.0;
class="kw">public class="kw">static class="kw">final double ORIGIN_REACH_HALF = 0.5;
class="kw">public class="kw">static class="kw">final double QUARTER_PI = Math.PI / 4;
class="kw">public BiomeTransitionUtil() {
}
class="kw">private class="kw">static double areaUnderCircleCurve(double var0) {
if (var0 < 0.0) {
class="kw">return 0.0;
} else {
class="kw">return var0 > 1.0 ? Math.PI / 4 : 0.5 * (var0 * Math.sqrt(1.0 - var0 * var0) + Math.asin(var0));
}
}
class="kw">private class="kw">static double areaUnderCircleCurve(double var0, double var2, double var4) {
assert var4 >= 0.0;
assert var0 <= var2;
var0 /= var4;
var2 /= var4;
class="kw">return var4 * var4 * (areaUnderCircleCurve(var2) - areaUnderCircleCurve(var0));
}
@Nonnull
class="kw">public class="kw">static BiomeWeights createWeights(@Nonnull BiomeDistanceStage.BiomeDistanceEntries var0, int var1, double var2) {
double var4 = var2 + 0.5;
BiomeWeights var6 = new BiomeWeights();
int var7 = 0;
double var8 = Double.MAX_VALUE;
double var10 = 0.0;
for (int var12 = 0; var12 < var0.entries.size(); var12++) {
BiomeDistanceStage.BiomeDistanceEntry var13 = var0.entries.get(var12);
BiomeWeights.Entry var14 = new BiomeWeights.Entry();
if (!(var13.distance_voxelGrid >= var2)) {
if (var13.biomeId == var1) {
var7 = var6.entries.size();
} else if (var13.distance_voxelGrid < var8) {
var8 = var13.distance_voxelGrid;
}
var14.biomeId = var13.biomeId;
var14.weight = (float)areaUnderCircleCurve(var13.distance_voxelGrid, var4, var4);
var6.entries.add(var14);
var10 += var14.weight;
}
}
if (var6.entries.size() > 0) {
BiomeWeights.Entry var17 = var6.entries.get(var7);
double var19 = 0.5 + var8;
double var15 = areaUnderCircleCurve(0.0, var19, var4);
var17.weight += (float)var15;
var10 += var15;
}
for (BiomeWeights.Entry var20 : var6.entries) {
var20.weight /= (float)var10;
}
class="kw">return var6;
}
}