ScalerPositionProviderAsset class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.assets.positionproviders
Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/positionproviders/ScalerPositionProviderAsset.java
extends: PositionProviderAsset
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
|
PositionProvider |
var2 |
|
String |
var3 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
return new |
ScalerPositionProviderreturn new ScalerPositionProvider(this.scale, var2) |
|
public void |
acceptpublic void accept(Vector3d var1, ValidationResults var2) |
static |
boolean |
isValidScaleboolean isValidScale(@Nonnull Vector3d var0) |
|
public void |
updateSchemapublic void updateSchema(SchemaContext var1, Schema var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.assets.positionproviders;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.positionproviders.EmptyPositionProvider;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.positionproviders.PositionProvider;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.positionproviders.ScalerPositionProvider;
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 ScalerPositionProviderAsset class="kw">extends PositionProviderAsset {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<ScalerPositionProviderAsset> CODEC = BuilderCodec.builder(
ScalerPositionProviderAsset.class, ScalerPositionProviderAsset::new, PositionProviderAsset.ABSTRACT_CODEC
)
.append(new KeyedCodec<>("Scale", Vector3dUtil.CODEC, true), (var0, var1) -> var0.scale = var1, var0 -> var0.scale)
.addValidator(new Validator<Vector3d>() {
class="kw">public void accept(Vector3d var1, ValidationResults var2) {
if (!ScalerPositionProviderAsset.isValidScale(var1)) {
String var3 = "Scale Vector " + var1.toString() + " has one or more zero members.";
var2.fail(var3);
}
}
@Override
class="kw">public void updateSchema(SchemaContext var1, Schema var2) {
}
})
.add()
.append(
new KeyedCodec<>("Positions", PositionProviderAsset.CODEC, true),
(var0, var1) -> var0.positionProviderAsset = var1,
var0 -> var0.positionProviderAsset
)
.add()
.build();
@Nonnull
class="kw">private Vector3d scale = new Vector3d();
@Nonnull
class="kw">private PositionProviderAsset positionProviderAsset = ListPositionProviderAsset.INSTANCE;
class="kw">public ScalerPositionProviderAsset() {
}
@Nonnull
@Override
class="kw">public PositionProvider build(@Nonnull PositionProviderAsset.Argument var1) {
if (!super.skip() && isValidScale(this.scale)) {
PositionProvider var2 = this.positionProviderAsset.build(var1);
class="kw">return new ScalerPositionProvider(this.scale, var2);
} else {
class="kw">return EmptyPositionProvider.INSTANCE;
}
}
@Override
class="kw">public void cleanUp() {
this.positionProviderAsset.cleanUp();
}
class="kw">private class="kw">static boolean isValidScale(@Nonnull Vector3d var0) {
class="kw">return var0.x != 0.0 && var0.y != 0.0 && var0.z != 0.0;
}
}