WeightedAssignmentsAsset class

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

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/assignments/WeightedAssignmentsAsset.java

extends: AssignmentsAsset

Поля (7)

МодификаторыТипИмя
public static final AssetBuilderCodec<String, WeightedAssignmentsAsset.WeightedAssets> CODEC
private AssignmentsAsset assignmentsAsset
private AssetExtraInfo.Data data
private String id
WeightedMap var2
SeedBox var7
private double weight

Методы (5)

МодификаторыВозвратСигнатура
public WeightedAssetspublic WeightedAssets()
public void cleanUppublic void cleanUp()
for for(WeightedAssignmentsAsset.WeightedAssets var6 : this.weightedAssets)
for for(WeightedAssignmentsAsset.WeightedAssets var4 : this.weightedAssets)
public String getIdpublic String getId()

Исходный код

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

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.assignments.Assignments;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assignments.WeightedAssignments;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.rng.SeedBox;
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 javax.annotation.Nonnull;

class="kw">public class WeightedAssignmentsAsset class="kw">extends AssignmentsAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<WeightedAssignmentsAsset> CODEC = BuilderCodec.builder(
         WeightedAssignmentsAsset.class, WeightedAssignmentsAsset::new, AssignmentsAsset.ABSTRACT_CODEC
      )
      .append(new KeyedCodec<>("SkipChance", Codec.DOUBLE, true), (var0, var1) -> var0.skipChance = var1, var0 -> var0.skipChance)
      .add()
      .append(new KeyedCodec<>("Seed", Codec.STRING, true), (var0, var1) -> var0.seed = var1, var0 -> var0.seed)
      .add()
      .append(
         new KeyedCodec<>(
            "WeightedAssignments", new ArrayCodec<>(WeightedAssignmentsAsset.WeightedAssets.CODEC, WeightedAssignmentsAsset.WeightedAssets[]::new), true
         ),
         (var0, var1) -> var0.weightedAssets = var1,
         var0 -> var0.weightedAssets
      )
      .add()
      .build();
   class="kw">private WeightedAssignmentsAsset.WeightedAssets[] weightedAssets = new WeightedAssignmentsAsset.WeightedAssets[0];
   class="kw">private String seed = "";
   class="kw">private double skipChance = 0.0;

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

   @Nonnull
   @Override
   class="kw">public Assignments build(@Nonnull AssignmentsAsset.Argument var1) {
      if (super.skip()) {
         class="kw">return Assignments.noPropDistribution();
      }

      WeightedMap var2 = new WeightedMap<>();

      for (WeightedAssignmentsAsset.WeightedAssets var6 : this.weightedAssets) {
         var2.add(var6.assignmentsAsset.build(var1), var6.weight);
      }

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

   @Override
   class="kw">public void cleanUp() {
      for (WeightedAssignmentsAsset.WeightedAssets var4 : this.weightedAssets) {
         var4.cleanUp();
      }
   }

   class="kw">public class="kw">static class WeightedAssets class="kw">implements Cleanable, JsonAssetWithMap<String, DefaultAssetMap<String, WeightedAssignmentsAsset.WeightedAssets>> {
      @Nonnull
      class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, WeightedAssignmentsAsset.WeightedAssets> CODEC = AssetBuilderCodec.builder(
            WeightedAssignmentsAsset.WeightedAssets.class,
            WeightedAssignmentsAsset.WeightedAssets::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)
         .add()
         .append(new KeyedCodec<>("Assignments", AssignmentsAsset.CODEC, true), (var0, var1) -> var0.assignmentsAsset = var1, var0 -> var0.assignmentsAsset)
         .add()
         .build();
      class="kw">private String id;
      class="kw">private AssetExtraInfo.Data data;
      class="kw">private double weight = 1.0;
      class="kw">private AssignmentsAsset assignmentsAsset = new ConstantAssignmentsAsset();

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

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

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