classpublicPriority 3
PointKnockback
com.hypixel.hytale.server.core.modules.interaction.interaction.config.server.combat.PointKnockback
extends Knockback
1
Methods
1
Public Methods
4
Fields
1
Constructors
Constants
BuilderCodec<PointKnockback>CODEC= BuilderCodec.builder(PointKnockback.class, PointKnockback::new, Knockback.BASE_CODEC)
.appe...
Constructors
public
PointKnockback()Methods
Public Methods (1)
public
Vector3d calculateVector(Vector3d source, float yaw, Vector3d target)@Nonnull@Override
Fields
Protected Fields (4)
protected
int offsetXprotected
int offsetZprotected
int rotateYprotected
float velocityYInheritance
Parent
Current
Interface
Child
Use mouse wheel to zoom, drag to pan. Click nodes to navigate.
Related Classes
Source Code
package com.hypixel.hytale.server.core.modules.interaction.interaction.config.server.combat;
import com.hypixel.hytale.codec.Codec;
import com.hypixel.hytale.codec.KeyedCodec;
import com.hypixel.hytale.codec.builder.BuilderCodec;
import com.hypixel.hytale.math.vector.Vector3d;
import javax.annotation.Nonnull;
public class PointKnockback extends Knockback {
public static final BuilderCodec<PointKnockback> CODEC = BuilderCodec.builder(PointKnockback.class, PointKnockback::new, Knockback.BASE_CODEC)
.append(
new KeyedCodec<>("VelocityY", Codec.DOUBLE),
(knockbackAttachment, d) -> knockbackAttachment.velocityY = d.floatValue(),
knockbackAttachment -> (double)knockbackAttachment.velocityY
)
.add()
.append(
new KeyedCodec<>("RotateY", Codec.INTEGER),
(knockbackAttachment, i) -> knockbackAttachment.rotateY = i,
knockbackAttachment -> knockbackAttachment.rotateY
)
.add()
.append(
new KeyedCodec<>("OffsetX", Codec.INTEGER),
(knockbackAttachment, i) -> knockbackAttachment.offsetX = i,
knockbackAttachment -> knockbackAttachment.offsetX
)
.add()
.append(
new KeyedCodec<>("OffsetZ", Codec.INTEGER),
(knockbackAttachment, i) -> knockbackAttachment.offsetZ = i,
knockbackAttachment -> knockbackAttachment.offsetZ
)
.add()
.build();
protected float velocityY;
protected int rotateY;
protected int offsetX;
protected int offsetZ;
public PointKnockback() {
}
@Nonnull
@Override
public Vector3d calculateVector(@Nonnull Vector3d source, float yaw, @Nonnull Vector3d target) {
Vector3d from = source;
if (this.offsetX != 0 || this.offsetZ != 0) {
from = new Vector3d((double)this.offsetX, 0.0, (double)this.offsetZ);
from.rotateY(yaw * 57.295776F);
from.add(source);
}
Vector3d vector = Vector3d.directionTo(from, target).normalize();
if (this.rotateY != 0) {
vector.rotateY((float)this.rotateY);
}
double x = vector.getX() * (double)this.force;
double z = vector.getZ() * (double)this.force;
double y = (double)this.velocityY;
return new Vector3d(x, y, z);
}
}