DelimiterAsset class

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

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/materialproviders/TerrainDensityMaterialProviderAsset.java

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

Поля (6)

МодификаторыТипИмя
public static final AssetBuilderCodec<String, TerrainDensityMaterialProviderAsset.DelimiterAsset> CODEC
private AssetExtraInfo.Data data
private double from
private String id
private MaterialProviderAsset materialProviderAsset
private double to

Методы (2)

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

Исходный код

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

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.material.Material;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.materialproviders.MaterialProvider;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.materialproviders.TerrainDensityMaterialProvider;
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 TerrainDensityMaterialProviderAsset class="kw">extends MaterialProviderAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<TerrainDensityMaterialProviderAsset> CODEC = BuilderCodec.builder(
         TerrainDensityMaterialProviderAsset.class, TerrainDensityMaterialProviderAsset::new, MaterialProviderAsset.ABSTRACT_CODEC
      )
      .append(
         new KeyedCodec<>(
            "Delimiters",
            new ArrayCodec<>(TerrainDensityMaterialProviderAsset.DelimiterAsset.CODEC, TerrainDensityMaterialProviderAsset.DelimiterAsset[]::new),
            true
         ),
         (var0, var1) -> var0.delimiterAssets = var1,
         var0 -> var0.delimiterAssets
      )
      .add()
      .build();
   class="kw">private TerrainDensityMaterialProviderAsset.DelimiterAsset[] delimiterAssets = new TerrainDensityMaterialProviderAsset.DelimiterAsset[0];

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

   @Nonnull
   @Override
   class="kw">public MaterialProvider<Material> build(@Nonnull MaterialProviderAsset.Argument var1) {
      if (super.skip()) {
         class="kw">return MaterialProvider.noMaterialProvider();
      }

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

      for (TerrainDensityMaterialProviderAsset.DelimiterAsset var6 : this.delimiterAssets) {
         MaterialProvider var7 = var6.materialProviderAsset.build(var1);
         TerrainDensityMaterialProvider.FieldDelimiter var8 = new TerrainDensityMaterialProvider.FieldDelimiter<>(var7, var6.from, var6.to);
         var2.add(var8);
      }

      class="kw">return new TerrainDensityMaterialProvider<>(var2);
   }

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

   class="kw">public class="kw">static class DelimiterAsset
      class="kw">implements Cleanable,
      JsonAssetWithMap<String, DefaultAssetMap<String, TerrainDensityMaterialProviderAsset.DelimiterAsset>> {
      @Nonnull
      class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, TerrainDensityMaterialProviderAsset.DelimiterAsset> CODEC = AssetBuilderCodec.builder(
            TerrainDensityMaterialProviderAsset.DelimiterAsset.class,
            TerrainDensityMaterialProviderAsset.DelimiterAsset::new,
            Codec.STRING,
            (var0, var1) -> var0.id = var1,
            var0 -> var0.id,
            (var0, var1) -> var0.data = var1,
            var0 -> var0.data
         )
         .append(new KeyedCodec<>("From", Codec.DOUBLE, true), (var0, var1) -> var0.from = var1, var0 -> var0.from)
         .add()
         .append(new KeyedCodec<>("To", Codec.DOUBLE, true), (var0, var1) -> var0.to = var1, var0 -> var0.to)
         .add()
         .append(
            new KeyedCodec<>("Material", MaterialProviderAsset.CODEC, true),
            (var0, var1) -> var0.materialProviderAsset = var1,
            var0 -> var0.materialProviderAsset
         )
         .add()
         .build();
      class="kw">private String id;
      class="kw">private AssetExtraInfo.Data data;
      class="kw">private double from;
      class="kw">private double to;
      class="kw">private MaterialProviderAsset materialProviderAsset = new ConstantMaterialProviderAsset();

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

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

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