ChunkGeneratorResource class

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

Файл: com/hypixel/hytale/server/worldgen/ChunkGeneratorResource.java

Методы (2)

МодификаторыВозвратСигнатура
public void initvoid init(ChunkGenerator var1)
public void releasevoid release()

Исходный код

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

class="kw">import com.hypixel.hytale.math.util.FastRandom;
class="kw">import com.hypixel.hytale.procedurallib.logic.ResultBuffer;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.buffer.impl.IPrefabBuffer;
class="kw">import com.hypixel.hytale.server.worldgen.cache.CoordinateCache;
class="kw">import com.hypixel.hytale.server.worldgen.cache.ExtendedCoordinateCache;
class="kw">import com.hypixel.hytale.server.worldgen.cave.CaveType;
class="kw">import com.hypixel.hytale.server.worldgen.chunk.BlockPriorityChunk;
class="kw">import com.hypixel.hytale.server.worldgen.chunk.ChunkGenerator;
class="kw">import com.hypixel.hytale.server.worldgen.chunk.ZoneBiomeResult;
class="kw">import com.hypixel.hytale.server.worldgen.chunk.populator.PrefabPopulator;
class="kw">import com.hypixel.hytale.server.worldgen.climate.ClimateNoise;
class="kw">import com.hypixel.hytale.server.worldgen.loader.WorldGenPrefabLoader;
class="kw">import com.hypixel.hytale.server.worldgen.loader.WorldGenPrefabSupplier;
class="kw">import com.hypixel.hytale.server.worldgen.prefab.PrefabPasteUtil;
class="kw">import com.hypixel.hytale.server.worldgen.util.cache.TimeoutCache;
class="kw">import com.hypixel.hytale.server.worldgen.zone.ZoneGeneratorResult;
class="kw">import it.unimi.dsi.fastutil.ints.IntArrayList;
class="kw">import it.unimi.dsi.fastutil.ints.IntList;
class="kw">import java.util.Random;
class="kw">import java.util.concurrent.TimeUnit;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector2d;

class="kw">public class ChunkGeneratorResource {
   @Nonnull
   class="kw">public class="kw">final Random random;
   @Nonnull
   class="kw">public class="kw">final Random random2;
   @Nonnull
   class="kw">public class="kw">final IntList coverArray;
   class="kw">public class="kw">final TimeoutCache<WorldGenPrefabSupplier, IPrefabBuffer> prefabs = new TimeoutCache<>(30L, TimeUnit.SECONDS, this::getPrefab, (var0, var1) -> {});
   @Nonnull
   class="kw">public class="kw">final BlockPriorityChunk priorityChunk;
   @Nonnull
   class="kw">public class="kw">final CoordinateCache.CoordinateKey cacheCoordinateKey;
   @Nonnull
   class="kw">public class="kw">final ExtendedCoordinateCache.ExtendedCoordinateKey<CaveType> cacheCaveCoordinateKey;
   @Nonnull
   class="kw">public class="kw">final ResultBuffer.Bounds2d bounds2d;
   @Nonnull
   class="kw">public class="kw">final ResultBuffer.ResultBuffer2d resultBuffer2d;
   @Nonnull
   class="kw">public class="kw">final ResultBuffer.ResultBuffer3d resultBuffer3d;
   @Nonnull
   class="kw">public class="kw">final PrefabPasteUtil.PrefabPasteBuffer prefabBuffer;
   @Nonnull
   class="kw">public class="kw">final ZoneBiomeResult zoneBiomeResult;
   class="kw">public class="kw">final ClimateNoise.Buffer climateBuffer = new ClimateNoise.Buffer();
   class="kw">public class="kw">final PrefabPopulator prefabPopulator = new PrefabPopulator();
   class="kw">public class="kw">final WorldGenPrefabLoader.PrefabPathCollector prefabCollector = new WorldGenPrefabLoader.PrefabPathCollector();
   @Nonnull
   class="kw">public class="kw">final Vector2d cacheVector2d;
   class="kw">protected ChunkGenerator chunkGenerator;

   class="kw">public ChunkGeneratorResource() {
      this.random = new FastRandom(0L);
      this.random2 = new FastRandom(0L);
      this.priorityChunk = new BlockPriorityChunk();
      this.coverArray = new IntArrayList(5);
      this.cacheVector2d = new Vector2d();
      this.cacheCoordinateKey = new CoordinateCache.CoordinateKey();
      this.cacheCaveCoordinateKey = new ExtendedCoordinateCache.ExtendedCoordinateKey<>();
      this.bounds2d = new ResultBuffer.Bounds2d();
      this.resultBuffer2d = new ResultBuffer.ResultBuffer2d();
      this.resultBuffer3d = new ResultBuffer.ResultBuffer3d();
      this.prefabBuffer = new PrefabPasteUtil.PrefabPasteBuffer();
      this.zoneBiomeResult = new ZoneBiomeResult();
      this.zoneBiomeResult.setZoneResult(new ZoneGeneratorResult());
   }

   class="kw">public void init(ChunkGenerator var1) {
      this.chunkGenerator = var1;
   }

   class="kw">public void release() {
      this.prefabs.shutdown();
   }

   @Nonnull
   class="kw">public Random getRandom() {
      class="kw">return this.random;
   }

   @Nonnull
   class="kw">protected IPrefabBuffer getPrefab(WorldGenPrefabSupplier var1) {
      class="kw">return this.chunkGenerator.getPrefabLoadingCache().getPrefabAccessor(var1);
   }
}