SpawnerNodeActionAsset class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.assets.graph.nodeactions
Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/graph/nodeactions/SpawnerNodeActionAsset.java
extends: NodeActionAsset
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.assets.graph.nodeactions;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.bounds.DecimalBounds3dAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.graph.GraphGeneratorAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.graph.contentsuppliers.ConstantContentSupplierAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.graph.contentsuppliers.ContentSupplierAsset;
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.vectorproviders.ConstantVectorProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.vectorproviders.VectorProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.graph.nodeactions.EmptyNodeAction;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.graph.nodeactions.NodeAction;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.graph.nodeactions.SpawnerNodeAction;
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.validation.Validators;
class="kw">import javax.annotation.Nonnull;
class="kw">public class SpawnerNodeActionAsset class="kw">extends NodeActionAsset {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<SpawnerNodeActionAsset> CODEC = BuilderCodec.builder(
SpawnerNodeActionAsset.class, SpawnerNodeActionAsset::new, NodeActionAsset.ABSTRACT_CODEC
)
.append(new KeyedCodec<>("Offset", VectorProviderAsset.CODEC, true), (var0, var1) -> var0.offsetAsset = var1, var0 -> var0.offsetAsset)
.add()
.append(new KeyedCodec<>("Positions", PositionProviderAsset.CODEC, true), (var0, var1) -> var0.positionsAsset = var1, var0 -> var0.positionsAsset)
.add()
.append(
new KeyedCodec<>("Content", ContentSupplierAsset.CODEC, true), (var0, var1) -> var0.contentSupplierAsset = var1, var0 -> var0.contentSupplierAsset
)
.add()
.append(
new KeyedCodec<>("ClusterBounds", DecimalBounds3dAsset.CODEC, true), (var0, var1) -> var0.clusterBoundsAsset = var1, var0 -> var0.clusterBoundsAsset
)
.add()
.<Double>append(
new KeyedCodec<>("MaxOffsetExclusive", Codec.DOUBLE, true), (var0, var1) -> var0.maxOffsetExclusive = var1, var0 -> var0.maxOffsetExclusive
)
.addValidator(Validators.greaterThanOrEqual(0.0))
.add()
.append(new KeyedCodec<>("CreateEdges", Codec.BOOLEAN, true), (var0, var1) -> var0.isCreateEdges = var1, var0 -> var0.isCreateEdges)
.add()
.build();
@Nonnull
class="kw">private VectorProviderAsset offsetAsset = ConstantVectorProviderAsset.INSTANCE;
@Nonnull
class="kw">private PositionProviderAsset positionsAsset = ListPositionProviderAsset.INSTANCE;
@Nonnull
class="kw">private ContentSupplierAsset contentSupplierAsset = ConstantContentSupplierAsset.INSTANCE;
@Nonnull
class="kw">private DecimalBounds3dAsset clusterBoundsAsset = DecimalBounds3dAsset.ZERO_INSTANCE;
class="kw">private double maxOffsetExclusive = 0.0;
class="kw">private boolean isCreateEdges = false;
class="kw">public SpawnerNodeActionAsset() {
}
@Nonnull
@Override
class="kw">public NodeAction build(@Nonnull GraphGeneratorAsset.Argument var1) {
if (super.skip()) {
class="kw">return EmptyNodeAction.INSTANCE;
}
assert this.maxOffsetExclusive >= 0.0;
class="kw">return new SpawnerNodeAction(
this.offsetAsset.build(new VectorProviderAsset.Argument(var1)),
this.positionsAsset.build(new PositionProviderAsset.Argument(var1)),
this.contentSupplierAsset.build(var1),
this.clusterBoundsAsset.build(),
this.maxOffsetExclusive,
this.isCreateEdges
);
}
@Override
class="kw">public void cleanUp() {
this.offsetAsset.cleanUp();
this.positionsAsset.cleanUp();
this.contentSupplierAsset.cleanUp();
}
}