BasicWorldStructureAsset class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.assets.worldstructures.basic
Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/worldstructures/basic/BasicWorldStructureAsset.java
extends: WorldStructureAsset
Поля (18)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
String |
BIOMES_KEY |
|
DoubleRange |
var14 |
|
BiomeAsset |
var15 |
|
Biome |
var16 |
|
|
var16 |
|
|
var16 |
|
HashMap |
var17 |
|
BiomeAsset |
var18 |
|
Biome |
var19 |
|
ReferenceBundle |
var2 |
|
Density |
var20 |
|
int |
var21 |
|
PositionProvider |
var22 |
|
BiomeAsset |
var6 |
|
Registry |
var7 |
|
BiomeAsset |
var7 |
|
int |
var8 |
|
SimpleNoiseCarta |
var9 |
Методы (9)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
return new |
WorldStructurereturn new WorldStructure(var9, var7, var21, this.maxBiomeEdgeDistance, var22) |
|
|
for for(FrameworkAsset var6 : this.frameworkAssets) |
|
|
for for(BiomeRangeAsset var13 : this.biomeRangeAssets) |
|
|
for for(FrameworkAsset var4 : this.frameworkAssets) |
|
|
for for(BiomeRangeAsset var5 : this.biomeRangeAssets) |
|
|
if if(var18 == null) |
|
|
if if(var15 == null) |
|
|
if if(var7 != null) |
|
|
if if(var6 != null) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.assets.worldstructures.basic;
class="kw">import com.hypixel.hytale.assetstore.codec.ContainedAssetCodec;
class="kw">import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.LoggerUtil;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.Registry;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.biomes.BiomeAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.density.ConstantDensityAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.density.DensityAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.framework.FrameworkAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.positionproviders.ListPositionProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.positionproviders.PositionProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.worldstructures.WorldStructureAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.biome.Biome;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.cartas.SimpleNoiseCarta;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.Density;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.positionproviders.PositionProvider;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.rangemaps.DoubleRange;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.referencebundle.ReferenceBundle;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.worldstructure.WorldStructure;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import java.util.HashMap;
class="kw">import javax.annotation.Nonnull;
class="kw">public class BasicWorldStructureAsset class="kw">extends WorldStructureAsset {
class="kw">public class="kw">static class="kw">final String BIOMES_KEY = "Biomes";
class="kw">public class="kw">static class="kw">final String DEFAULT_BIOME_KEY = "DefaultBiome";
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<BasicWorldStructureAsset> CODEC = BuilderCodec.builder(
BasicWorldStructureAsset.class, BasicWorldStructureAsset::new, WorldStructureAsset.ABSTRACT_CODEC
)
.append(
new KeyedCodec<>("Biomes", new ArrayCodec<>(BiomeRangeAsset.CODEC, BiomeRangeAsset[]::new), true),
(var0, var1) -> var0.biomeRangeAssets = var1,
var0 -> var0.biomeRangeAssets
)
.add()
.append(new KeyedCodec<>("Density", DensityAsset.CODEC, true), (var0, var1) -> var0.densityAsset = var1, var0 -> var0.densityAsset)
.add()
.<String>append(
new KeyedCodec<>("DefaultBiome", new ContainedAssetCodec<>(BiomeAsset.class, BiomeAsset.CODEC), true),
(var0, var1) -> var0.defaultBiomeId = var1,
var0 -> var0.defaultBiomeId
)
.addValidatorLate(() -> BiomeAsset.VALIDATOR_CACHE.getValidator().late())
.add()
.<Integer>append(
new KeyedCodec<>("DefaultTransitionDistance", Codec.INTEGER, true),
(var0, var1) -> var0.biomeTransitionDistance = var1,
var0 -> var0.biomeTransitionDistance
)
.addValidator(Validators.greaterThan(0))
.add()
.<Integer>append(
new KeyedCodec<>("MaxBiomeEdgeDistance", Codec.INTEGER, true), (var0, var1) -> var0.maxBiomeEdgeDistance = var1, var0 -> var0.maxBiomeEdgeDistance
)
.addValidator(Validators.greaterThanOrEqual(0))
.add()
.append(
new KeyedCodec<>("Framework", new ArrayCodec<>(FrameworkAsset.CODEC, FrameworkAsset[]::new), false),
(var0, var1) -> var0.frameworkAssets = var1,
var0 -> var0.frameworkAssets
)
.add()
.append(
new KeyedCodec<>("SpawnPositions", PositionProviderAsset.CODEC, false),
(var0, var1) -> var0.spawnPositionsAsset = var1,
var0 -> var0.spawnPositionsAsset
)
.add()
.build();
class="kw">private BiomeRangeAsset[] biomeRangeAssets = new BiomeRangeAsset[0];
class="kw">private int biomeTransitionDistance = 32;
class="kw">private int maxBiomeEdgeDistance = 0;
class="kw">private DensityAsset densityAsset = new ConstantDensityAsset();
class="kw">private String defaultBiomeId = "";
class="kw">private FrameworkAsset[] frameworkAssets = new FrameworkAsset[0];
class="kw">private PositionProviderAsset spawnPositionsAsset = ListPositionProviderAsset.INSTANCE;
class="kw">public BasicWorldStructureAsset() {
}
@Nonnull
@Override
class="kw">public WorldStructure build(@Nonnull WorldStructureAsset.Argument var1) {
ReferenceBundle var2 = new ReferenceBundle();
for (FrameworkAsset var6 : this.frameworkAssets) {
var6.build(var1, var2);
}
HashMap var17 = new HashMap<>();
BiomeAsset var18 = (BiomeAsset)((DefaultAssetMap)BiomeAsset.getAssetStore().getAssetMap()).getAsset(this.defaultBiomeId);
if (var18 == null) {
LoggerUtil.getLogger().warning("Reverting to empty WorldStructure because couldn't find class="kw">default Biome asset with id: " + this.defaultBiomeId);
class="kw">return WorldStructure.DEFAULT_INSTANCE;
}
Biome var19 = var18.build(var1.materialCache, var1.parentSeed, var2, var1.workerId, var1.threadBridge);
var17.put(var18, var19);
Density var20 = this.densityAsset.build(DensityAsset.from(var1, var2));
Registry var7 = new Registry<>();
int var8 = var7.getIdOrRegister(var19);
SimpleNoiseCarta var9 = new SimpleNoiseCarta<>(var20, var8);
for (BiomeRangeAsset var13 : this.biomeRangeAssets) {
DoubleRange var14 = var13.getRange();
BiomeAsset var15 = var13.getBiomeAsset();
if (var15 == null) {
LoggerUtil.getLogger().warning("Couldn't find Biome asset with name " + var13.getBiomeAssetId());
} else {
Biome var16;
if (var17.containsKey(var15)) {
var16 = var17.get(var15);
} else {
var16 = var15.build(var1.materialCache, var1.parentSeed, var2, var1.workerId, var1.threadBridge);
var17.put(var15, var16);
}
var9.put(var14, var7.getIdOrRegister(var16));
}
}
int var21 = Math.max(1, this.biomeTransitionDistance);
PositionProvider var22 = this.spawnPositionsAsset.build(new PositionProviderAsset.Argument(var1.parentSeed, var2, var1.workerId, var1.threadBridge));
class="kw">return new WorldStructure(var9, var7, var21, this.maxBiomeEdgeDistance, var22);
}
@Nonnull
@Override
class="kw">public PositionProviderAsset getSpawnPositionsAsset() {
class="kw">return this.spawnPositionsAsset;
}
@Override
class="kw">public void cleanUp() {
this.densityAsset.cleanUp();
for (FrameworkAsset var4 : this.frameworkAssets) {
var4.cleanUp();
}
BiomeAsset var7 = (BiomeAsset)((DefaultAssetMap)BiomeAsset.getAssetStore().getAssetMap()).getAsset(this.defaultBiomeId);
if (var7 != null) {
var7.cleanUp();
}
for (BiomeRangeAsset var5 : this.biomeRangeAssets) {
BiomeAsset var6 = var5.getBiomeAsset();
if (var6 != null) {
var6.cleanUp();
}
}
this.spawnPositionsAsset.cleanUp();
}
}