WeightedNodeActionAsset class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.assets.graph.nodeactions

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/graph/nodeactions/WeightedNodeActionAsset.java

extends: NodeActionAsset

Поля (7)

МодификаторыТипИмя
public static final AssetBuilderCodec<String, WeightedNodeActionAsset.EntryAsset> CODEC
private AssetExtraInfo.Data data
private String id
private NodeActionAsset nodeActionAsset
WeightedMap var2
NodeAction var7
private double weight

Методы (6)

МодификаторыВозвратСигнатура
public EntryAssetpublic EntryAsset()
public void cleanUppublic void cleanUp()
for for(WeightedNodeActionAsset.EntryAsset var6 : this.entryAssets)
for for(WeightedNodeActionAsset.EntryAsset var4 : this.entryAssets)
public String getIdpublic String getId()
if if(this.entryAssets.length == 0)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.assets.graph.nodeactions;

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.hytalegenerator.WeightedMap;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.Cleanable;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.graph.GraphGeneratorAsset;
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.WeightedNodeAction;
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 javax.annotation.Nonnull;

class="kw">public class WeightedNodeActionAsset class="kw">extends NodeActionAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<WeightedNodeActionAsset> CODEC = BuilderCodec.builder(
         WeightedNodeActionAsset.class, WeightedNodeActionAsset::new, NodeActionAsset.ABSTRACT_CODEC
      )
      .append(
         new KeyedCodec<>("Entries", new ArrayCodec<>(WeightedNodeActionAsset.EntryAsset.CODEC, WeightedNodeActionAsset.EntryAsset[]::new), true),
         (var0, var1) -> var0.entryAssets = var1,
         var0 -> var0.entryAssets
      )
      .add()
      .append(new KeyedCodec<>("Seed", Codec.STRING, true), (var0, var1) -> var0.seed = var1, var0 -> var0.seed)
      .add()
      .build();
   @Nonnull
   class="kw">private WeightedNodeActionAsset.EntryAsset[] entryAssets = new WeightedNodeActionAsset.EntryAsset[0];
   @Nonnull
   class="kw">private String seed = "";

   class="kw">public WeightedNodeActionAsset() {
   }

   @Nonnull
   @Override
   class="kw">public NodeAction build(@Nonnull GraphGeneratorAsset.Argument var1) {
      if (super.skip()) {
         class="kw">return EmptyNodeAction.INSTANCE;
      }

      if (this.entryAssets.length == 0) {
         class="kw">return EmptyNodeAction.INSTANCE;
      }

      WeightedMap var2 = new WeightedMap<>();

      for (WeightedNodeActionAsset.EntryAsset var6 : this.entryAssets) {
         assert var6.weight > -0.0;
         NodeAction var7 = var6.nodeActionAsset.build(var1);
         var2.add(var7, var6.weight);
      }

      class="kw">return new WeightedNodeAction(var2, var1.parentSeed.child(this.seed).createSupplier().get());
   }

   @Override
   class="kw">public void cleanUp() {
      for (WeightedNodeActionAsset.EntryAsset var4 : this.entryAssets) {
         var4.nodeActionAsset.cleanUp();
      }
   }

   class="kw">public class="kw">static class EntryAsset class="kw">implements Cleanable, JsonAssetWithMap<String, DefaultAssetMap<String, WeightedNodeActionAsset.EntryAsset>> {
      @Nonnull
      class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, WeightedNodeActionAsset.EntryAsset> CODEC = AssetBuilderCodec.builder(
            WeightedNodeActionAsset.EntryAsset.class,
            WeightedNodeActionAsset.EntryAsset::new,
            Codec.STRING,
            (var0, var1) -> var0.id = var1,
            var0 -> var0.id,
            (var0, var1) -> var0.data = var1,
            var0 -> var0.data
         )
         .append(new KeyedCodec<>("Weight", Codec.DOUBLE, true), (var0, var1) -> var0.weight = var1, var0 -> var0.weight)
         .addValidator(Validators.greaterThanOrEqual(0.0))
         .add()
         .append(new KeyedCodec<>("NodeAction", NodeActionAsset.CODEC, true), (var0, var1) -> var0.nodeActionAsset = var1, var0 -> var0.nodeActionAsset)
         .add()
         .build();
      class="kw">private String id;
      class="kw">private AssetExtraInfo.Data data;
      class="kw">private double weight = 1.0;
      @Nonnull
      class="kw">private NodeActionAsset nodeActionAsset = EmptyNodeActionAsset.INSTANCE;

      class="kw">public EntryAsset() {
      }

      class="kw">public String getId() {
         class="kw">return this.id;
      }

      @Override
      class="kw">public void cleanUp() {
         this.nodeActionAsset.cleanUp();
      }
   }
}