Files
2025-09-18 18:42:41 -07:00

38 lines
1.1 KiB
JavaScript

import { ButtonState, InputButton } from "@minecraft/server";
export class PlayerMovement {
inputInfo;
constructor(player) {
this.player = player;
this.inputInfo = player.inputInfo;
}
isJumping() {
return this.inputInfo.getButtonState(InputButton.Jump) === ButtonState.Pressed;
}
isSneaking() {
return this.inputInfo.getButtonState(InputButton.Sneak) === ButtonState.Pressed;
}
getMovementVector() {
return this.inputInfo.getMovementVector();
}
getMajorDirectionFacing() {
const { x, y, z } = this.player.getViewDirection();
const xzAngle = Math.atan2(z, x) * (180 / Math.PI);
if (y > 0.7)
return { x: 0, y: 1, z: 0 };
if (y < -0.7)
return { x: 0, y: -1, z: 0 };
if (xzAngle >= -45 && xzAngle < 45)
return { x: 1, y: 0, z: 0 };
else if (xzAngle >= 45 && xzAngle < 135)
return { x: 0, y: 0, z: 1 };
else if (xzAngle >= 135 || xzAngle < -135)
return { x: -1, y: 0, z: 0 };
return { x: 0, y: 0, z: -1 };
}
}