Search in sources :

Example 86 with BlockPosition

use of net.minecraft.server.v1_10_R1.BlockPosition in project Citizens2 by CitizensDev.

the class PlayerNavigation method a.

@Override
public PathEntity a(BlockPosition paramBlockPosition) {
    BlockPosition localBlockPosition;
    if (this.b.getType(paramBlockPosition).getMaterial() == Material.AIR) {
        localBlockPosition = paramBlockPosition.down();
        while ((localBlockPosition.getY() > 0) && (this.b.getType(localBlockPosition).getMaterial() == Material.AIR)) {
            localBlockPosition = localBlockPosition.down();
        }
        if (localBlockPosition.getY() > 0) {
            return a2(localBlockPosition.up());
        }
        while ((localBlockPosition.getY() < this.b.getHeight()) && (this.b.getType(localBlockPosition).getMaterial() == Material.AIR)) {
            localBlockPosition = localBlockPosition.up();
        }
        paramBlockPosition = localBlockPosition;
    }
    if (this.b.getType(paramBlockPosition).getMaterial().isBuildable()) {
        localBlockPosition = paramBlockPosition.up();
        while ((localBlockPosition.getY() < this.b.getHeight()) && (this.b.getType(localBlockPosition).getMaterial().isBuildable())) {
            localBlockPosition = localBlockPosition.up();
        }
        return a2(localBlockPosition);
    }
    return a2(paramBlockPosition);
}
Also used : BlockPosition(net.minecraft.server.v1_11_R1.BlockPosition)

Example 87 with BlockPosition

use of net.minecraft.server.v1_10_R1.BlockPosition in project Citizens2 by CitizensDev.

the class PlayerNavigation method l.

@Override
public void l() {
    this.g += 1;
    if (this.o) {
        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).d(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_11_R1.AxisAlignedBB) BlockPosition(net.minecraft.server.v1_11_R1.BlockPosition) Vec3D(net.minecraft.server.v1_11_R1.Vec3D)

Example 88 with BlockPosition

use of net.minecraft.server.v1_10_R1.BlockPosition in project Citizens2 by CitizensDev.

the class PlayerNavigation method a2.

public PathEntity a2(Entity paramEntity) {
    if (!b()) {
        return null;
    }
    BlockPosition localBlockPosition1 = new BlockPosition(paramEntity);
    if ((this.c != null) && (!this.c.b()) && (localBlockPosition1.equals(this.q))) {
        return this.c;
    }
    this.q = localBlockPosition1;
    float f1 = h();
    this.b.methodProfiler.a("pathfind");
    BlockPosition localBlockPosition2 = new BlockPosition(this.a).up();
    int i1 = (int) (f1 + 16.0F);
    ChunkCache localChunkCache = new ChunkCache(this.b, localBlockPosition2.a(-i1, -i1, -i1), localBlockPosition2.a(i1, i1, i1), 0);
    PathEntity localPathEntity = this.r.a(localChunkCache, this.a, paramEntity, f1);
    this.b.methodProfiler.b();
    return localPathEntity;
}
Also used : ChunkCache(net.minecraft.server.v1_11_R1.ChunkCache) BlockPosition(net.minecraft.server.v1_11_R1.BlockPosition) PathEntity(net.minecraft.server.v1_11_R1.PathEntity) PathPoint(net.minecraft.server.v1_11_R1.PathPoint)

Example 89 with BlockPosition

use of net.minecraft.server.v1_10_R1.BlockPosition in project Citizens2 by CitizensDev.

the class PlayerNavigation method b.

private boolean b(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5, int paramInt6, Vec3D paramVec3D, double paramDouble1, double paramDouble2) {
    for (BlockPosition localBlockPosition : BlockPosition.a(new BlockPosition(paramInt1, paramInt2, paramInt3), new BlockPosition(paramInt1 + paramInt4 - 1, paramInt2 + paramInt5 - 1, paramInt3 + paramInt6 - 1))) {
        double d1 = localBlockPosition.getX() + 0.5D - paramVec3D.x;
        double d2 = localBlockPosition.getZ() + 0.5D - paramVec3D.z;
        if (d1 * paramDouble1 + d2 * paramDouble2 >= 0.0D) {
            Block localBlock = this.b.getType(localBlockPosition).getBlock();
            if (!localBlock.b(this.b, localBlockPosition)) {
                return false;
            }
        }
    }
    return true;
}
Also used : BlockPosition(net.minecraft.server.v1_11_R1.BlockPosition) Block(net.minecraft.server.v1_11_R1.Block)

Example 90 with BlockPosition

use of net.minecraft.server.v1_10_R1.BlockPosition in project Citizens2 by CitizensDev.

the class PlayerNavigation method r.

private int r() {
    if ((!this.a.isInWater()) || (!g())) {
        return (int) (this.a.getBoundingBox().b + 0.5D);
    }
    int i = (int) this.a.getBoundingBox().b;
    Block localBlock = this.b.getType(new BlockPosition(MathHelper.floor(this.a.locX), i, MathHelper.floor(this.a.locZ))).getBlock();
    int j = 0;
    while ((localBlock == Blocks.FLOWING_WATER) || (localBlock == Blocks.WATER)) {
        i++;
        localBlock = this.b.getType(new BlockPosition(MathHelper.floor(this.a.locX), i, MathHelper.floor(this.a.locZ))).getBlock();
        j++;
        if (j > 16) {
            return (int) this.a.getBoundingBox().b;
        }
    }
    return i;
}
Also used : BlockPosition(net.minecraft.server.v1_11_R1.BlockPosition) Block(net.minecraft.server.v1_11_R1.Block) PathPoint(net.minecraft.server.v1_11_R1.PathPoint)

Aggregations

BlockPosition (net.minecraft.server.v1_10_R1.BlockPosition)23 BlockPosition (net.minecraft.server.v1_11_R1.BlockPosition)23 BlockPosition (net.minecraft.server.v1_12_R1.BlockPosition)20 BlockPosition (net.minecraft.server.v1_8_R3.BlockPosition)17 Location (org.bukkit.Location)16 PathPoint (net.minecraft.server.v1_10_R1.PathPoint)10 PathPoint (net.minecraft.server.v1_11_R1.PathPoint)10 NPC (net.citizensnpcs.api.npc.NPC)8 NPCHolder (net.citizensnpcs.npc.ai.NPCHolder)8 MutableBlockPosition (net.minecraft.server.v1_10_R1.BlockPosition.MutableBlockPosition)7 PathType (net.minecraft.server.v1_10_R1.PathType)7 MutableBlockPosition (net.minecraft.server.v1_11_R1.BlockPosition.MutableBlockPosition)7 MutableBlockPosition (net.minecraft.server.v1_12_R1.BlockPosition.MutableBlockPosition)7 Block (net.minecraft.server.v1_10_R1.Block)6 Block (net.minecraft.server.v1_11_R1.Block)6 PathType (net.minecraft.server.v1_11_R1.PathType)6 PathType (net.minecraft.server.v1_12_R1.PathType)6 BlockPosition (net.minecraft.server.v1_9_R2.BlockPosition)6 AxisAlignedBB (net.minecraft.server.v1_10_R1.AxisAlignedBB)5 IBlockData (net.minecraft.server.v1_10_R1.IBlockData)5