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