BiomePatternGeneratorSizeModifierProvider class

Пакет: com.hypixel.hytale.server.worldgen.loader.biome

Файл: com/hypixel/hytale/server/worldgen/loader/biome/BiomePatternGeneratorJsonLoader.java

implements: BiomePatternGeneratorJsonLoader.ISizeModifierProvider

Поля (1)

МодификаторыТипИмя
private BiomePatternGenerator generator

Методы (3)

МодификаторыВозвратСигнатура
public double getpublic double get(int var1, int var2, int var3)
public BiomePatternGenerator getGeneratorpublic BiomePatternGenerator getGenerator()
public void setGeneratorpublic void setGenerator(BiomePatternGenerator var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.loader.biome;

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.common.map.IWeightedMap;
class="kw">import com.hypixel.hytale.procedurallib.json.JsonLoader;
class="kw">import com.hypixel.hytale.procedurallib.json.PointGeneratorJsonLoader;
class="kw">import com.hypixel.hytale.procedurallib.json.SeedString;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.PointDistanceFunction;
class="kw">import com.hypixel.hytale.procedurallib.logic.point.IPointGenerator;
class="kw">import com.hypixel.hytale.server.worldgen.SeedStringResource;
class="kw">import com.hypixel.hytale.server.worldgen.biome.BiomePatternGenerator;
class="kw">import com.hypixel.hytale.server.worldgen.biome.CustomBiome;
class="kw">import com.hypixel.hytale.server.worldgen.biome.TileBiome;
class="kw">import java.nio.file.Path;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class BiomePatternGeneratorJsonLoader class="kw">extends JsonLoader<SeedStringResource, BiomePatternGenerator> {
   class="kw">protected class="kw">final IWeightedMap<TileBiome> tileBiomes;
   class="kw">protected class="kw">final CustomBiome[] customBiomes;

   class="kw">public BiomePatternGeneratorJsonLoader(
      @Nonnull SeedString<SeedStringResource> var1, Path var2, JsonElement var3, IWeightedMap<TileBiome> var4, CustomBiome[] var5
   ) {
      super(var1.append(".BiomePatternGenerator"), var2, var3);
      this.tileBiomes = var4;
      this.customBiomes = var5;
   }

   @Nonnull
   class="kw">public BiomePatternGenerator load() {
      BiomePatternGeneratorJsonLoader.BiomePatternGeneratorSizeModifierProvider var1 = new BiomePatternGeneratorJsonLoader.BiomePatternGeneratorSizeModifierProvider();
      BiomePatternGenerator var2 = new BiomePatternGenerator(this.loadPointGenerator(var1), this.tileBiomes, this.customBiomes);
      var1.setGenerator(var2);
      class="kw">return var2;
   }

   @Nullable
   class="kw">protected IPointGenerator loadPointGenerator(class="kw">final BiomePatternGeneratorJsonLoader.ISizeModifierProvider var1) {
      class="kw">return (new PointGeneratorJsonLoader<SeedStringResource>(this.seed, this.dataFolder, this.get("GridGenerator")) {
         @Nonnull
         @Override
         class="kw">protected PointDistanceFunction loadPointDistanceFunction() {
            PointDistanceFunction var1x = super.loadPointDistanceFunction();
            class="kw">return new BiomePatternGeneratorJsonLoader.LoadedPointGeneratorDistanceFunction(var1, var1x);
         }
      }).load();
   }

   class="kw">protected class="kw">static class BiomePatternGeneratorSizeModifierProvider class="kw">implements BiomePatternGeneratorJsonLoader.ISizeModifierProvider {
      class="kw">private BiomePatternGenerator generator;

      class="kw">public BiomePatternGeneratorSizeModifierProvider() {
      }

      class="kw">public BiomePatternGeneratorSizeModifierProvider(BiomePatternGenerator var1) {
         this.generator = var1;
      }

      class="kw">public BiomePatternGenerator getGenerator() {
         class="kw">return this.generator;
      }

      class="kw">public void setGenerator(BiomePatternGenerator var1) {
         this.generator = var1;
      }

      @Override
      class="kw">public double get(int var1, int var2, int var3) {
         class="kw">return this.generator.getBiomeDirect(var1, var2, var3).getSizeModifier();
      }
   }

   class="kw">public class="kw">interface Constants {
      String KEY_GRID_GENERATOR = "GridGenerator";
   }

   class="kw">public class="kw">interface ISizeModifierProvider {
      double get(int var1, int var2, int var3);
   }

   class="kw">private class="kw">static class LoadedPointGeneratorDistanceFunction class="kw">implements PointDistanceFunction {
      class="kw">private class="kw">final BiomePatternGeneratorJsonLoader.ISizeModifierProvider sizeModifierProvider;
      class="kw">private class="kw">final PointDistanceFunction distanceFunction;

      class="kw">public LoadedPointGeneratorDistanceFunction(BiomePatternGeneratorJsonLoader.ISizeModifierProvider var1, PointDistanceFunction var2) {
         this.sizeModifierProvider = var1;
         this.distanceFunction = var2;
      }

      @Override
      class="kw">public double distance2D(double var1, double var3) {
         class="kw">return this.distanceFunction.distance2D(var1, var3);
      }

      @Override
      class="kw">public double distance3D(double var1, double var3, double var5) {
         class="kw">return this.distanceFunction.distance3D(var1, var3, var5);
      }

      @Override
      class="kw">public double distance2D(int var1, int var2, int var3, double var4, double var6, double var8, double var10) {
         class="kw">return this.distanceFunction.distance2D(var1, var2, var3, var4, var6, var8, var10) * this.sizeModifierProvider.get(var1, var2, var3);
      }

      @Override
      class="kw">public double distance3D(int var1, int var2, int var3, int var4, double var5, double var7, double var9, double var11, double var13, double var15) {
         class="kw">return this.distanceFunction.distance3D(var1, var2, var3, var4, var5, var7, var9, var11, var13, var15);
      }
   }
}