DensitySelectorPropAsset class

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

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

extends: PropAsset

Поля (10)

МодификаторыТипИмя
public static final AssetBuilderCodec<String, DensitySelectorPropAsset.DelimiterAsset> CODEC
private AssetExtraInfo.Data data
private String id
private PropAsset propAsset
private RangeDoubleAsset rangeAsset
Density var10
List var2
RangeDouble var7
Prop var8
DelimiterDouble var9

Методы (6)

МодификаторыВозвратСигнатура
public DelimiterAssetpublic DelimiterAsset()
abstract return new DensitySelectorPropreturn new DensitySelectorProp(var2, var10)
public void cleanUppublic void cleanUp()
for for(DensitySelectorPropAsset.DelimiterAsset var6 : this.delimiterAssets)
for for(DensitySelectorPropAsset.DelimiterAsset var4 : this.delimiterAssets)
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.assets.Cleanable;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.delimiters.RangeDoubleAsset;
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.delimiters.DelimiterDouble;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.delimiters.RangeDouble;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.Density;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.props.DensitySelectorProp;
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.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 java.util.List;
class="kw">import javax.annotation.Nonnull;

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

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

   @Nonnull
   @Override
   class="kw">public Prop build(@Nonnull PropAsset.Argument var1) {
      if (super.skip()) {
         class="kw">return EmptyProp.INSTANCE;
      }

      List var2 = new ArrayList<>(this.delimiterAssets.length);

      for (DensitySelectorPropAsset.DelimiterAsset var6 : this.delimiterAssets) {
         RangeDouble var7 = var6.rangeAsset.build();
         Prop var8 = var6.propAsset.build(var1);
         DelimiterDouble var9 = new DelimiterDouble<>(var7, var8);
         var2.add(var9);
      }

      Density var10 = this.densityAsset.build(DensityAsset.from(var1));
      class="kw">return new DensitySelectorProp(var2, var10);
   }

   @Override
   class="kw">public void cleanUp() {
      for (DensitySelectorPropAsset.DelimiterAsset var4 : this.delimiterAssets) {
         var4.cleanUp();
      }

      this.densityAsset.cleanUp();
   }

   class="kw">public class="kw">static class DelimiterAsset class="kw">implements Cleanable, JsonAssetWithMap<String, DefaultAssetMap<String, DensitySelectorPropAsset.DelimiterAsset>> {
      @Nonnull
      class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, DensitySelectorPropAsset.DelimiterAsset> CODEC = AssetBuilderCodec.builder(
            DensitySelectorPropAsset.DelimiterAsset.class,
            DensitySelectorPropAsset.DelimiterAsset::new,
            Codec.STRING,
            (var0, var1) -> var0.id = var1,
            var0 -> var0.id,
            (var0, var1) -> var0.data = var1,
            var0 -> var0.data
         )
         .append(new KeyedCodec<>("Range", RangeDoubleAsset.CODEC, true), (var0, var1) -> var0.rangeAsset = var1, var0 -> var0.rangeAsset)
         .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;
      @Nonnull
      class="kw">private RangeDoubleAsset rangeAsset = new RangeDoubleAsset();
      @Nonnull
      class="kw">private PropAsset propAsset = new EmptyPropAsset();

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

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

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