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