WeightedPropAsset class

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

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/props/WeightedPropAsset.java

extends: PropAsset

Поля (7)

МодификаторыТипИмя
public static final AssetBuilderCodec<String, WeightedPropAsset.EntryAsset> CODEC
private AssetExtraInfo.Data data
private String id
private PropAsset propAsset
WeightedMap var2
PropAsset.Argument var3
private double weight

Методы (5)

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

Исходный код

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

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.props.EmptyProp;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.props.Prop;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.props.WeightedProp;
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 WeightedPropAsset class="kw">extends PropAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<WeightedPropAsset> CODEC = BuilderCodec.builder(WeightedPropAsset.class, WeightedPropAsset::new, PropAsset.ABSTRACT_CODEC)
      .append(
         new KeyedCodec<>("Entries", new ArrayCodec<>(WeightedPropAsset.EntryAsset.CODEC, WeightedPropAsset.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();
   class="kw">private WeightedPropAsset.EntryAsset[] entryAssets = new WeightedPropAsset.EntryAsset[0];
   class="kw">private String seed = "";

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

   @Nonnull
   @Override
   class="kw">public Prop build(@Nonnull PropAsset.Argument var1) {
      if (!super.skip() && this.entryAssets.length != 0) {
         WeightedMap var2 = new WeightedMap<>(this.entryAssets.length);
         PropAsset.Argument var3 = new PropAsset.Argument(var1);
         var3.parentSeed = var1.parentSeed.child(this.seed);

         for (WeightedPropAsset.EntryAsset var7 : this.entryAssets) {
            var2.add(var7.propAsset.build(var3), var7.weight);
         }

         class="kw">return new WeightedProp(var2, var3.parentSeed.createSupplier().get());
      } else {
         class="kw">return EmptyProp.INSTANCE;
      }
   }

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

   class="kw">public class="kw">static class EntryAsset class="kw">implements Cleanable, JsonAssetWithMap<String, DefaultAssetMap<String, WeightedPropAsset.EntryAsset>> {
      @Nonnull
      class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, WeightedPropAsset.EntryAsset> CODEC = AssetBuilderCodec.builder(
            WeightedPropAsset.EntryAsset.class,
            WeightedPropAsset.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.greaterThan(0.0))
         .add()
         .append(new KeyedCodec<>("Prop", PropAsset.CODEC, true), (var0, var1) -> var0.propAsset = var1, var0 -> var0.propAsset)
         .add()
         .build();
      class="kw">private String id;
      class="kw">private AssetExtraInfo.Data data;
      class="kw">private double weight = 1.0;
      class="kw">private PropAsset propAsset = new EmptyPropAsset();

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

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

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