ScaledXResponseCurve class
Пакет: com.hypixel.hytale.server.core.asset.type.responsecurve
Файл: com/hypixel/hytale/server/core/asset/type/responsecurve/ScaledXResponseCurve.java
extends: ScaledResponseCurve
Поля (6)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<ScaledXResponseCurve> |
CODEC |
|
|
var1 |
|
ResponseCurve |
var3 |
|
double |
var4 |
|
double |
var6 |
|
double |
var8 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
protected |
double |
computeNormalisedYdouble computeNormalisedY(double var1) |
public |
String |
getResponseCurveString getResponseCurve() |
public |
double[] |
getXRangedouble[] getXRange() |
|
|
if if(var0.responseCurve != null) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.type.responsecurve;
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.validation.Validators;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.core.asset.type.responsecurve.config.ResponseCurve;
class="kw">import java.util.Arrays;
class="kw">import javax.annotation.Nonnull;
class="kw">public class ScaledXResponseCurve class="kw">extends ScaledResponseCurve {
class="kw">public class="kw">static class="kw">final BuilderCodec<ScaledXResponseCurve> CODEC = BuilderCodec.<ScaledXResponseCurve>builder(
ScaledXResponseCurve.class, ScaledXResponseCurve::new
)
.documentation("A response curve scaled only on the x axis.")
.<String>append(new KeyedCodec<>("ResponseCurve", Codec.STRING), (var0, var1) -> var0.responseCurve = var1, var0 -> var0.responseCurve)
.documentation("The response curve to scale")
.addValidator(Validators.nonNull())
.addValidator(ResponseCurve.VALIDATOR_CACHE.getValidator())
.add()
.<double[]>append(
new KeyedCodec<>("XRange", Codec.DOUBLE_ARRAY), (var0, var1) -> var0.xRange = var1, var0 -> new double[]{var0.xRange[0], var0.xRange[1]}
)
.documentation("The range to map the x axis to. e.g. [ 0, 10 ]")
.addValidator(Validators.doubleArraySize(2))
.addValidator(Validators.monotonicSequentialDoubleArrayValidator())
.add()
.afterDecode(var0 -> {
if (var0.responseCurve != null) {
int var1 = ResponseCurve.getAssetMap().getIndex(var0.responseCurve);
var0.responseCurveReference = new ResponseCurve.Reference(var1, ResponseCurve.getAssetMap().getAsset(var1));
}
})
.build();
class="kw">public class="kw">static class="kw">final double[] DEFAULT_RANGE = new double[]{0.0, 1.0};
class="kw">protected String responseCurve;
class="kw">protected ResponseCurve.Reference responseCurveReference;
class="kw">protected double[] xRange = DEFAULT_RANGE;
class="kw">public ScaledXResponseCurve(String var1, double[] var2) {
this.responseCurve = var1;
this.xRange = var2;
}
class="kw">protected ScaledXResponseCurve() {
}
class="kw">public String getResponseCurve() {
class="kw">return this.responseCurve;
}
class="kw">public double[] getXRange() {
class="kw">return this.xRange;
}
@Override
class="kw">public double computeY(double var1) {
class="kw">return MathUtil.clamp(this.computeNormalisedY(var1), 0.0, 1.0);
}
class="kw">protected double computeNormalisedY(double var1) {
ResponseCurve var3 = this.responseCurveReference.get();
double var4 = this.xRange[0];
double var6 = this.xRange[1];
var1 = MathUtil.clamp(var1, var4, var6);
double var8 = (var1 - var4) / (var6 - var4);
class="kw">return var3.computeY(var8);
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "ScaledXResponseCurve{responseCurve=" + this.responseCurve + ", xRange=" + Arrays.toString(this.xRange) + "}" + super.toString();
}
}