ForceKnockback class

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

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

extends: Knockback

Поля (2)

МодификаторыТипИмя
final BuilderCodec<ForceKnockback> CODEC
Vector3d var4

Исходный код

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

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.vector.Vector3dUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class ForceKnockback class="kw">extends Knockback {
   class="kw">public class="kw">static class="kw">final BuilderCodec<ForceKnockback> CODEC = BuilderCodec.builder(ForceKnockback.class, ForceKnockback::new, Knockback.BASE_CODEC)
      .appendInherited(
         new KeyedCodec<>("Direction", Vector3dUtil.CODEC),
         (var0, var1) -> var0.direction.set(var1),
         var0 -> var0.direction,
         (var0, var1) -> var0.direction.set(var1.direction)
      )
      .addValidator(Validators.nonNull())
      .add()
      .afterDecode(var0 -> var0.direction.normalize())
      .build();
   class="kw">private class="kw">final Vector3d direction = new Vector3d(Vector3dUtil.UP);

   class="kw">public ForceKnockback() {
   }

   @Nonnull
   @Override
   class="kw">public Vector3d calculateVector(Vector3d var1, float var2, Vector3d var3) {
      Vector3d var4 = new Vector3d(this.direction);
      var4.rotateY(var2);
      var4.mul(this.force);
      class="kw">return var4;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "ForceKnockback{direction=" + this.direction + "} " + super.toString();
   }
}