import { Entity, EntityComponentTypes } from "@minecraft/server";

/**
 * 
 * @param {Entity} entity 
 * @returns boolean
 */
export const isWalking = (entity) => {
    // Obtener la velocidad actual del jugador
    const velocity = entity.getVelocity();

    // Comprobar si la entidad no está corriendo, volando, o inmóvil
    const isMoving = velocity.x !== 0 || velocity.z !== 0; // Ignorar el eje Y porque indica movimiento vertical
    const isSprinting = entity.isSprinting;
    const isSneaking = entity.isSneaking;
    const isInAir = !entity.isOnGround;
    const isSwimming = entity.isSwimming;
    const isRiding = entity.getComponent(EntityComponentTypes.Riding) != null;

    // El jugador está caminando si se está moviendo, no está corriendo, no está agachado y está en el suelo
    if (isMoving) {
        if (isSprinting || isSneaking || isRiding || isInAir || isSwimming) return false;
        else return true;
    } return false;
}