CuboidDensityAsset class

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

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

extends: DensityAsset

Поля (2)

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

Методы (5)

МодификаторыВозвратСигнатура
abstract return new ConstantValueDensityreturn new ConstantValueDensity(0.0)
abstract return new RotatorDensityreturn new RotatorDensity(var3, this.newYAxis, this.spinAngle)
public void acceptpublic void accept(Vector3d var1, ValidationResults var2)
if if(var1.x == 0.0 || var1.y == 0.0 || var1.z == 0.0)
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.curves.ConstantCurveAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.curves.CurveAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.ConstantValueDensity;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.CubeDensity;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.Density;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.RotatorDensity;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.density.ScaleDensity;
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 CuboidDensityAsset class="kw">extends DensityAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<CuboidDensityAsset> CODEC = BuilderCodec.builder(
         CuboidDensityAsset.class, CuboidDensityAsset::new, DensityAsset.ABSTRACT_CODEC
      )
      .append(new KeyedCodec<>("Curve", CurveAsset.CODEC, true), (var0, var1) -> var0.densityCurveAsset = var1, var0 -> var0.densityCurveAsset)
      .add()
      .<Vector3d>append(new KeyedCodec<>("Scale", Vector3dUtil.CODEC, false), (var0, var1) -> var0.scaleVector = var1, var0 -> var0.scaleVector)
      .addValidator(new Validator<Vector3d>() {
         class="kw">public void accept(Vector3d var1, ValidationResults var2) {
            if (var1.x == 0.0 || var1.y == 0.0 || var1.z == 0.0) {
               var2.fail("scale vector contains 0.0");
            }
         }

         @Override
         class="kw">public void updateSchema(SchemaContext var1, Schema var2) {
         }
      })
      .add()
      .append(new KeyedCodec<>("NewYAxis", Vector3dUtil.CODEC, false), (var0, var1) -> {
         if (var1.length() != 0.0) {
            var0.newYAxis = var1;
         }
      }, var0 -> var0.newYAxis)
      .add()
      .append(new KeyedCodec<>("Spin", Codec.DOUBLE, false), (var0, var1) -> var0.spinAngle = var1, var0 -> var0.spinAngle)
      .add()
      .build();
   class="kw">private CurveAsset densityCurveAsset = new ConstantCurveAsset();
   class="kw">private Vector3d scaleVector = new Vector3d(1.0, 1.0, 1.0);
   @Nonnull
   class="kw">private Vector3d newYAxis = new Vector3d(0.0, 1.0, 0.0);
   class="kw">private double spinAngle;

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

   @Nonnull
   @Override
   class="kw">public Density build(@Nonnull DensityAsset.Argument var1) {
      if (!this.isSkipped() && this.densityCurveAsset != null) {
         CubeDensity var2 = new CubeDensity(this.densityCurveAsset.build());
         ScaleDensity var3 = new ScaleDensity(this.scaleVector.x, this.scaleVector.y, this.scaleVector.z, var2);
         class="kw">return new RotatorDensity(var3, this.newYAxis, this.spinAngle);
      } else {
         class="kw">return new ConstantValueDensity(0.0);
      }
   }

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