Search in sources :

Example 26 with PathEntity

use of net.minecraft.server.v1_15_R1.PathEntity in project Citizens2 by CitizensDev.

the class NMSImpl method getTargetNavigator.

@Override
public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest, final NavigatorParameters params) {
    List<PathPoint> list = Lists.<PathPoint>newArrayList(Iterables.<Vector, PathPoint>transform(dest, new Function<Vector, PathPoint>() {

        @Override
        public PathPoint apply(Vector input) {
            return new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ());
        }
    }));
    PathPoint last = list.size() > 0 ? list.get(list.size() - 1) : null;
    final PathEntity path = new PathEntity(list, last != null ? new BlockPosition(last.a, last.b, last.c) : null, true);
    return getTargetNavigator(entity, params, new Function<NavigationAbstract, Boolean>() {

        @Override
        public Boolean apply(NavigationAbstract input) {
            return input.a(path, params.speed());
        }
    });
}
Also used : PathPoint(net.minecraft.server.v1_15_R1.PathPoint) Function(com.google.common.base.Function) BlockPosition(net.minecraft.server.v1_15_R1.BlockPosition) NavigationAbstract(net.minecraft.server.v1_15_R1.NavigationAbstract) PathEntity(net.minecraft.server.v1_15_R1.PathEntity) Vector(org.bukkit.util.Vector)

Example 27 with PathEntity

use of net.minecraft.server.v1_15_R1.PathEntity in project Citizens2 by CitizensDev.

the class PlayerPathfinder method a.

private PathEntity a(PathPoint var0, BlockPosition var1, boolean var2) {
    List var3 = Lists.newArrayList();
    PathPoint var4 = var0;
    var3.add(0, var0);
    while (var4.h != null) {
        var4 = var4.h;
        var3.add(0, var4);
    }
    return new PathEntity(var3, var1, var2);
}
Also used : PathPoint(net.minecraft.server.v1_15_R1.PathPoint) List(java.util.List) PathEntity(net.minecraft.server.v1_15_R1.PathEntity)

Example 28 with PathEntity

use of net.minecraft.server.v1_15_R1.PathEntity in project Citizens2 by CitizensDev.

the class PlayerPathfinder method a.

private PathEntity a(PathPoint var0, Map<PathDestination, BlockPosition> var1, float var2, int var3, float var4) {
    Set<PathDestination> var5 = var1.keySet();
    var0.e = 0.0F;
    var0.f = this.a(var0, var5);
    var0.g = var0.f;
    this.a.a();
    this.b.clear();
    this.a.a(var0);
    int var6 = 0;
    int var7 = (int) (this.d * var4);
    while (!this.a.e()) {
        ++var6;
        if (var6 >= var7) {
            break;
        }
        PathPoint var8 = this.a.c();
        var8.i = true;
        var5.stream().filter((var2x) -> {
            return var8.c(var2x) <= var3;
        }).forEach(PathDestination::e);
        if (var5.stream().anyMatch(PathDestination::f)) {
            break;
        }
        if (var8.a(var0) < var2) {
            int var9 = this.e.a(this.c, var8);
            for (int var10 = 0; var10 < var9; ++var10) {
                PathPoint var11 = this.c[var10];
                float var12 = var8.a(var11);
                var11.j = var8.j + var12;
                float var13 = var8.e + var12 + var11.k;
                if (var11.j < var2 && (!var11.c() || var13 < var11.e)) {
                    var11.h = var8;
                    var11.e = var13;
                    var11.f = this.a(var11, var5) * 1.5F;
                    if (var11.c()) {
                        this.a.a(var11, var11.e + var11.f);
                    } else {
                        var11.g = var11.e + var11.f;
                        this.a.a(var11);
                    }
                }
            }
        }
    }
    Stream var8;
    if (var5.stream().anyMatch(PathDestination::f)) {
        var8 = var5.stream().filter(PathDestination::f).map((var1x) -> {
            return this.a(var1x.d(), var1.get(var1x), true);
        }).sorted(Comparator.comparingInt(PathEntity::e));
    } else {
        var8 = getFallbackDestinations(var1, var5);
    }
    Optional var9 = var8.findFirst();
    if (!var9.isPresent()) {
        return null;
    } else {
        PathEntity var10 = (PathEntity) var9.get();
        return var10;
    }
}
Also used : Pathfinder(net.minecraft.server.v1_15_R1.Pathfinder) EntityHumanNPC(net.citizensnpcs.nms.v1_15_R1.entity.EntityHumanNPC) Iterator(java.util.Iterator) PathEntity(net.minecraft.server.v1_15_R1.PathEntity) Set(java.util.Set) Setting(net.citizensnpcs.Settings.Setting) ChunkCache(net.minecraft.server.v1_15_R1.ChunkCache) Function(java.util.function.Function) Collectors(java.util.stream.Collectors) Sets(com.google.common.collect.Sets) Path(net.minecraft.server.v1_15_R1.Path) List(java.util.List) Stream(java.util.stream.Stream) Lists(com.google.common.collect.Lists) EntityInsentient(net.minecraft.server.v1_15_R1.EntityInsentient) PathDestination(net.minecraft.server.v1_15_R1.PathDestination) Map(java.util.Map) Optional(java.util.Optional) BlockPosition(net.minecraft.server.v1_15_R1.BlockPosition) Comparator(java.util.Comparator) PathPoint(net.minecraft.server.v1_15_R1.PathPoint) PathPoint(net.minecraft.server.v1_15_R1.PathPoint) Optional(java.util.Optional) Stream(java.util.stream.Stream) PathEntity(net.minecraft.server.v1_15_R1.PathEntity) PathDestination(net.minecraft.server.v1_15_R1.PathDestination) PathPoint(net.minecraft.server.v1_15_R1.PathPoint)

