NodeFunctionYOutAsset class

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

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/curves/legacy/NodeFunctionYOutAsset.java

implements: JsonAssetWithMap<String, DefaultAssetMap<String, NodeFunctionYOutAsset>>, Cleanable

Поля (4)

МодификаторыТипИмя
return
NodeFunction var1
DoubleOpenHashSet var3
Vector2d var6

Методы (5)

МодификаторыВозвратСигнатура
public void acceptpublic void accept(PointYOutAsset[] var1, ValidationResults var2)
for for(PointYOutAsset var7 : var1)
for for(PointYOutAsset var5 : this.nodes)
public String getIdString getId()
public void updateSchemapublic void updateSchema(SchemaContext var1, Schema var2)

Исходный код

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

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.math.NodeFunction;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
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 it.unimi.dsi.fastutil.doubles.DoubleOpenHashSet;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector2d;

class="kw">public class NodeFunctionYOutAsset class="kw">implements JsonAssetWithMap<String, DefaultAssetMap<String, NodeFunctionYOutAsset>>, Cleanable {
   @Nonnull
   class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, NodeFunctionYOutAsset> CODEC = AssetBuilderCodec.builder(
         NodeFunctionYOutAsset.class,
         NodeFunctionYOutAsset::new,
         Codec.STRING,
         (var0, var1) -> var0.id = var1,
         var0 -> var0.id,
         (var0, var1) -> var0.data = var1,
         var0 -> var0.data
      )
      .append(
         new KeyedCodec<>("Points", new ArrayCodec<>(PointYOutAsset.CODEC, PointYOutAsset[]::new), true), (var0, var1) -> var0.nodes = var1, var0 -> var0.nodes
      )
      .addValidator(new Validator<PointYOutAsset[]>() {
         class="kw">public void accept(PointYOutAsset[] var1, ValidationResults var2) {
            DoubleOpenHashSet var3 = new DoubleOpenHashSet(var1.length);

            for (PointYOutAsset var7 : var1) {
               if (var3.contains(var7.getY())) {
                  var2.fail("More than one point with Y value: " + var7.getY());
                  class="kw">return;
               }

               var3.add(var7.getY());
            }
         }

         @Override
         class="kw">public void updateSchema(SchemaContext var1, Schema var2) {
         }
      })
      .add()
      .build();
   class="kw">private String id;
   class="kw">private AssetExtraInfo.Data data;
   class="kw">private PointYOutAsset[] nodes = new PointYOutAsset[0];

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

   @Nonnull
   class="kw">public NodeFunction build() {
      NodeFunction var1 = new NodeFunction();

      for (PointYOutAsset var5 : this.nodes) {
         Vector2d var6 = var5.build();
         var1.addPoint(var6.x, var6.y);
      }

      class="kw">return var1;
   }

   class="kw">public String getId() {
      class="kw">return this.id;
   }

   @Override
   class="kw">public void cleanUp() {
   }
}