Search in sources :

Example 11 with Vec3D

use of net.minecraft.server.v1_8_R3.Vec3D in project Citizens2 by CitizensDev.

the class PlayerNavigation method l.

@Override
public void l() {
    this.h += 1;
    if (this.p) {
        j();
    }
    if (n()) {
        return;
    }
    if (b()) {
        m();
    } else if ((this.c != null) && (this.c.e() < this.c.d())) {
        Vec3D localVec3D = c();
        Vec3D localObject = this.c.a(this.a, this.c.e());
        if ((localVec3D.y > localObject.y) && (!this.a.onGround) && (MathHelper.floor(localVec3D.x) == MathHelper.floor(localObject.x)) && (MathHelper.floor(localVec3D.z) == MathHelper.floor(localObject.z))) {
            this.c.c(this.c.e() + 1);
        }
    }
    if (n()) {
        return;
    }
    Vec3D localVec3D = this.c.a(this.a);
    if (localVec3D == null) {
        return;
    }
    Object localObject = new BlockPosition(localVec3D).down();
    AxisAlignedBB localAxisAlignedBB = this.b.getType((BlockPosition) localObject).c(this.b, (BlockPosition) localObject);
    localVec3D = localVec3D.a(0.0D, 1.0D - localAxisAlignedBB.e, 0.0D);
    this.a.getControllerMove().a(localVec3D.x, localVec3D.y, localVec3D.z, this.d);
}
Also used : AxisAlignedBB(net.minecraft.server.v1_10_R1.AxisAlignedBB) BlockPosition(net.minecraft.server.v1_10_R1.BlockPosition) Vec3D(net.minecraft.server.v1_10_R1.Vec3D)

Example 12 with Vec3D

use of net.minecraft.server.v1_8_R3.Vec3D in project Citizens2 by CitizensDev.

the class PlayerNavigation method m.

@Override
protected void m() {
    Vec3D localVec3D1 = c();
    int i1 = this.c.d();
    for (int i2 = this.c.e(); i2 < this.c.d(); i2++) {
        if (this.c.a(i2).b != Math.floor(localVec3D1.y)) {
            i1 = i2;
            break;
        }
    }
    this.o = (this.a.width > 0.75F ? this.a.width / 2.0F : 0.75F - this.a.width / 2.0F);
    Vec3D localVec3D2 = this.c.f();
    if ((MathHelper.e((float) (this.a.locX - (localVec3D2.x + 0.5D))) < this.o) && (MathHelper.e((float) (this.a.locZ - (localVec3D2.z + 0.5D))) < this.o)) {
        this.c.c(this.c.e() + 1);
    }
    int i3 = MathHelper.f(this.a.width);
    int i4 = (int) this.a.length + 1;
    int i5 = i3;
    for (int i6 = i1 - 1; i6 >= this.c.e(); i6--) {
        if (a(localVec3D1, this.c.a(this.a, i6), i3, i4, i5)) {
            this.c.c(i6);
            break;
        }
    }
    a(localVec3D1);
}
Also used : Vec3D(net.minecraft.server.v1_10_R1.Vec3D) PathPoint(net.minecraft.server.v1_10_R1.PathPoint)

Example 13 with Vec3D

use of net.minecraft.server.v1_8_R3.Vec3D in project Citizens2 by CitizensDev.

the class PlayerNavigation method a.

@Override
public boolean a(PathEntity paramPathEntity, double paramDouble) {
    if (paramPathEntity == null) {
        this.c = null;
        return false;
    }
    if (!paramPathEntity.a(this.c)) {
        this.c = paramPathEntity;
    }
    d();
    if (this.c.d() == 0) {
        return false;
    }
    this.d = paramDouble;
    Vec3D localVec3D = c();
    this.i = this.h;
    this.j = localVec3D;
    return true;
}
Also used : Vec3D(net.minecraft.server.v1_10_R1.Vec3D)

Example 14 with Vec3D

use of net.minecraft.server.v1_8_R3.Vec3D in project Citizens2 by CitizensDev.

the class PlayerNavigation method k.