Example 29 with PathEntity

use of net.minecraft.server.v1_15_R1.PathEntity in project Citizens2 by CitizensDev.

the class PlayerNavigation method a.

@Override
public boolean a(PathEntity var0, double var1) {
    if (var0 == null) {
        this.c = null;
        return false;
    } else {
        if (!var0.a(this.c)) {
            this.c = var0;
        }
        if (this.m()) {
            return false;
        } else {
            this.F_();
            if (this.c.e() <= 0) {
                return false;
            } else {
                this.d = var1;
                Vec3D var3 = this.b();
                this.f = this.e;
                this.g = var3;
                return true;
            }
        }
    }
}
Also used : Vec3D(net.minecraft.server.v1_15_R1.Vec3D)

Example 30 with PathEntity

use of net.minecraft.server.v1_15_R1.PathEntity in project Citizens2 by CitizensDev.

the class NMSImpl method getTargetNavigator.

@Override
public MCNavigator getTargetNavigator(org.bukkit.entity.Entity entity, Iterable<Vector> dest, final NavigatorParameters params) {
    List<PathPoint> list = Lists.<PathPoint>newArrayList(Iterables.<Vector, PathPoint>transform(dest, new Function<Vector, PathPoint>() {

        @Override
        public PathPoint apply(Vector input) {
            return new PathPoint(input.getBlockX(), input.getBlockY(), input.getBlockZ());
        }
    }));
    PathPoint last = list.size() > 0 ? list.get(list.size() - 1) : null;
    final PathEntity path = new PathEntity(list, last != null ? new BlockPosition(last.a, last.b, last.c) : null, true);
    return getTargetNavigator(entity, params, new Function<NavigationAbstract, Boolean>() {

        @Override
        public Boolean apply(NavigationAbstract input) {
            return input.a(path, params.speed());
        }
    });
}
Also used : PathPoint(net.minecraft.server.v1_14_R1.PathPoint) Function(com.google.common.base.Function) BlockPosition(net.minecraft.server.v1_14_R1.BlockPosition) NavigationAbstract(net.minecraft.server.v1_14_R1.NavigationAbstract) PathEntity(net.minecraft.server.v1_14_R1.PathEntity) Vector(org.bukkit.util.Vector)

Aggregations

List (java.util.List)10 Optional (java.util.Optional)9 Lists (com.google.common.collect.Lists)8 Sets (com.google.common.collect.Sets)8 Comparator (java.util.Comparator)8 Map (java.util.Map)8 Set (java.util.Set)8 Function (java.util.function.Function)8 Collectors (java.util.stream.Collectors)8 Stream (java.util.stream.Stream)8 Setting (net.citizensnpcs.Settings.Setting)8 PathEntity (net.minecraft.server.v1_16_R3.PathEntity)7 Location (org.bukkit.Location)7 Iterator (java.util.Iterator)6 PathEntity (net.minecraft.server.v1_14_R1.PathEntity)6 PathEntity (net.minecraft.server.v1_15_R1.PathEntity)6 PathPoint (net.minecraft.server.v1_16_R3.PathPoint)6 PathEntity (net.minecraft.server.v1_8_R3.PathEntity)6 PathEntity (net.minecraft.server.v1_10_R1.PathEntity)5 PathPoint (net.minecraft.server.v1_10_R1.PathPoint)5