Handle class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.plugin

Файл: com/hypixel/hytale/builtin/hytalegenerator/plugin/Handle.java

implements: IWorldGen

Поля (8)

МодификаторыТипИмя
var1
var1
ChunkRequest.GeneratorProfile var2
int var3
List var4
Transform[] var5
ChunkRequest.Arguments var8
ChunkRequest var9

Методы (3)

МодификаторыВозвратСигнатура
abstract for for(int var6 = 0; var6 < var4.size()
if if(this.seedOverride != null)
if if(this.seedOverride != null)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.engine.chunkgenerator.ChunkRequest;
class="kw">import com.hypixel.hytale.math.vector.Transform;
class="kw">import com.hypixel.hytale.server.core.universe.world.spawn.ISpawnProvider;
class="kw">import com.hypixel.hytale.server.core.universe.world.worldgen.GeneratedChunk;
class="kw">import com.hypixel.hytale.server.core.universe.world.worldgen.IWorldGen;
class="kw">import com.hypixel.hytale.server.core.universe.world.worldgen.WorldGenTimingsCollector;
class="kw">import it.unimi.dsi.fastutil.longs.Long2FloatFunction;
class="kw">import java.util.List;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import java.util.function.LongPredicate;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3dc;

class="kw">public class Handle class="kw">implements IWorldGen {
   @Nonnull
   class="kw">private class="kw">final HytaleGenerator plugin;
   @Nonnull
   class="kw">private class="kw">final ChunkRequest.GeneratorProfile profile;
   @Nullable
   class="kw">private class="kw">final String seedOverride;

   class="kw">public Handle(@Nonnull HytaleGenerator var1, @Nonnull ChunkRequest.GeneratorProfile var2, @Nullable String var3) {
      this.plugin = var1;
      this.profile = var2;
      this.seedOverride = var3;
   }

   @Nonnull
   @Override
   class="kw">public CompletableFuture<GeneratedChunk> generate(int var1, long var2, int var4, int var5, LongPredicate var6, Long2FloatFunction var7) {
      ChunkRequest.Arguments var8 = new ChunkRequest.Arguments(var1, var2, var4, var5, var6, var7);
      if (this.seedOverride != null) {
         var1 = this.seedOverride.hashCode();
      }

      this.profile.setSeed(var1);
      ChunkRequest var9 = new ChunkRequest(this.profile, var8);
      class="kw">return this.plugin.submitChunkRequest(var9);
   }

   @Nonnull
   class="kw">public ChunkRequest.GeneratorProfile getGeneratorProfile() {
      class="kw">return this.profile;
   }

   @Nonnull
   @Override
   class="kw">public Transform[] getSpawnPoints(int var1) {
      ChunkRequest.GeneratorProfile var2 = this.profile.clone();
      if (this.seedOverride != null) {
         var1 = this.seedOverride.hashCode();
      }

      var2.setSeed(var1);
      int var3 = 1000000;
      List var4 = this.plugin.getSpawnPositions(var2, 1000000);
      Transform[] var5 = new Transform[var4.size()];

      for (int var6 = 0; var6 < var4.size(); var6++) {
         var5[var6] = new Transform((Vector3dc)var4.get(var6));
      }

      class="kw">return var4.isEmpty() ? new Transform[]{new Transform(0.0, 140.0, 0.0)} : var5;
   }

   @Nonnull
   @Override
   class="kw">public ISpawnProvider getDefaultSpawnProvider(int var1) {
      class="kw">return IWorldGen.super.getDefaultSpawnProvider(var1);
   }

   @Nullable
   @Override
   class="kw">public WorldGenTimingsCollector getTimings() {
      class="kw">return null;
   }

   @Override
   class="kw">public void shutdown() {
      this.plugin.shutdownHandle(this);
   }
}