use of net.minecraft.server.v1_15_R1.PathType in project Citizens2 by CitizensDev.
the class PlayerPathfinderNormal method a.
@Override
public PathType a(IBlockAccess var0, int var1, int var2, int var3) {
PathType var4 = this.b(var0, var1, var2, var3);
if (var4 == PathType.OPEN && var2 >= 1) {
Block var5 = var0.getType(new BlockPosition(var1, var2 - 1, var3)).getBlock();
PathType var6 = this.b(var0, var1, var2 - 1, var3);
var4 = var6 != PathType.WALKABLE && var6 != PathType.OPEN && var6 != PathType.WATER && var6 != PathType.LAVA ? PathType.WALKABLE : PathType.OPEN;
if (var6 == PathType.DAMAGE_FIRE || var5 == Blocks.MAGMA_BLOCK || var5 == Blocks.CAMPFIRE) {
var4 = PathType.DAMAGE_FIRE;
}
if (var6 == PathType.DAMAGE_CACTUS) {
var4 = PathType.DAMAGE_CACTUS;
}
if (var6 == PathType.DAMAGE_OTHER) {
var4 = PathType.DAMAGE_OTHER;
}
}
var4 = this.a(var0, var1, var2, var3, var4);
return var4;
}
use of net.minecraft.server.v1_15_R1.PathType in project Citizens2 by CitizensDev.
the class PlayerPathfinderNormal method a.
@Override
public int a(PathPoint[] var0, PathPoint var1) {
int var2 = 0;
int var3 = 0;
PathType var4 = this.a(this.b, var1.a, var1.b + 1, var1.c);
if (this.b.a(var4) >= 0.0F) {
var3 = MathHelper.d(Math.max(1.0F, this.b.K));
}
double var5 = a(this.a, (new BlockPosition(var1.a, var1.b, var1.c)));
PathPoint var7 = this.a(var1.a, var1.b, var1.c + 1, var3, var5, EnumDirection.SOUTH);
if (var7 != null && !var7.i && var7.k >= 0.0F) {
var0[var2++] = var7;
}
PathPoint var8 = this.a(var1.a - 1, var1.b, var1.c, var3, var5, EnumDirection.WEST);
if (var8 != null && !var8.i && var8.k >= 0.0F) {
var0[var2++] = var8;
}
PathPoint var9 = this.a(var1.a + 1, var1.b, var1.c, var3, var5, EnumDirection.EAST);
if (var9 != null && !var9.i && var9.k >= 0.0F) {
var0[var2++] = var9;
}
PathPoint var10 = this.a(var1.a, var1.b, var1.c - 1, var3, var5, EnumDirection.NORTH);
if (var10 != null && !var10.i && var10.k >= 0.0F) {
var0[var2++] = var10;
}
PathPoint var11 = this.a(var1.a - 1, var1.b, var1.c - 1, var3, var5, EnumDirection.NORTH);
if (this.a(var1, var8, var10, var11)) {
var0[var2++] = var11;
}
PathPoint var12 = this.a(var1.a + 1, var1.b, var1.c - 1, var3, var5, EnumDirection.NORTH);
if (this.a(var1, var9, var10, var12)) {
var0[var2++] = var12;
}
PathPoint var13 = this.a(var1.a - 1, var1.b, var1.c + 1, var3, var5, EnumDirection.SOUTH);
if (this.a(var1, var8, var7, var13)) {
var0[var2++] = var13;
}
PathPoint var14 = this.a(var1.a + 1, var1.b, var1.c + 1, var3, var5, EnumDirection.SOUTH);
if (this.a(var1, var9, var7, var14)) {
var0[var2++] = var14;
}
return var2;
}
use of net.minecraft.server.v1_15_R1.PathType in project Citizens2 by CitizensDev.
the class PlayerPathfinderNormal method a.
@Override
public PathType a(IBlockAccess var0, int var1, int var2, int var3, EntityInsentient var4, int var5, int var6, int var7, boolean var8, boolean var9) {
EnumSet var10 = EnumSet.noneOf(PathType.class);
PathType var11 = PathType.BLOCKED;
double var12 = var4.getWidth() / 2.0D;
BlockPosition var14 = new BlockPosition(var4);
var11 = this.a(var0, var1, var2, var3, var5, var6, var7, var8, var9, var10, var11, var14);
if (var10.contains(PathType.FENCE)) {
return PathType.FENCE;
} else {
PathType var15 = PathType.BLOCKED;
Iterator var17 = var10.iterator();
while (var17.hasNext()) {
PathType var16 = (PathType) var17.next();
if (var4.a(var16) < 0.0F) {
return var16;
}
if (var4.a(var16) >= var4.a(var15)) {
var15 = var16;
}
}
if (var11 == PathType.OPEN && var4.a(var15) == 0.0F) {
return PathType.OPEN;
} else {
return var15;
}
}
}
use of net.minecraft.server.v1_15_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;
}
}
}
use of net.minecraft.server.v1_15_R1.PathType in project Citizens2 by CitizensDev.
the class PlayerPathfinderNormal method a.
public PathType a(IBlockAccess var0, int var1, int var2, int var3, EntityHumanNPC var4, int var5, int var6, int var7, boolean var8, boolean var9) {
EnumSet var10 = EnumSet.noneOf(PathType.class);
PathType var11 = PathType.BLOCKED;
double var12 = var4.getWidth() / 2.0D;
BlockPosition var14 = new BlockPosition(var4);
var11 = this.a(var0, var1, var2, var3, var5, var6, var7, var8, var9, var10, var11, var14);
if (var10.contains(PathType.FENCE)) {
return PathType.FENCE;
} else {
PathType var15 = PathType.BLOCKED;
Iterator var17 = var10.iterator();
while (var17.hasNext()) {
PathType var16 = (PathType) var17.next();
if (var4.a(var16) < 0.0F) {
return var16;
}
if (var4.a(var16) >= var4.a(var15)) {
var15 = var16;
}
}
if (var11 == PathType.OPEN && var4.a(var15) == 0.0F) {
return PathType.OPEN;
} else {
return var15;
}
}
}
Aggregations