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();
}
}
}