DirectionViewProvider.java
package com.hypixel.hytale.math.hitdetection.view;
import com.hypixel.hytale.codec.Codec;
import com.hypixel.hytale.codec.KeyedCodec;
import com.hypixel.hytale.codec.builder.BuilderCodec;
import com.hypixel.hytale.math.hitdetection.MatrixProvider;
import com.hypixel.hytale.math.matrix.Matrix4d;
import com.hypixel.hytale.math.vector.Vector3d;
import javax.annotation.Nonnull;
public class DirectionViewProvider implements MatrixProvider {
public static final BuilderCodec<DirectionViewProvider> CODEC;
public static final Vector3d DEFAULT_UP;
protected final Matrix4d matrix;
protected final Vector3d position;
protected final Vector3d direction;
protected final Vector3d up;
protected double yaw;
protected double pitch;
protected double yawOffset;
protected double pitchOffset;
protected boolean invalid;
public {
( (), (), (), (DEFAULT_UP));
}
{
.matrix = matrix;
.position = position;
.direction = direction;
.up = up;
.invalid = ;
}
Vector3d {
.position;
}
DirectionViewProvider {
.setPosition(vec, , , );
}
DirectionViewProvider {
.setPosition(vec.x, vec.y, vec.z, offsetX, offsetY, offsetZ);
}
DirectionViewProvider {
.position.assign(x, y, z);
.invalid = ;
;
}
DirectionViewProvider {
.setPosition(x + offsetX, y + offsetY, z + offsetZ);
}
Vector3d {
.direction;
}
DirectionViewProvider {
.setDirection(vec.x, vec.y, vec.z);
}
DirectionViewProvider {
yaw += .yawOffset;
pitch += .pitchOffset;
.direction.assign(yaw, pitch);
.invalid = ;
;
}
DirectionViewProvider {
.direction.assign(x, y, z);
.invalid = ;
;
}
DirectionViewProvider {
.up.assign(x, y, z);
.invalid = ;
;
}
Matrix4d {
(.invalid) {
.matrix.viewDirection(.position.x, .position.y, .position.z, .direction.x, .direction.y, .direction.z, .up.x, .up.y, .up.z);
.invalid = ;
}
.matrix;
}
String {
String.valueOf(.up);
+ var10000 + + .yaw + + .pitch + + .yawOffset + + .pitchOffset + ;
}
{
CODEC = ((BuilderCodec.Builder)((BuilderCodec.Builder)((BuilderCodec.Builder)BuilderCodec.builder(DirectionViewProvider.class, DirectionViewProvider::).append( (, Codec.DOUBLE), (projectionProvider, d) -> projectionProvider.yawOffset = d, (projectionProvider) -> projectionProvider.yawOffset).add()).append( (, Codec.DOUBLE), (projectionProvider, d) -> projectionProvider.pitchOffset = d, (projectionProvider) -> projectionProvider.pitchOffset).add()).append( (, Vector3d.CODEC), (projectionProvider, vec) -> projectionProvider.up.assign(vec), (projectionProvider) -> projectionProvider.up).add()).build();
DEFAULT_UP = (, , );
}
}