Search in sources :

Example 41 with PathType

use of net.minecraft.server.v1_14_R1.PathType in project Citizens2 by CitizensDev.

the class PlayerPathfinderNormal method a.

private PathPoint a(int var0, int var1, int var2, int var3, double var4, EnumDirection var6) {
    PathPoint var7 = null;
    BlockPosition var8 = new BlockPosition(var0, var1, var2);
    double var9 = a(this.a, var8);
    if (var9 - var4 > 1.125D) {
        return null;
    } else {
        PathType var11 = this.a(this.b, var0, var1, var2);
        float var12 = this.b.a(var11);
        double var13 = this.b.getWidth() / 2.0D;
        if (var12 >= 0.0F) {
            var7 = this.a(var0, var1, var2);
            var7.l = var11;
            var7.k = Math.max(var7.k, var12);
        }
        if (var11 == PathType.WALKABLE) {
            return var7;
        } else {
            if ((var7 == null || var7.k < 0.0F) && var3 > 0 && var11 != PathType.FENCE && var11 != PathType.TRAPDOOR) {
                var7 = this.a(var0, var1 + 1, var2, var3 - 1, var4, var6);
                if (var7 != null && (var7.l == PathType.OPEN || var7.l == PathType.WALKABLE) && this.b.getWidth() < 1.0F) {
                    double var15 = var0 - var6.getAdjacentX() + 0.5D;
                    double var17 = var2 - var6.getAdjacentZ() + 0.5D;
                    AxisAlignedBB var19 = new AxisAlignedBB(var15 - var13, a(this.a, (new BlockPosition(var15, var1 + 1, var17))) + 0.001D, var17 - var13, var15 + var13, this.b.getHeight() + a(this.a, (new BlockPosition(var7.a, var7.b, var7.c))) - 0.002D, var17 + var13);
                    if (!this.a.getCubes(this.b, var19)) {
                        var7 = null;
                    }
                }
            }
            if (var11 == PathType.WATER && !this.e()) {
                if (this.a(this.b, var0, var1 - 1, var2) != PathType.WATER) {
                    return var7;
                }
                while (var1 > 0) {
                    --var1;
                    var11 = this.a(this.b, var0, var1, var2);
                    if (var11 != PathType.WATER) {
                        return var7;
                    }
                    var7 = this.a(var0, var1, var2);
                    var7.l = var11;
                    var7.k = Math.max(var7.k, this.b.a(var11));
                }
            }
            if (var11 == PathType.OPEN) {
                AxisAlignedBB var15 = new AxisAlignedBB(var0 - var13 + 0.5D, var1 + 0.001D, var2 - var13 + 0.5D, var0 + var13 + 0.5D, var1 + this.b.getHeight(), var2 + var13 + 0.5D);
                if (!this.a.getCubes(this.b, var15)) {
                    return null;
                }
                if (this.b.getWidth() >= 1.0F) {
                    PathType var16 = this.a(this.b, var0, var1 - 1, var2);
                    if (var16 == PathType.BLOCKED) {
                        var7 = this.a(var0, var1, var2);
                        var7.l = PathType.WALKABLE;
                        var7.k = Math.max(var7.k, var12);
                        return var7;
                    }
                }
                int var16 = 0;
                int var17 = var1;
                while (var11 == PathType.OPEN) {
                    --var1;
                    PathPoint var18;
                    if (var1 < 0) {
                        var18 = this.a(var0, var17, var2);
                        var18.l = PathType.BLOCKED;
                        var18.k = -1.0F;
                        return var18;
                    }
                    var18 = this.a(var0, var1, var2);
                    if (var16++ >= Setting.MC_NAVIGATION_MAX_FALL_DISTANCE.asInt()) {
                        var18.l = PathType.BLOCKED;
                        var18.k = -1.0F;
                        return var18;
                    }
                    var11 = this.a(this.b, var0, var1, var2);
                    var12 = this.b.a(var11);
                    if (var11 != PathType.OPEN && var12 >= 0.0F) {
                        var7 = var18;
                        var18.l = var11;
                        var18.k = Math.max(var18.k, var12);
                        break;
                    }
                    if (var12 < 0.0F) {
                        var18.l = PathType.BLOCKED;
                        var18.k = -1.0F;
                        return var18;
                    }
                }
            }
            return var7;
        }
    }
}
Also used : AxisAlignedBB(net.minecraft.server.v1_15_R1.AxisAlignedBB) PathPoint(net.minecraft.server.v1_15_R1.PathPoint) PathType(net.minecraft.server.v1_15_R1.PathType) BlockPosition(net.minecraft.server.v1_15_R1.BlockPosition) MutableBlockPosition(net.minecraft.server.v1_15_R1.BlockPosition.MutableBlockPosition) PooledBlockPosition(net.minecraft.server.v1_15_R1.BlockPosition.PooledBlockPosition) PathPoint(net.minecraft.server.v1_15_R1.PathPoint)

