Search in sources :

Example 1 with Vec2

use of mathax.client.utils.misc.Vec2 in project Client by MatHax.

the class Strafe method onMove.

@Override
public void onMove(PlayerMoveEvent event) {
    switch(stage) {
        case 0:
            if (PlayerUtils.isMoving()) {
                stage++;
                speed = 1.18f * getDefaultSpeed() - 0.01;
            }
        case 1:
            if (!PlayerUtils.isMoving() || !mc.player.isOnGround())
                break;
            ((IVec3d) event.movement).setY(getHop(0.40123128));
            speed *= settings.ncpSpeed.get();
            stage++;
            break;
        case 2:
            speed = distance - 0.76 * (distance - getDefaultSpeed());
            stage++;
            break;
        case 3:
            if (!mc.world.isSpaceEmpty(mc.player.getBoundingBox().offset(0.0, mc.player.getVelocity().y, 0.0)) || mc.player.verticalCollision && stage > 0) {
                stage = 0;
            }
            speed = distance - (distance / 159.0);
            break;
    }
    speed = Math.max(speed, getDefaultSpeed());
    if (settings.ncpSpeedLimit.get()) {
        if (System.currentTimeMillis() - timer > 2500L)
            timer = System.currentTimeMillis();
        speed = Math.min(speed, System.currentTimeMillis() - timer > 1250L ? 0.44D : 0.43D);
    }
    Vec2 change = transformStrafe(speed);
    double velX = change.x;
    double velZ = change.y;
    Anchor anchor = Modules.get().get(Anchor.class);
    if (anchor.isActive() && anchor.controlMovement) {
        velX = anchor.deltaX;
        velZ = anchor.deltaZ;
    }
    ((IVec3d) event.movement).setXZ(velX, velZ);
}
Also used : IVec3d(mathax.client.mixininterface.IVec3d) Anchor(mathax.client.systems.modules.movement.Anchor) Vec2(mathax.client.utils.misc.Vec2)

Example 2 with Vec2

use of mathax.client.utils.misc.Vec2 in project Client by MatHax.

the class Strafe method transformStrafe.

private Vec2 transformStrafe(double speed) {
    float forward = mc.player.input.movementForward;
    float side = mc.player.input.movementSideways;
    float yaw = mc.player.prevYaw + (mc.player.getYaw() - mc.player.prevYaw) * mc.getTickDelta();
    double velX, velZ;
    if (forward == 0.0f && side == 0.0f)
        return new Vec2(0, 0);
    else if (forward != 0.0f) {
        if (side >= 1.0f) {
            yaw += (float) (forward > 0.0f ? -45 : 45);
            side = 0.0f;
        } else if (side <= -1.0f) {
            yaw += (float) (forward > 0.0f ? 45 : -45);
            side = 0.0f;
        }
        if (forward > 0.0f)
            forward = 1.0f;
        else if (forward < 0.0f)
            forward = -1.0f;
    }
    double mx = Math.cos(Math.toRadians(yaw + 90.0f));
    double mz = Math.sin(Math.toRadians(yaw + 90.0f));
    velX = (double) forward * speed * mx + (double) side * speed * mz;
    velZ = (double) forward * speed * mz - (double) side * speed * mx;
    return new Vec2(velX, velZ);
}
Also used : Vec2(mathax.client.utils.misc.Vec2)

Aggregations

Vec2 (mathax.client.utils.misc.Vec2)2 IVec3d (mathax.client.mixininterface.IVec3d)1 Anchor (mathax.client.systems.modules.movement.Anchor)1