SpaceAndDepthMaterialProviderAsset class

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

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

extends: MaterialProviderAsset

Поля (2)

МодификаторыТипИмя
SpaceAndDepthMaterialProvider.Condition var2
ArrayList var3

Методы (2)

МодификаторыВозвратСигнатура
for for(LayerAsset var7 : this.layerAssets)
for for(LayerAsset var4 : this.layerAssets)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.materialproviders.MaterialProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.materialproviders.spaceanddepth.conditionassets.AlwaysTrueConditionAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.materialproviders.spaceanddepth.conditionassets.ConditionAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.materialproviders.spaceanddepth.layerassets.LayerAsset;
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.spaceanddepth.SpaceAndDepthMaterialProvider;
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 java.util.ArrayList;
class="kw">import javax.annotation.Nonnull;

class="kw">public class SpaceAndDepthMaterialProviderAsset class="kw">extends MaterialProviderAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<SpaceAndDepthMaterialProviderAsset> CODEC = BuilderCodec.builder(
         SpaceAndDepthMaterialProviderAsset.class, SpaceAndDepthMaterialProviderAsset::new, MaterialProviderAsset.ABSTRACT_CODEC
      )
      .append(
         new KeyedCodec<>("LayerContext", SpaceAndDepthMaterialProvider.LayerContextType.CODEC, true),
         (var0, var1) -> var0.layerContext = var1,
         var0 -> var0.layerContext
      )
      .add()
      .<Integer>append(new KeyedCodec<>("MaxExpectedDepth", Codec.INTEGER, true), (var0, var1) -> var0.maxDistance = var1, var0 -> var0.maxDistance)
      .addValidator(Validators.greaterThanOrEqual(0))
      .add()
      .append(new KeyedCodec<>("Condition", ConditionAsset.CODEC, false), (var0, var1) -> var0.conditionAsset = var1, var0 -> var0.conditionAsset)
      .add()
      .<LayerAsset[]>append(
         new KeyedCodec<>("Layers", new ArrayCodec<>(LayerAsset.CODEC, LayerAsset[]::new), false),
         (var0, var1) -> var0.layerAssets = var1,
         var0 -> var0.layerAssets
      )
      .addValidator(Validators.nonNullArrayElements())
      .add()
      .build();
   class="kw">private SpaceAndDepthMaterialProvider.LayerContextType layerContext = SpaceAndDepthMaterialProvider.LayerContextType.DEPTH_INTO_FLOOR;
   class="kw">private int maxDistance = 3;
   class="kw">private ConditionAsset conditionAsset = new AlwaysTrueConditionAsset();
   class="kw">private LayerAsset[] layerAssets = new LayerAsset[0];

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

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

      SpaceAndDepthMaterialProvider.Condition var2 = this.conditionAsset.build();
      ArrayList var3 = new ArrayList<>(this.layerAssets.length);

      for (LayerAsset var7 : this.layerAssets) {
         var3.add(var7.build(var1));
      }

      class="kw">return new SpaceAndDepthMaterialProvider<>(this.layerContext, var3, var2, this.maxDistance);
   }

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