AngleDensityAsset class

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

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/density/AngleDensityAsset.java

extends: DensityAsset

Поля (1)

МодификаторыТипИмя
VectorProvider var2

Методы (4)

МодификаторыВозвратСигнатура
abstract return new AngleDensityreturn new AngleDensity(var2, this.vector, this.isAxis)
abstract return new ConstantValueDensityreturn new ConstantValueDensity(0.0)
public void acceptpublic void accept(Vector3d var1, ValidationResults var2)
public void updateSchemapublic void updateSchema(SchemaContext var1, Schema var2)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.vectorproviders.ConstantVectorProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.vectorproviders.VectorProviderAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.AngleDensity;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.ConstantValueDensity;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.Density;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.vectorproviders.VectorProvider;
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.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.Schema;
class="kw">import com.hypixel.hytale.codec.validation.ValidationResults;
class="kw">import com.hypixel.hytale.codec.validation.Validator;
class="kw">import com.hypixel.hytale.math.vector.Vector3dUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class AngleDensityAsset class="kw">extends DensityAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<AngleDensityAsset> CODEC = BuilderCodec.builder(
         AngleDensityAsset.class, AngleDensityAsset::new, DensityAsset.ABSTRACT_CODEC
      )
      .append(
         new KeyedCodec<>("VectorProvider", VectorProviderAsset.CODEC, true), (var0, var1) -> var0.vectorProviderAsset = var1, var0 -> var0.vectorProviderAsset
      )
      .add()
      .<Vector3d>append(new KeyedCodec<>("Vector", Vector3dUtil.CODEC, true), (var0, var1) -> var0.vector = var1, var0 -> var0.vector)
      .addValidator(new Validator<Vector3d>() {
         class="kw">public void accept(Vector3d var1, ValidationResults var2) {
            if (var1.length() == 0.0) {
               var2.fail("Vector can't be a zero vector.");
            }
         }

         @Override
         class="kw">public void updateSchema(SchemaContext var1, Schema var2) {
         }
      })
      .add()
      .append(new KeyedCodec<>("IsAxis", Codec.BOOLEAN, true), (var0, var1) -> var0.isAxis = var1, var0 -> var0.isAxis)
      .add()
      .build();
   class="kw">private VectorProviderAsset vectorProviderAsset = new ConstantVectorProviderAsset();
   class="kw">private Vector3d vector = new Vector3d();
   class="kw">private boolean isAxis;

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

   @Nonnull
   @Override
   class="kw">public Density build(@Nonnull DensityAsset.Argument var1) {
      if (this.isSkipped()) {
         class="kw">return new ConstantValueDensity(0.0);
      }

      VectorProvider var2 = this.vectorProviderAsset.build(new VectorProviderAsset.Argument(var1));
      class="kw">return new AngleDensity(var2, this.vector, this.isAxis);
   }

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