DirectionalKnockback class
Пакет: com.hypixel.hytale.server.core.modules.interaction.interaction.config.server.combat
Файл: com/hypixel/hytale/server/core/modules/interaction/interaction/config/server/combat/DirectionalKnockback.java
extends: Knockback
Поля (7)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<DirectionalKnockback> |
CODEC |
|
Vector3d |
var11 |
|
double |
var12 |
|
Vector3d |
var4 |
|
Vector3d |
var5 |
|
double |
var7 |
|
double |
var9 |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
return new |
Vector3dreturn new Vector3d(var12, var9, var7) |
|
|
if if(this.relativeX != 0.0F || this.relativeZ != 0.0F) |
Исходный код
Показать/скрыть
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 DirectionalKnockback class="kw">extends Knockback {
class="kw">public class="kw">static class="kw">final BuilderCodec<DirectionalKnockback> CODEC = BuilderCodec.builder(
DirectionalKnockback.class, DirectionalKnockback::new, Knockback.BASE_CODEC
)
.append(new KeyedCodec<>("RelativeX", Codec.DOUBLE), (var0, var1) -> var0.relativeX = var1.floatValue(), var0 -> (double)var0.relativeX)
.add()
.append(new KeyedCodec<>("VelocityY", Codec.DOUBLE), (var0, var1) -> var0.velocityY = var1.floatValue(), var0 -> (double)var0.velocityY)
.add()
.append(new KeyedCodec<>("RelativeZ", Codec.DOUBLE), (var0, var1) -> var0.relativeZ = var1.floatValue(), var0 -> (double)var0.relativeZ)
.add()
.build();
class="kw">protected float relativeX;
class="kw">protected float velocityY;
class="kw">protected float relativeZ;
class="kw">public DirectionalKnockback() {
}
@Nonnull
@Override
class="kw">public Vector3d calculateVector(@Nonnull Vector3d var1, float var2, @Nonnull Vector3d var3) {
Vector3d var4 = new Vector3d(var1).sub(var3);
if (var4.lengthSquared() <= 1.0E-8) {
Vector3d var5 = new Vector3d(0.0, 0.0, -1.0);
var5.rotateY(var2);
var4.set(var5);
} else {
var4.normalize();
}
if (this.relativeX != 0.0F || this.relativeZ != 0.0F) {
Vector3d var11 = new Vector3d(this.relativeX, 0.0, this.relativeZ);
var11.rotateY(var2);
var4.add(var11);
}
double var12 = var4.x() * this.force;
double var7 = var4.z() * this.force;
double var9 = this.velocityY;
class="kw">return new Vector3d(var12, var9, var7);
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "DirectionalKnockback{relativeX=" + this.relativeX + ", relativeZ=" + this.relativeZ + "}";
}
}