ManualCurveAsset class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.assets.curves.manual
Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/curves/manual/ManualCurveAsset.java
extends: CurveAsset
Поля (4)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
return |
|
NodeFunction |
var1 |
|
DoubleOpenHashSet |
var2 |
|
Vector2d |
var6 |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(PointInOutAsset var6 : var0) |
|
|
for for(PointInOutAsset var5 : this.nodes) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.assets.curves.manual;
class="kw">import com.hypixel.hytale.assetstore.AssetExtraInfo;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.curves.CurveAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.math.NodeFunction;
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 it.unimi.dsi.fastutil.doubles.DoubleOpenHashSet;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector2d;
class="kw">public class ManualCurveAsset class="kw">extends CurveAsset {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<ManualCurveAsset> CODEC = BuilderCodec.builder(ManualCurveAsset.class, ManualCurveAsset::new, CurveAsset.ABSTRACT_CODEC)
.append(
new KeyedCodec<>("Points", new ArrayCodec<>(PointInOutAsset.CODEC, PointInOutAsset[]::new), true),
(var0, var1) -> var0.nodes = var1,
var0 -> var0.nodes
)
.addValidator((var0, var1) -> {
DoubleOpenHashSet var2 = new DoubleOpenHashSet(var0.length);
for (PointInOutAsset var6 : var0) {
if (var2.contains(var6.getY())) {
var1.fail("More than one point with Y value: " + var6.getY());
class="kw">return;
}
var2.add(var6.getY());
}
})
.add()
.build();
class="kw">private String id;
class="kw">private AssetExtraInfo.Data data;
class="kw">private PointInOutAsset[] nodes = new PointInOutAsset[0];
class="kw">private ManualCurveAsset() {
}
@Nonnull
class="kw">public NodeFunction build() {
NodeFunction var1 = new NodeFunction();
for (PointInOutAsset var5 : this.nodes) {
Vector2d var6 = var5.build();
var1.addPoint(var6.x, var6.y);
}
class="kw">return var1;
}
@Override
class="kw">public String getId() {
class="kw">return this.id;
}
@Override
class="kw">public void cleanUp() {
}
}