WorldGenPrefabSupplier class

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

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

implements: PrefabSupplier

Поля (10)

МодификаторыТипИмя
final WorldGenPrefabSupplier[] EMPTY_ARRAY
int var10
int var15
int var16
WorldGenPrefabSupplier var2
IPrefabBuffer var21
PrefabRotation var22
int var7
int var8
int var9

Методы (6)

МодификаторыВозвратСигнатура
public WorldGenPrefabLoader getLoaderWorldGenPrefabLoader getLoader()
public Path getPathPath getPath()
if if(this.prefabName == null)
if if(this.bounds == null)
if if(this == var1)
if if(var1 >= 10)

Исходный код

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

class="kw">import com.hypixel.hytale.server.core.prefab.PrefabRotation;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.buffer.PrefabLoader;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.buffer.PrefabSupplier;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.buffer.impl.IPrefabBuffer;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.buffer.impl.PrefabBuffer;
class="kw">import com.hypixel.hytale.server.worldgen.chunk.ChunkGenerator;
class="kw">import com.hypixel.hytale.server.worldgen.util.bounds.ChunkBounds;
class="kw">import com.hypixel.hytale.server.worldgen.util.bounds.IChunkBounds;
class="kw">import java.nio.file.Path;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class WorldGenPrefabSupplier class="kw">implements PrefabSupplier {
   class="kw">public class="kw">static class="kw">final WorldGenPrefabSupplier[] EMPTY_ARRAY = new WorldGenPrefabSupplier[0];
   class="kw">private class="kw">final WorldGenPrefabLoader loader;
   class="kw">private class="kw">final String prefabKey;
   class="kw">private class="kw">final Path path;
   class="kw">private String prefabName;
   @Nullable
   class="kw">private ChunkBounds bounds;

   class="kw">public WorldGenPrefabSupplier(WorldGenPrefabLoader var1, String var2, Path var3) {
      this.loader = var1;
      this.path = var3;
      this.bounds = null;
      this.prefabKey = var2;
   }

   class="kw">public WorldGenPrefabLoader getLoader() {
      class="kw">return this.loader;
   }

   @Nonnull
   class="kw">public String getName() {
      class="kw">return this.path.toString();
   }

   @Nonnull
   class="kw">public String getPrefabKey() {
      class="kw">return this.prefabKey;
   }

   @Nonnull
   class="kw">public String getPrefabName() {
      if (this.prefabName == null) {
         this.prefabName = PrefabLoader.resolveRelativeJsonPath(this.prefabKey, this.path, this.loader.getRootFolder());
      }

      class="kw">return this.prefabName;
   }

   class="kw">public Path getPath() {
      class="kw">return this.path;
   }

   @Nullable
   class="kw">public IPrefabBuffer get() {
      class="kw">return ChunkGenerator.getResource().prefabs.get(this);
   }

   @Nonnull
   class="kw">public IChunkBounds getBounds(@Nonnull IPrefabBuffer var1) {
      if (this.bounds == null) {
         this.bounds = this.getBounds(0, 0, 0, var1, PrefabRotation.ROTATION_0, new ChunkBounds());
      }

      class="kw">return this.bounds;
   }

   @Override
   class="kw">public boolean equals(@Nullable Object var1) {
      if (this == var1) {
         class="kw">return true;
      } else if (var1 != null && this.getClass() == var1.getClass()) {
         WorldGenPrefabSupplier var2 = (WorldGenPrefabSupplier)var1;
         class="kw">return this.path.equals(var2.path);
      } else {
         class="kw">return false;
      }
   }

   @Override
   class="kw">public int hashCode() {
      class="kw">return this.path.hashCode();
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "WorldGenPrefabSupplier{path=" + this.path + "}";
   }

   @Nonnull
   class="kw">private ChunkBounds getBounds(int var1, int var2, int var3, @Nonnull IPrefabBuffer var4, @Nonnull PrefabRotation var5, @Nonnull ChunkBounds var6) {
      if (var1 >= 10) {
         class="kw">return var6;
      }

      int var7 = var2 + var4.getMinX(var5);
      int var8 = var3 + var4.getMinZ(var5);
      int var9 = var2 + var4.getMaxX(var5);
      int var10 = var3 + var4.getMaxZ(var5);
      var6.include(var7, var8, var9, var10);

      for (PrefabBuffer.ChildPrefab var14 : var4.getChildPrefabs()) {
         int var15 = var2 + var5.getX(var14.getX(), var14.getZ());
         int var16 = var3 + var5.getZ(var14.getX(), var14.getZ());

         for (WorldGenPrefabSupplier var20 : this.loader.get(var14.getPath())) {
            IPrefabBuffer var21 = var20.get();
            PrefabRotation var22 = var5.add(var14.getRotation());
            this.getBounds(var1 + 1, var15, var16, var21, var22, var6);
         }
      }

      class="kw">return var6;
   }
}