DelimiterAsset class

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

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

implements: Cleanable, JsonAssetWithMap<String, DefaultAssetMap<String, FieldFunctionAssignmentsAsset.DelimiterAsset>>

Поля (6)

МодификаторыТипИмя
public static final AssetBuilderCodec<String, FieldFunctionAssignmentsAsset.DelimiterAsset> CODEC
private AssignmentsAsset assignmentsAsset
private AssetExtraInfo.Data data
private String id
private double max
private double min

Методы (2)

МодификаторыВозвратСигнатура
public void cleanUppublic void cleanUp()
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.assets.Cleanable;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.density.ConstantDensityAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.density.DensityAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assignments.Assignments;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assignments.FieldFunctionAssignments;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.Density;
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 java.util.ArrayList;
class="kw">import javax.annotation.Nonnull;

class="kw">public class FieldFunctionAssignmentsAsset class="kw">extends AssignmentsAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<FieldFunctionAssignmentsAsset> CODEC = BuilderCodec.builder(
         FieldFunctionAssignmentsAsset.class, FieldFunctionAssignmentsAsset::new, AssignmentsAsset.ABSTRACT_CODEC
      )
      .append(
         new KeyedCodec<>(
            "Delimiters", new ArrayCodec<>(FieldFunctionAssignmentsAsset.DelimiterAsset.CODEC, FieldFunctionAssignmentsAsset.DelimiterAsset[]::new), true
         ),
         (var0, var1) -> var0.delimiterAssets = var1,
         var0 -> var0.delimiterAssets
      )
      .add()
      .append(new KeyedCodec<>("FieldFunction", DensityAsset.CODEC, true), (var0, var1) -> var0.densityAsset = var1, var0 -> var0.densityAsset)
      .add()
      .build();
   class="kw">private FieldFunctionAssignmentsAsset.DelimiterAsset[] delimiterAssets = new FieldFunctionAssignmentsAsset.DelimiterAsset[0];
   class="kw">private DensityAsset densityAsset = new ConstantDensityAsset();

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

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

      Density var2 = this.densityAsset.build(DensityAsset.from(var1));
      ArrayList var3 = new ArrayList<>();

      for (FieldFunctionAssignmentsAsset.DelimiterAsset var7 : this.delimiterAssets) {
         Assignments var8 = var7.assignmentsAsset.build(var1);
         FieldFunctionAssignments.FieldDelimiter var9 = new FieldFunctionAssignments.FieldDelimiter(var8, var7.min, var7.max);
         var3.add(var9);
      }

      class="kw">return new FieldFunctionAssignments(var2, var3);
   }

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

      for (FieldFunctionAssignmentsAsset.DelimiterAsset var4 : this.delimiterAssets) {
         var4.cleanUp();
      }
   }

   class="kw">public class="kw">static class DelimiterAsset class="kw">implements Cleanable, JsonAssetWithMap<String, DefaultAssetMap<String, FieldFunctionAssignmentsAsset.DelimiterAsset>> {
      @Nonnull
      class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, FieldFunctionAssignmentsAsset.DelimiterAsset> CODEC = AssetBuilderCodec.builder(
            FieldFunctionAssignmentsAsset.DelimiterAsset.class,
            FieldFunctionAssignmentsAsset.DelimiterAsset::new,
            Codec.STRING,
            (var0, var1) -> var0.id = var1,
            var0 -> var0.id,
            (var0, var1) -> var0.data = var1,
            var0 -> var0.data
         )
         .append(new KeyedCodec<>("Assignments", AssignmentsAsset.CODEC, true), (var0, var1) -> var0.assignmentsAsset = var1, var0 -> var0.assignmentsAsset)
         .add()
         .append(new KeyedCodec<>("Min", Codec.DOUBLE, true), (var0, var1) -> var0.min = var1, var0 -> var0.min)
         .add()
         .append(new KeyedCodec<>("Max", Codec.DOUBLE, true), (var0, var1) -> var0.max = var1, var0 -> var0.max)
         .add()
         .build();
      class="kw">private String id;
      class="kw">private AssetExtraInfo.Data data;
      class="kw">private double min;
      class="kw">private double max;
      class="kw">private AssignmentsAsset assignmentsAsset = new ConstantAssignmentsAsset();

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

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

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