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) + "}";
      }
   }
}