ClimateMaskProvider class
Пакет: com.hypixel.hytale.server.worldgen.climate
Файл: com/hypixel/hytale/server/worldgen/climate/ClimateMaskProvider.java
extends: MaskProvider
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
FuzzyZoom |
EMPTY_ZOOM |
|
ClimateNoise.Buffer |
var5 |
|
int |
var6 |
|
ClimateNoise.Buffer |
var7 |
|
int |
var8 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
Zone.UniqueCandidate[] |
getUniqueZoneCandidatesZone.UniqueCandidate[] getUniqueZoneCandidates(Map<String, Zone> var1) |
|
|
if if(var6 != -1) |
abstract |
|
super super(EMPTY_ZOOM) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.climate;
class="kw">import com.hypixel.hytale.math.util.FastRandom;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.procedurallib.random.CoordinateRandomizer;
class="kw">import com.hypixel.hytale.procedurallib.random.ICoordinateRandomizer;
class="kw">import com.hypixel.hytale.server.worldgen.chunk.ChunkGenerator;
class="kw">import com.hypixel.hytale.server.worldgen.chunk.MaskProvider;
class="kw">import com.hypixel.hytale.server.worldgen.zone.Zone;
class="kw">import com.hypixel.hytale.server.worldgen.zoom.ExactZoom;
class="kw">import com.hypixel.hytale.server.worldgen.zoom.FuzzyZoom;
class="kw">import com.hypixel.hytale.server.worldgen.zoom.PixelProvider;
class="kw">import java.awt.image.BufferedImage;
class="kw">import java.util.List;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;
class="kw">public class ClimateMaskProvider class="kw">extends MaskProvider {
class="kw">private class="kw">static class="kw">final FuzzyZoom EMPTY_ZOOM = new FuzzyZoom(
CoordinateRandomizer.EMPTY_RANDOMIZER, new ExactZoom(new PixelProvider(new BufferedImage(1, 1, 1)), 1.0, 1.0, 0, 0)
);
@Nonnull
class="kw">private class="kw">final ICoordinateRandomizer randomizer;
@Nonnull
class="kw">private class="kw">final ClimateNoise noise;
@Nonnull
class="kw">private class="kw">final ClimateGraph graph;
@Nonnull
class="kw">private class="kw">final UniqueClimateGenerator uniqueGenerator;
class="kw">public ClimateMaskProvider(@Nonnull ICoordinateRandomizer var1, @Nonnull ClimateNoise var2, @Nonnull ClimateGraph var3, @Nonnull UniqueClimateGenerator var4) {
super(EMPTY_ZOOM);
this.randomizer = var1;
this.noise = var2;
this.graph = var3;
this.uniqueGenerator = var4;
}
class="kw">private ClimateMaskProvider(@Nonnull ClimateMaskProvider var1, @Nonnull UniqueClimateGenerator var2) {
super(EMPTY_ZOOM);
this.randomizer = var1.randomizer;
this.noise = var1.noise;
this.graph = var1.graph;
this.uniqueGenerator = var2;
}
@Nonnull
class="kw">public ClimateGraph getGraph() {
class="kw">return this.graph;
}
@Override
class="kw">public boolean inBounds(double var1, double var3) {
class="kw">return true;
}
@Override
class="kw">public double getX(int var1, double var2, double var4) {
class="kw">return this.randomizer.randomDoubleX(var1, var2, var4);
}
@Override
class="kw">public double getY(int var1, double var2, double var4) {
class="kw">return this.randomizer.randomDoubleY(var1, var2, var4);
}
@Override
class="kw">public int get(int var1, double var2, double var4) {
int var6 = this.uniqueGenerator.generate(MathUtil.floor(var2), MathUtil.floor(var4));
if (var6 != -1) {
class="kw">return var6;
}
ClimateNoise.Buffer var7 = ChunkGenerator.getResource().climateBuffer;
int var8 = this.noise.generate(var1, var2, var4, var7, this.graph);
class="kw">return ClimateType.color(var8, this.graph);
}
@Override
class="kw">public double distance(double var1, double var3) {
ClimateNoise.Buffer var5 = ChunkGenerator.getResource().climateBuffer;
class="kw">return var5.fade;
}
@Override
class="kw">public MaskProvider generateUniqueZones(int var1, @Nonnull Zone.UniqueCandidate[] var2, @Nonnull FastRandom var3, @Nonnull List<Zone.Unique> var4) {
class="kw">return var2.length == 0 ? this : new ClimateMaskProvider(this, this.uniqueGenerator.apply(var1, var2, this.noise, this.graph, var4));
}
@Override
class="kw">public Zone.UniqueCandidate[] generateUniqueZoneCandidates(Zone.UniqueEntry[] var1, int var2) {
class="kw">return Zone.UniqueCandidate.EMPTY_ARRAY;
}
class="kw">public Zone.UniqueCandidate[] getUniqueZoneCandidates(Map<String, Zone> var1) {
class="kw">return this.uniqueGenerator.getCandidates(var1);
}
}