FieldFunctionMaterialProviderAsset class

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

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

extends: MaterialProviderAsset

Поля (10)

МодификаторыТипИмя
public static final AssetBuilderCodec<String, FieldFunctionMaterialProviderAsset.DelimiterAsset> CODEC
private AssetExtraInfo.Data data
private double from
private String id
private MaterialProviderAsset materialProviderAsset
private double to
Density var2
ArrayList var3
MaterialProvider var8
FieldFunctionMaterialProvider.FieldDelimiter var9

Методы (5)

МодификаторыВозвратСигнатура
public DelimiterAssetpublic DelimiterAsset()
public void cleanUppublic void cleanUp()
for for(FieldFunctionMaterialProviderAsset.DelimiterAsset var7 : this.delimiterAssets)
for for(FieldFunctionMaterialProviderAsset.DelimiterAsset var4 : this.delimiterAssets)
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.assets.density.ConstantDensityAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.density.DensityAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.Density;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.material.Material;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.materialproviders.FieldFunctionMaterialProvider;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.materialproviders.MaterialProvider;
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 FieldFunctionMaterialProviderAsset class="kw">extends MaterialProviderAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<FieldFunctionMaterialProviderAsset> CODEC = BuilderCodec.builder(
         FieldFunctionMaterialProviderAsset.class, FieldFunctionMaterialProviderAsset::new, MaterialProviderAsset.ABSTRACT_CODEC
      )
      .append(new KeyedCodec<>("FieldFunction", DensityAsset.CODEC, true), (var0, var1) -> var0.densityAsset = var1, var0 -> var0.densityAsset)
      .add()
      .append(
         new KeyedCodec<>(
            "Delimiters",
            new ArrayCodec<>(FieldFunctionMaterialProviderAsset.DelimiterAsset.CODEC, FieldFunctionMaterialProviderAsset.DelimiterAsset[]::new),
            true
         ),
         (var0, var1) -> var0.delimiterAssets = var1,
         var0 -> var0.delimiterAssets
      )
      .add()
      .build();
   class="kw">private DensityAsset densityAsset = new ConstantDensityAsset();
   class="kw">private FieldFunctionMaterialProviderAsset.DelimiterAsset[] delimiterAssets = new FieldFunctionMaterialProviderAsset.DelimiterAsset[0];

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

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

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

      for (FieldFunctionMaterialProviderAsset.DelimiterAsset var7 : this.delimiterAssets) {
         MaterialProvider var8 = var7.materialProviderAsset.build(var1);
         FieldFunctionMaterialProvider.FieldDelimiter var9 = new FieldFunctionMaterialProvider.FieldDelimiter<>(var8, var7.from, var7.to);
         var3.add(var9);
      }

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

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

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

   class="kw">public class="kw">static class DelimiterAsset
      class="kw">implements Cleanable,
      JsonAssetWithMap<String, DefaultAssetMap<String, FieldFunctionMaterialProviderAsset.DelimiterAsset>> {
      @Nonnull
      class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, FieldFunctionMaterialProviderAsset.DelimiterAsset> CODEC = AssetBuilderCodec.builder(
            FieldFunctionMaterialProviderAsset.DelimiterAsset.class,
            FieldFunctionMaterialProviderAsset.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();
      }
   }
}