Knockback class

Пакет: com.hypixel.hytale.server.core.modules.interaction.interaction.config.server.combat

Файл: com/hypixel/hytale/server/core/modules/interaction/interaction/config/server/combat/Knockback.java

Поля (1)

МодификаторыТипИмя
final CodecMapCodec<Knockback> CODEC

Методы (5)

МодификаторыВозвратСигнатура
abstract abstract Vector3d calculateVectorVector3d calculateVector(Vector3d var1, float var2, Vector3d var3)
public float getDurationfloat getDuration()
public float getForcefloat getForce()
public VelocityConfig getVelocityConfigVelocityConfig getVelocityConfig()
public ChangeVelocityType getVelocityTypeChangeVelocityType getVelocityType()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.interaction.interaction.config.server.combat;

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.lookup.CodecMapCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.protocol.ChangeVelocityType;
class="kw">import com.hypixel.hytale.server.core.codec.ProtocolCodecs;
class="kw">import com.hypixel.hytale.server.core.modules.splitvelocity.VelocityConfig;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class="kw">abstract class Knockback {
   class="kw">public class="kw">static class="kw">final CodecMapCodec<Knockback> CODEC = new CodecMapCodec<>("Type", true);
   class="kw">public class="kw">static class="kw">final BuilderCodec<Knockback> BASE_CODEC = BuilderCodec.abstractBuilder(Knockback.class)
      .append(new KeyedCodec<>("Force", Codec.DOUBLE), (var0, var1) -> var0.force = var1.floatValue(), var0 -> (double)var0.force)
      .add()
      .<Float>append(new KeyedCodec<>("Duration", Codec.FLOAT), (var0, var1) -> var0.duration = var1, var0 -> var0.duration)
      .addValidator(Validators.greaterThanOrEqual(0.0F))
      .documentation("The duration for which the knockback force should be continuously applied. If 0, force is applied once.")
      .add()
      .append(new KeyedCodec<>("VelocityType", ProtocolCodecs.CHANGE_VELOCITY_TYPE_CODEC), (var0, var1) -> var0.velocityType = var1, var0 -> var0.velocityType)
      .add()
      .appendInherited(
         new KeyedCodec<>("VelocityConfig", VelocityConfig.CODEC),
         (var0, var1) -> var0.velocityConfig = var1,
         var0 -> var0.velocityConfig,
         (var0, var1) -> var0.velocityConfig = var1.velocityConfig
      )
      .add()
      .build();
   class="kw">protected float force;
   class="kw">protected float duration;
   class="kw">protected ChangeVelocityType velocityType = ChangeVelocityType.Add;
   class="kw">private VelocityConfig velocityConfig;

   class="kw">protected Knockback() {
   }

   class="kw">public float getForce() {
      class="kw">return this.force;
   }

   class="kw">public float getDuration() {
      class="kw">return this.duration;
   }

   class="kw">public ChangeVelocityType getVelocityType() {
      class="kw">return this.velocityType;
   }

   class="kw">public VelocityConfig getVelocityConfig() {
      class="kw">return this.velocityConfig;
   }

   class="kw">public class="kw">abstract Vector3d calculateVector(Vector3d var1, float var2, Vector3d var3);

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "Knockback{force="
         + this.force
         + ", duration="
         + this.duration
         + ", velocityType="
         + this.velocityType
         + ", velocityConfig="
         + this.velocityConfig
         + "}";
   }
}