Example 42 with PathType

use of net.minecraft.server.v1_14_R1.PathType in project Citizens2 by CitizensDev.

the class PlayerNavigation method a.

private boolean a(int var0, int var1, int var2, int var3, int var4, int var5, Vec3D var6, double var7, double var9) {
    int var11 = var0 - var3 / 2;
    int var12 = var2 - var5 / 2;
    if (!this.b(var11, var1, var12, var3, var4, var5, var6, var7, var9)) {
        return false;
    } else {
        for (int var13 = var11; var13 < var11 + var3; ++var13) {
            for (int var14 = var12; var14 < var12 + var5; ++var14) {
                double var15 = var13 + 0.5D - var6.x;
                double var17 = var14 + 0.5D - var6.z;
                if (var15 * var7 + var17 * var9 >= 0.0D) {
                    PathType var19 = this.o.a(this.b, var13, var1 - 1, var14, this.a, var3, var4, var5, true, true);
                    if (var19 == PathType.WATER) {
                        return false;
                    }
                    if (var19 == PathType.LAVA) {
                        return false;
                    }
                    if (var19 == PathType.OPEN) {
                        return false;
                    }
                    var19 = this.o.a(this.b, var13, var1, var14, this.a, var3, var4, var5, true, true);
                    float var20 = this.a.a(var19);
                    if (var20 < 0.0F || var20 >= 8.0F) {
                        return false;
                    }
                    if (var19 == PathType.DAMAGE_FIRE || var19 == PathType.DANGER_FIRE || var19 == PathType.DAMAGE_OTHER) {
                        return false;
                    }
                }
            }
        }
        return true;
    }
}
Also used : PathType(net.minecraft.server.v1_15_R1.PathType) PathPoint(net.minecraft.server.v1_15_R1.PathPoint)

Example 43 with PathType

use of net.minecraft.server.v1_14_R1.PathType in project Citizens2 by CitizensDev.

the class PlayerNavigation method a.

private boolean a(int var0, int var1, int var2, int var3, int var4, int var5, Vec3D var6, double var7, double var9) {
    int var11 = var0 - var3 / 2;
    int var12 = var2 - var5 / 2;
    if (!b(var11, var1, var12, var3, var4, var5, var6, var7, var9))
        return false;
    for (int var13 = var11; var13 < var11 + var3; var13++) {
        for (int var14 = var12; var14 < var12 + var5; var14++) {
            double var15 = var13 + 0.5D - var6.x;
            double var17 = var14 + 0.5D - var6.z;
            if (var15 * var7 + var17 * var9 >= 0.0D) {
                PathType var19 = this.o.a(this.b, var13, var1 - 1, var14, this.a, var3, var4, var5, true, true);
                if (!a(var19))
                    return false;
                var19 = this.o.a(this.b, var13, var1, var14, this.a, var3, var4, var5, true, true);
                float var20 = this.a.a(var19);
                if (var20 < 0.0F || var20 >= 8.0F)
                    return false;
                if (var19 == PathType.DAMAGE_FIRE || var19 == PathType.DANGER_FIRE || var19 == PathType.DAMAGE_OTHER)
                    return false;
            }
        }
    }
    return true;
}
Also used : PathType(net.minecraft.server.v1_16_R3.PathType) PathPoint(net.minecraft.server.v1_16_R3.PathPoint)

Example 44 with PathType

use of net.minecraft.server.v1_14_R1.PathType in project Citizens2 by CitizensDev.

the class PlayerPathfinderNormal method a.

