Search in sources :

Example 51 with BlockPosition

use of net.minecraft.server.v1_16_R3.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 supera(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_10_R1.BlockPosition)

Example 52 with BlockPosition

use of net.minecraft.server.v1_16_R3.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_10_R1.BlockPosition) Block(net.minecraft.server.v1_10_R1.Block)

Example 53 with BlockPosition

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

the class PlayerNavigation method supera.

public PathEntity supera(BlockPosition paramBlockPosition) {
    if (!b()) {
        return null;
    }
    if ((this.c != null) && (!this.c.b()) && (paramBlockPosition.equals(this.r))) {
        return this.c;
    }
    this.r = paramBlockPosition;
    float f1 = h();
    BlockPosition localBlockPosition = new BlockPosition(this.a);
    int i1 = (int) (f1 + 8.0F);
    ChunkCache localChunkCache = new ChunkCache(this.b, localBlockPosition.a(-i1, -i1, -i1), localBlockPosition.a(i1, i1, i1), 0);
    PathEntity localPathEntity = this.s.a(localChunkCache, this.a, this.r, f1);
    return localPathEntity;
}
Also used : ChunkCache(net.minecraft.server.v1_10_R1.ChunkCache) BlockPosition(net.minecraft.server.v1_10_R1.BlockPosition) PathEntity(net.minecraft.server.v1_10_R1.PathEntity) PathPoint(net.minecraft.server.v1_10_R1.PathPoint)

Example 54 with BlockPosition

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

the class PlayerPathfinderNormal method a.

public PathType a(IBlockAccess var1, int var2, int var3, int var4, PathType var5) {
    if (var5 == PathType.WALKABLE) {
        BlockPosition.PooledBlockPosition var6 = BlockPosition.PooledBlockPosition.r();
        Throwable var7 = null;
        try {
            for (int var8 = -1; var8 <= 1; ++var8) {
                for (int var9 = -1; var9 <= 1; ++var9) {
                    if (var8 != 0 || var9 != 0) {
                        BlockPosition blockPos;
                        try {
                            blockPos = var6.c(var8 + var2, var3, var9 + var4);
                        } catch (NoSuchMethodError ex) {
                            try {
                                blockPos = (BlockPosition.PooledBlockPosition) BLOCK_POSITION_B_C.invoke(var6, var8 + var2, var3, var9 + var4);
                            } catch (Throwable ex2) {
                                ex2.printStackTrace();
                                return PathType.BLOCKED;
                            }
                        }
                        Block var10 = var1.getType(blockPos).getBlock();
                        if (var10 == Blocks.CACTUS) {
                            var5 = PathType.DANGER_CACTUS;
                        } else if (var10 == Blocks.FIRE) {
                            var5 = PathType.DANGER_FIRE;
                        }
                    }
                }
            }
        } catch (Throwable var18) {
            var7 = var18;
            throw var18;
        } finally {
            if (var6 != null) {
                if (var7 != null) {
                    try {
                        var6.close();
                    } catch (Throwable var17) {
                        var7.addSuppressed(var17);
                    }
                } else {
                    var6.close();
                }
            }
        }
    }
    return var5;
}
Also used : MutableBlockPosition(net.minecraft.server.v1_13_R2.BlockPosition.MutableBlockPosition) BlockPosition(net.minecraft.server.v1_13_R2.BlockPosition) Block(net.minecraft.server.v1_13_R2.Block) PathPoint(net.minecraft.server.v1_13_R2.PathPoint)

Example 55 with BlockPosition

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

the class PlayerPathfinderNormal method a.

@Override
public PathType a(IBlockAccess var1, int var2, int var3, int var4) {
    PathType var5 = this.b(var1, var2, var3, var4);
    if (var5 == PathType.OPEN && var3 >= 1) {
        Block var6 = var1.getType(new BlockPosition(var2, var3 - 1, var4)).getBlock();
        PathType var7 = this.b(var1, var2, var3 - 1, var4);
        var5 = var7 != PathType.WALKABLE && var7 != PathType.OPEN && var7 != PathType.WATER && var7 != PathType.LAVA ? PathType.WALKABLE : PathType.OPEN;
        if (var7 == PathType.DAMAGE_FIRE || var6 == Blocks.MAGMA_BLOCK) {
            var5 = PathType.DAMAGE_FIRE;
        }
        if (var7 == PathType.DAMAGE_CACTUS) {
            var5 = PathType.DAMAGE_CACTUS;
        }
    }
    var5 = this.a(var1, var2, var3, var4, var5);
    return var5;
}
Also used : PathType(net.minecraft.server.v1_13_R2.PathType) MutableBlockPosition(net.minecraft.server.v1_13_R2.BlockPosition.MutableBlockPosition) BlockPosition(net.minecraft.server.v1_13_R2.BlockPosition) Block(net.minecraft.server.v1_13_R2.Block)

Aggregations

BlockPosition (net.minecraft.server.v1_12_R1.BlockPosition)39 BlockPosition (net.minecraft.server.v1_16_R3.BlockPosition)36 BlockPosition (net.minecraft.server.v1_8_R3.BlockPosition)34 Location (org.bukkit.Location)31 BlockPosition (net.minecraft.server.v1_10_R1.BlockPosition)30 BlockPosition (net.minecraft.server.v1_11_R1.BlockPosition)30 BlockPosition (net.minecraft.server.v1_15_R1.BlockPosition)26 BlockPosition (net.minecraft.server.v1_14_R1.BlockPosition)24 ArrayList (java.util.ArrayList)23 Chunk (org.bukkit.Chunk)23 List (java.util.List)19 CraftWorld (org.bukkit.craftbukkit.v1_12_R1.CraftWorld)18 CraftWorld (org.bukkit.craftbukkit.v1_16_R3.CraftWorld)18 Map (java.util.Map)17 CraftWorld (org.bukkit.craftbukkit.v1_8_R3.CraftWorld)17 Iterator (java.util.Iterator)14 HashMap (java.util.HashMap)12 ComplexCollisionBox (cc.funkemunky.api.utils.world.types.ComplexCollisionBox)10 SimpleCollisionBox (cc.funkemunky.api.utils.world.types.SimpleCollisionBox)10 BlockPosition (net.minecraft.server.v1_13_R2.BlockPosition)10