WeightedThicknessAsset class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.assets.materialproviders.spaceanddepth.layerassets

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/materialproviders/spaceanddepth/layerassets/WeightedThicknessLayerAsset.java

implements: JsonAssetWithMap<String, DefaultAssetMap<String, WeightedThicknessLayerAsset.WeightedThicknessAsset>>

Поля (5)

МодификаторыТипИмя
public static final AssetBuilderCodec<String, WeightedThicknessLayerAsset.WeightedThicknessAsset> CODEC
private AssetExtraInfo.Data data
private String id
private int thickness
private double weight

Методы (1)

МодификаторыВозвратСигнатура
public String getIdpublic String getId()

Исходный код

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

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.materialproviders.ConstantMaterialProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.materialproviders.MaterialProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.material.Material;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.materialproviders.spaceanddepth.SpaceAndDepthMaterialProvider;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.materialproviders.spaceanddepth.layers.WeightedThicknessLayer;
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 WeightedThicknessLayerAsset class="kw">extends LayerAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<WeightedThicknessLayerAsset> CODEC = BuilderCodec.builder(
         WeightedThicknessLayerAsset.class, WeightedThicknessLayerAsset::new, LayerAsset.ABSTRACT_CODEC
      )
      .append(
         new KeyedCodec<>(
            "PossibleThicknesses",
            new ArrayCodec<>(WeightedThicknessLayerAsset.WeightedThicknessAsset.CODEC, WeightedThicknessLayerAsset.WeightedThicknessAsset[]::new),
            true
         ),
         (var0, var1) -> var0.possibleThicknessAssets = var1,
         var0 -> var0.possibleThicknessAssets
      )
      .addValidator(Validators.nonNullArrayElements())
      .add()
      .append(
         new KeyedCodec<>("Material", MaterialProviderAsset.CODEC, true), (var0, var1) -> var0.materialProviderAsset = var1, var0 -> var0.materialProviderAsset
      )
      .add()
      .append(new KeyedCodec<>("Seed", Codec.STRING, true), (var0, var1) -> var0.seed = var1, var0 -> var0.seed)
      .add()
      .build();
   class="kw">private MaterialProviderAsset materialProviderAsset = new ConstantMaterialProviderAsset();
   class="kw">private String seed = "";
   class="kw">private WeightedThicknessLayerAsset.WeightedThicknessAsset[] possibleThicknessAssets = new WeightedThicknessLayerAsset.WeightedThicknessAsset[0];

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

   @Nonnull
   @Override
   class="kw">public SpaceAndDepthMaterialProvider.Layer<Material> build(@Nonnull MaterialProviderAsset.Argument var1) {
      WeightedMap var2 = new WeightedMap<>();

      for (WeightedThicknessLayerAsset.WeightedThicknessAsset var6 : this.possibleThicknessAssets) {
         var2.add(var6.thickness, var6.weight);
      }

      class="kw">return new WeightedThicknessLayer<>(var2, this.materialProviderAsset.build(var1), var1.parentSeed);
   }

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

   class="kw">public class="kw">static class WeightedThicknessAsset class="kw">implements JsonAssetWithMap<String, DefaultAssetMap<String, WeightedThicknessLayerAsset.WeightedThicknessAsset>> {
      @Nonnull
      class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, WeightedThicknessLayerAsset.WeightedThicknessAsset> CODEC = AssetBuilderCodec.builder(
            WeightedThicknessLayerAsset.WeightedThicknessAsset.class,
            WeightedThicknessLayerAsset.WeightedThicknessAsset::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<>("Thickness", Codec.INTEGER, true), (var0, var1) -> var0.thickness = var1, var0 -> var0.thickness)
         .add()
         .build();
      class="kw">private String id;
      class="kw">private AssetExtraInfo.Data data;
      class="kw">private double weight;
      class="kw">private int thickness;

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

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