@Override
public void k() {
    this.f += 1;
    if (m()) {
        return;
    }
    if (b()) {
        l();
    } else if ((this.d != null) && (this.d.e() < this.d.d())) {
        Vec3D localVec3D = c();
        Vec3D localObject = this.d.a(this.b, this.d.e());
        if ((localVec3D.b > localObject.b) && (!this.b.onGround) && (MathHelper.floor(localVec3D.a) == MathHelper.floor(localObject.a)) && (MathHelper.floor(localVec3D.c) == MathHelper.floor(localObject.c))) {
            this.d.c(this.d.e() + 1);
        }
    }
    if (m()) {
        return;
    }
    Vec3D localVec3D = this.d.a(this.b);
    if (localVec3D == null) {
        return;
    }
    Object localObject = new AxisAlignedBB(localVec3D.a, localVec3D.b, localVec3D.c, localVec3D.a, localVec3D.b, localVec3D.c).grow(0.5D, 0.5D, 0.5D);
    List<AxisAlignedBB> localList = this.c.getCubes(this.b, ((AxisAlignedBB) localObject).a(0.0D, -1.0D, 0.0D));
    double d1 = -1.0D;
    localObject = ((AxisAlignedBB) localObject).c(0.0D, 1.0D, 0.0D);
    for (AxisAlignedBB localAxisAlignedBB : localList) {
        d1 = localAxisAlignedBB.b((AxisAlignedBB) localObject, d1);
    }
    this.b.getControllerMove().a(localVec3D.a, localVec3D.b + d1, localVec3D.c, this.e);
}
Also used : AxisAlignedBB(net.minecraft.server.v1_8_R3.AxisAlignedBB) Vec3D(net.minecraft.server.v1_8_R3.Vec3D)

Example 15 with Vec3D

use of net.minecraft.server.v1_8_R3.Vec3D in project Citizens2 by CitizensDev.

the class PlayerNavigation method a.

@Override
protected boolean a(Vec3D paramVec3D1, Vec3D paramVec3D2, int paramInt1, int paramInt2, int paramInt3) {
    int i = MathHelper.floor(paramVec3D1.a);
    int j = MathHelper.floor(paramVec3D1.c);
    double d1 = paramVec3D2.a - paramVec3D1.a;
    double d2 = paramVec3D2.c - paramVec3D1.c;
    double d3 = d1 * d1 + d2 * d2;
    if (d3 < 1.0E-8D) {
        return false;
    }
    double d4 = 1.0D / Math.sqrt(d3);
    d1 *= d4;
    d2 *= d4;
    paramInt1 += 2;
    paramInt3 += 2;
    if (!a(i, (int) paramVec3D1.b, j, paramInt1, paramInt2, paramInt3, paramVec3D1, d1, d2)) {
        return false;
    }
    paramInt1 -= 2;
    paramInt3 -= 2;
    double d5 = 1.0D / Math.abs(d1);
    double d6 = 1.0D / Math.abs(d2);
    double d7 = i * 1 - paramVec3D1.a;
    double d8 = j * 1 - paramVec3D1.c;
    if (d1 >= 0.0D) {
        d7 += 1.0D;
    }
    if (d2 >= 0.0D) {
        d8 += 1.0D;
    }
    d7 /= d1;
    d8 /= d2;
    int k = d1 < 0.0D ? -1 : 1;
    int m = d2 < 0.0D ? -1 : 1;
    int n = MathHelper.floor(paramVec3D2.a);
    int i1 = MathHelper.floor(paramVec3D2.c);
    int i2 = n - i;
    int i3 = i1 - j;
    while ((i2 * k > 0) || (i3 * m > 0)) {
        if (d7 < d8) {
            d7 += d5;
            i += k;
            i2 = n - i;
        } else {
            d8 += d6;
            j += m;
            i3 = i1 - j;
        }
        if (!a(i, (int) paramVec3D1.b, j, paramInt1, paramInt2, paramInt3, paramVec3D1, d1, d2)) {
            return false;
        }
    }
    return true;
}
Also used : PathPoint(net.minecraft.server.v1_8_R3.PathPoint)

Aggregations

Vec3D (net.minecraft.server.v1_10_R1.Vec3D)5 Vec3D (net.minecraft.server.v1_11_R1.Vec3D)5 Vec3D (net.minecraft.server.v1_12_R1.Vec3D)5 PathPoint (net.minecraft.server.v1_8_R3.PathPoint)3 Vec3D (net.minecraft.server.v1_8_R3.Vec3D)3 BlockPosition (net.minecraft.server.v1_10_R1.BlockPosition)2 BlockPosition (net.minecraft.server.v1_11_R1.BlockPosition)2 BlockPosition (net.minecraft.server.v1_12_R1.BlockPosition)2 Block (net.minecraft.server.v1_8_R3.Block)2 BlockPosition (net.minecraft.server.v1_8_R3.BlockPosition)2 AxisAlignedBB (net.minecraft.server.v1_10_R1.AxisAlignedBB)1 EntityHuman (net.minecraft.server.v1_10_R1.EntityHuman)1 EntityPolarBear (net.minecraft.server.v1_10_R1.EntityPolarBear)1 PathPoint (net.minecraft.server.v1_10_R1.PathPoint)1 AxisAlignedBB (net.minecraft.server.v1_11_R1.AxisAlignedBB)1 EntityHuman (net.minecraft.server.v1_11_R1.EntityHuman)1 EntityPolarBear (net.minecraft.server.v1_11_R1.EntityPolarBear)1 PathPoint (net.minecraft.server.v1_11_R1.PathPoint)1 AxisAlignedBB (net.minecraft.server.v1_12_R1.AxisAlignedBB)1 EntityBird (net.minecraft.server.v1_12_R1.EntityBird)1