WorldGenModifier class
Пакет: com.hypixel.hytale.builtin.worldgen.modifier
Файл: com/hypixel/hytale/builtin/worldgen/modifier/WorldGenModifier.java
implements: JsonAssetWithMap<String, DefaultAssetMap<String, WorldGenModifier>>
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<WorldGenModifier> |
CODEC |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(Content.Type var4 : Content.Type.VALUES) |
|
|
for for(Op var9 : var0.operations) |
public |
Op[] |
getOperationsOp[] getOperations(Content.Type var1) |
static |
void |
initvoid init(WorldGenModifier var0) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.worldgen.modifier;
class="kw">import com.hypixel.hytale.assetstore.AssetExtraInfo;
class="kw">import com.hypixel.hytale.assetstore.codec.AssetBuilderCodec;
class="kw">import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
class="kw">import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;
class="kw">import com.hypixel.hytale.builtin.worldgen.modifier.content.Content;
class="kw">import com.hypixel.hytale.builtin.worldgen.modifier.op.Op;
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.EnumCodec;
class="kw">import com.hypixel.hytale.event.EventPriority;
class="kw">import com.hypixel.hytale.server.worldgen.util.ListPool;
class="kw">import java.util.EnumMap;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class WorldGenModifier class="kw">implements JsonAssetWithMap<String, DefaultAssetMap<String, WorldGenModifier>> {
class="kw">public class="kw">static class="kw">final BuilderCodec<WorldGenModifier> CODEC = BuilderCodec.<WorldGenModifier>builder(WorldGenModifier.class, WorldGenModifier::new)
.documentation("Asset type used to data-drive user modifications to world-gen-v1 assets")
.<EventPriority>append(new KeyedCodec<>("Priority", new EnumCodec<>(EventPriority.class)), (var0, var1) -> var0.priority = var1, var0 -> var0.priority)
.documentation("The order this modifier will be applied relative to others")
.add()
.<Target>append(new KeyedCodec<>("Target", Target.CODEC), (var0, var1) -> var0.target = var1, var0 -> var0.target)
.documentation("The target world-gen configuration to modify")
.add()
.<Op[]>append(new KeyedCodec<>("Operations", Op.ARRAY_CODEC), (var0, var1) -> var0.operations = var1, var0 -> var0.operations)
.documentation("List of operations to perform on the target")
.add()
.afterDecode(WorldGenModifier::init)
.build();
class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, WorldGenModifier> ASSET_CODEC = AssetBuilderCodec.wrap(
CODEC, Codec.STRING, (var0, var1) -> var0.id = var1, var0 -> var0.id, (var0, var1) -> var0.data = var1, var0 -> var0.data
);
class="kw">public class="kw">static class="kw">final DefaultAssetMap<String, WorldGenModifier> ASSET_MAP = new DefaultAssetMap<>();
class="kw">private class="kw">static class="kw">final String UNKNOWN_ID = "Unknown";
class="kw">private class="kw">static class="kw">final ListPool<Op> POOL = new ListPool<>(10, Op.EMPTY_ARRAY);
@Nonnull
class="kw">protected String id = "Unknown";
@Nullable
class="kw">protected AssetExtraInfo.Data data = null;
@Nonnull
class="kw">protected EventPriority priority = EventPriority.NORMAL;
@Nonnull
class="kw">protected Target target = new Target();
@Nonnull
class="kw">protected Op[] operations = Op.EMPTY_ARRAY;
class="kw">protected class="kw">final class="kw">transient EnumMap<Content.Type, Op[]> opsLookup = new EnumMap<>(Content.Type.class);
class="kw">public WorldGenModifier() {
}
class="kw">public WorldGenModifier(@Nonnull String var1) {
this.id = var1;
}
@Nonnull
class="kw">public String getId() {
class="kw">return this.id;
}
@Nonnull
class="kw">public Target getTarget() {
class="kw">return this.target;
}
class="kw">public Op[] getOperations(Content.Type var1) {
class="kw">return this.opsLookup.getOrDefault(var1, Op.EMPTY_ARRAY);
}
class="kw">protected class="kw">static void init(WorldGenModifier var0) {
var0.opsLookup.clear();
for (Content.Type var4 : Content.Type.VALUES) {
try (ListPool.Resource var5 = POOL.acquire(var0.operations.length)) {
for (Op var9 : var0.operations) {
if (var9.type() == var4) {
var5.add(var9);
}
}
var0.opsLookup.put(var4, (Op[])var5.toArray(Op.EMPTY_ARRAY));
}
}
}
}