ShakeIntensity class
Пакет: com.hypixel.hytale.builtin.adventure.camera.asset.cameraeffect
Файл: com/hypixel/hytale/builtin/adventure/camera/asset/cameraeffect/ShakeIntensity.java
Поля (10)
| Модификаторы | Тип | Имя |
|---|---|---|
|
public static final BuilderCodec<ShakeIntensity.Modifier> |
CODEC |
|
private float[] |
input |
|
private float[] |
output |
|
float |
var2 |
|
|
var2 |
|
float |
var3 |
|
|
var3 |
|
int |
var4 |
|
float |
var6 |
|
float |
var7 |
Методы (6)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
Modifierpublic Modifier() |
|
public float |
applypublic float apply(float var1) |
|
|
for for(int var5 = 1; var5 < var4; var5++) |
public |
float |
getValuefloat getValue() |
|
|
if if(var1 < var2) |
|
public String |
toStringpublic String toString() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.camera.asset.cameraeffect;
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.protocol.AccumulationMode;
class="kw">import com.hypixel.hytale.server.core.codec.ProtocolCodecs;
class="kw">import it.unimi.dsi.fastutil.floats.FloatUnaryOperator;
class="kw">import java.util.Arrays;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class ShakeIntensity {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<ShakeIntensity> CODEC = BuilderCodec.builder(ShakeIntensity.class, ShakeIntensity::new)
.appendInherited(new KeyedCodec<>("Value", Codec.FLOAT), (var0, var1) -> var0.value = var1, var0 -> var0.value, (var0, var1) -> var0.value = var1.value)
.documentation("The intensity used when no contextual value (such as damage) is present.")
.addValidator(Validators.range(0.0F, 1.0F))
.add()
.<AccumulationMode>appendInherited(
new KeyedCodec<>("AccumulationMode", ProtocolCodecs.ACCUMULATION_MODE_CODEC),
(var0, var1) -> var0.accumulationMode = var1,
var0 -> var0.accumulationMode,
(var0, var1) -> var0.accumulationMode = var1.accumulationMode
)
.documentation("The method by which intensity is combined when multiple instances of the same camera effect overlap.")
.addValidator(Validators.nonNull())
.add()
.<ShakeIntensity.Modifier>appendInherited(
new KeyedCodec<>("Modifier", ShakeIntensity.Modifier.CODEC),
(var0, var1) -> var0.modifier = var1,
var0 -> var0.modifier,
(var0, var1) -> var0.modifier = var1.modifier
)
.documentation("Converts a contextual-intensity value (such as damage) to a camera shake intensity value.")
.add()
.build();
@Nonnull
class="kw">static class="kw">final AccumulationMode DEFAULT_ACCUMULATION_MODE = AccumulationMode.Set;
class="kw">public class="kw">static class="kw">final float DEFAULT_CONTEXT_VALUE = 0.0F;
class="kw">protected float value = 0.0F;
@Nonnull
class="kw">protected AccumulationMode accumulationMode = DEFAULT_ACCUMULATION_MODE;
@Nullable
class="kw">protected ShakeIntensity.Modifier modifier;
class="kw">public ShakeIntensity() {
}
class="kw">public float getValue() {
class="kw">return this.value;
}
@Nonnull
class="kw">public AccumulationMode getAccumulationMode() {
class="kw">return this.accumulationMode;
}
@Nullable
class="kw">public ShakeIntensity.Modifier getModifier() {
class="kw">return this.modifier;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "ShakeIntensity{value=" + this.value + ", accumulationMode=" + this.accumulationMode + ", modifier=" + this.modifier + "}";
}
class="kw">public class="kw">static class Modifier class="kw">implements FloatUnaryOperator {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<ShakeIntensity.Modifier> CODEC = BuilderCodec.builder(ShakeIntensity.Modifier.class, ShakeIntensity.Modifier::new)
.appendInherited(
new KeyedCodec<>("Input", Codec.FLOAT_ARRAY), (var0, var1) -> var0.input = var1, var0 -> var0.input, (var0, var1) -> var0.input = var1.input
)
.addValidator(Validators.nonEmptyFloatArray())
.addValidator(Validators.nonNull())
.add()
.<float[]>appendInherited(
new KeyedCodec<>("Output", Codec.FLOAT_ARRAY), (var0, var1) -> var0.output = var1, var0 -> var0.output, (var0, var1) -> var0.output = var1.output
)
.addValidator(Validators.nonEmptyFloatArray())
.addValidator(Validators.nonNull())
.add()
.build();
class="kw">private float[] input;
class="kw">private float[] output;
class="kw">public Modifier() {
}
class="kw">public float apply(float var1) {
float var2 = this.input[0];
float var3 = this.output[0];
if (var1 < var2) {
class="kw">return var3;
}
int var4 = Math.min(this.input.length, this.output.length);
for (int var5 = 1; var5 < var4; var5++) {
float var6 = this.input[var5];
float var7 = this.output[var5];
if (!(var1 > var6)) {
class="kw">return MathUtil.mapToRange(var1, var2, var6, var3, var7);
}
var2 = var6;
var3 = var7;
}
class="kw">return var3;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "Modifier{input=" + Arrays.toString(this.input) + ", output=" + Arrays.toString(this.output) + "}";
}
}
}