PointKnockback class

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

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

extends: Knockback

Поля (8)

МодификаторыТипИмя
final BuilderCodec<PointKnockback> CODEC
double var10
double var12
Vector3d var4
var4
Vector3d var5
double var6
double var8

Методы (4)

МодификаторыВозвратСигнатура
abstract return new Vector3dreturn new Vector3d(var8, var12, var10)
if if(this.offsetX != 0 || this.offsetZ != 0)
if if(var6 > 1.0E-8)
if if(this.rotateY != 0)

Исходный код

Показать/скрыть
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 javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class PointKnockback class="kw">extends Knockback {
   class="kw">public class="kw">static class="kw">final BuilderCodec<PointKnockback> CODEC = BuilderCodec.builder(PointKnockback.class, PointKnockback::new, Knockback.BASE_CODEC)
      .append(new KeyedCodec<>("VelocityY", Codec.DOUBLE), (var0, var1) -> var0.velocityY = var1.floatValue(), var0 -> (double)var0.velocityY)
      .add()
      .append(new KeyedCodec<>("RotateY", Codec.INTEGER), (var0, var1) -> var0.rotateY = var1, var0 -> var0.rotateY)
      .add()
      .append(new KeyedCodec<>("OffsetX", Codec.INTEGER), (var0, var1) -> var0.offsetX = var1, var0 -> var0.offsetX)
      .add()
      .append(new KeyedCodec<>("OffsetZ", Codec.INTEGER), (var0, var1) -> var0.offsetZ = var1, var0 -> var0.offsetZ)
      .add()
      .build();
   class="kw">protected float velocityY;
   class="kw">protected int rotateY;
   class="kw">protected int offsetX;
   class="kw">protected int offsetZ;

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

   @Nonnull
   @Override
   class="kw">public Vector3d calculateVector(@Nonnull Vector3d var1, float var2, @Nonnull Vector3d var3) {
      Vector3d var4 = var1;
      if (this.offsetX != 0 || this.offsetZ != 0) {
         var4 = new Vector3d(this.offsetX, 0.0, this.offsetZ);
         var4.rotateY(var2);
         var4.add(var1);
      }

      Vector3d var5 = new Vector3d(var3).sub(var4);
      double var6 = var5.lengthSquared();
      if (var6 > 1.0E-8) {
         var5.div(Math.sqrt(var6));
      } else {
         var5.set(0.0, 0.0, -1.0).rotateY(var2);
      }

      if (this.rotateY != 0) {
         var5.rotateY(Math.toRadians(this.rotateY));
      }

      double var8 = var5.x() * this.force;
      double var10 = var5.z() * this.force;
      double var12 = this.velocityY;
      class="kw">return new Vector3d(var8, var12, var10);
   }
}