public PathType a(IBlockAccess var0, int var1, int var2, int var3, int var4, int var5, int var6, boolean var7, boolean var8, EnumSet var9, PathType var10, BlockPosition var11) {
    for (int var12 = 0; var12 < var4; ++var12) {
        for (int var13 = 0; var13 < var5; ++var13) {
            for (int var14 = 0; var14 < var6; ++var14) {
                int var15 = var12 + var1;
                int var16 = var13 + var2;
                int var17 = var14 + var3;
                PathType var18 = this.a(var0, var15, var16, var17);
                var18 = this.a(var0, var7, var8, var11, var18);
                if (var12 == 0 && var13 == 0 && var14 == 0) {
                    var10 = var18;
                }
                var9.add(var18);
            }
        }
    }
    return var10;
}
Also used : PathType(net.minecraft.server.v1_14_R1.PathType) PathPoint(net.minecraft.server.v1_14_R1.PathPoint)

Example 45 with PathType

use of net.minecraft.server.v1_14_R1.PathType in project Citizens2 by CitizensDev.

the class PlayerPathfinderNormal method a.

public PathType a(IBlockAccess var0, int var1, int var2, int var3, PathType var4) {
    if (var4 == PathType.WALKABLE) {
        PooledBlockPosition var5 = PooledBlockPosition.r();
        Throwable tt = null;
        try {
            for (int var7 = -1; var7 <= 1; ++var7) {
                for (int var8 = -1; var8 <= 1; ++var8) {
                    if (var7 != 0 || var8 != 0) {
                        Block var9 = var0.getType(var5.d(var7 + var1, var2, var8 + var3)).getBlock();
                        if (var9 == Blocks.CACTUS) {
                            var4 = PathType.DANGER_CACTUS;
                        } else if (var9 == Blocks.FIRE) {
                            var4 = PathType.DANGER_FIRE;
                        } else if (var9 == Blocks.SWEET_BERRY_BUSH) {
                            var4 = PathType.DANGER_OTHER;
                        }
                    }
                }
            }
        } catch (Throwable var18) {
            tt = var18;
            throw var18;
        } finally {
            if (var5 != null) {
                if (tt != null) {
                    try {
                        var5.close();
                    } catch (Throwable var17) {
                        tt.addSuppressed(var17);
                    }
                } else {
                    var5.close();
                }
            }
        }
    }
    return var4;
}
Also used : Block(net.minecraft.server.v1_14_R1.Block) TagsBlock(net.minecraft.server.v1_14_R1.TagsBlock) PooledBlockPosition(net.minecraft.server.v1_14_R1.BlockPosition.PooledBlockPosition) PathPoint(net.minecraft.server.v1_14_R1.PathPoint)

Aggregations

PathType (net.minecraft.server.v1_10_R1.PathType)8 PathType (net.minecraft.server.v1_12_R1.PathType)8 PooledBlockPosition (net.minecraft.server.v1_14_R1.BlockPosition.PooledBlockPosition)8 PathType (net.minecraft.server.v1_14_R1.PathType)8 PathType (net.minecraft.server.v1_15_R1.PathType)8 PathType (net.minecraft.server.v1_16_R3.PathType)8 BlockPosition (net.minecraft.server.v1_10_R1.BlockPosition)7 MutableBlockPosition (net.minecraft.server.v1_10_R1.BlockPosition.MutableBlockPosition)7 PathPoint (net.minecraft.server.v1_10_R1.PathPoint)7 PathPoint (net.minecraft.server.v1_11_R1.PathPoint)7 PathType (net.minecraft.server.v1_11_R1.PathType)7 PathType (net.minecraft.server.v1_13_R2.PathType)7 BlockPosition (net.minecraft.server.v1_14_R1.BlockPosition)7 MutableBlockPosition (net.minecraft.server.v1_14_R1.BlockPosition.MutableBlockPosition)7 Iterator (java.util.Iterator)6 BlockPosition (net.minecraft.server.v1_11_R1.BlockPosition)6 MutableBlockPosition (net.minecraft.server.v1_11_R1.BlockPosition.MutableBlockPosition)6 BlockPosition (net.minecraft.server.v1_12_R1.BlockPosition)6 MutableBlockPosition (net.minecraft.server.v1_12_R1.BlockPosition.MutableBlockPosition)6 BlockPosition (net.minecraft.server.v1_13_R2.BlockPosition)6