WorldNPCSpawn class
Пакет: com.hypixel.hytale.server.spawning.assets.spawns.config
Файл: com/hypixel/hytale/server/spawning/assets/spawns/config/WorldNPCSpawn.java
extends: NPCSpawn
implements: JsonAssetWithMap<String, IndexedLookupTableAssetMap<String, WorldNPCSpawn>>
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
ASSET_MAP |
final |
AssetBuilderCodec<String, WorldNPCSpawn> |
CODEC |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
IndexedLookupTableAssetMap<String, WorldNPCSpawn> |
getAssetMapIndexedLookupTableAssetMap<String, WorldNPCSpawn> getAssetMap() |
public |
double[] |
getMoonPhaseWeightModifiersdouble[] getMoonPhaseWeightModifiers() |
|
|
if if(ASSET_MAP == null) |
abstract |
|
super super(var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.spawning.assets.spawns.config;
class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.assetstore.codec.AssetBuilderCodec;
class="kw">import com.hypixel.hytale.assetstore.map.IndexedLookupTableAssetMap;
class="kw">import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.codec.validation.validator.DoubleArrayValidator;
class="kw">import com.hypixel.hytale.server.core.asset.type.environment.config.Environment;
class="kw">import java.util.Arrays;
class="kw">import javax.annotation.Nonnull;
class="kw">public class WorldNPCSpawn class="kw">extends NPCSpawn class="kw">implements JsonAssetWithMap<String, IndexedLookupTableAssetMap<String, WorldNPCSpawn>> {
class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, WorldNPCSpawn> CODEC = AssetBuilderCodec.<String, WorldNPCSpawn>builder(
WorldNPCSpawn.class,
WorldNPCSpawn::new,
NPCSpawn.BASE_CODEC,
Codec.STRING,
(var0, var1) -> var0.id = var1,
var0 -> var0.id,
(var0, var1) -> var0.data = var1,
var0 -> var0.data
)
.documentation("A spawning configuration used to spawn NPCs around the world.")
.<String[]>appendInherited(
new KeyedCodec<>("Environments", Codec.STRING_ARRAY),
(var0, var1) -> var0.environments = var1,
var0 -> var0.environments,
(var0, var1) -> var0.environments = var1.environments
)
.documentation(
"A required list of environments that this configuration covers. Each combination of environment and NPC in this configuration should be unique."
)
.addValidator(Validators.nonEmptyArray())
.addValidator(Validators.uniqueInArray())
.addValidator(Environment.VALIDATOR_CACHE.getArrayValidator())
.add()
.<double[]>appendInherited(
new KeyedCodec<>("MoonPhaseWeightModifiers", Codec.DOUBLE_ARRAY),
(var0, var1) -> var0.moonPhaseWeightModifiers = var1,
var0 -> var0.moonPhaseWeightModifiers,
(var0, var1) -> var0.moonPhaseWeightModifiers = var1.moonPhaseWeightModifiers
)
.documentation(
"An array of modifiers which will be multiplied into the weights for each NPC in this config dependent on the current moon phase.\n\nAt present, Hytale has **5** moon phases, with day 0 being a full moon which gradually wanes up to day 4 which is a new moon. These are represented in the array indices.\n\nEach modifier can only be between 0 and 2, where 0 means the NPC will not spawn at all, 1 will use the standard weight, and 2 will result in twice the spawns\n\ne.g. `[ 0, 0, 0.5, 1, 2 ]` would result in NPCs that do not spawn during day 0 and day 1 (full moon and three quarters), would spawn half as much on day 2, the defined amount on day 3, and twice as many on day 4 (new moon)."
)
.addValidator(new DoubleArrayValidator(Validators.range(0.0, 2.0)))
.add()
.build();
class="kw">private class="kw">static IndexedLookupTableAssetMap<String, WorldNPCSpawn> ASSET_MAP;
class="kw">protected double[] moonPhaseWeightModifiers;
class="kw">public class="kw">static IndexedLookupTableAssetMap<String, WorldNPCSpawn> getAssetMap() {
if (ASSET_MAP == null) {
ASSET_MAP = (IndexedLookupTableAssetMap<String, WorldNPCSpawn>)AssetRegistry.getAssetStore(WorldNPCSpawn.class).getAssetMap();
}
class="kw">return ASSET_MAP;
}
class="kw">public WorldNPCSpawn(String var1) {
super(var1);
}
class="kw">protected WorldNPCSpawn() {
}
@Override
class="kw">public String getId() {
class="kw">return this.id;
}
class="kw">public double[] getMoonPhaseWeightModifiers() {
class="kw">return this.moonPhaseWeightModifiers;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "WorldNPCSpawn{moonPhaseWeightModifiers=" + Arrays.toString(this.moonPhaseWeightModifiers) + "} " + super.toString();
}
}