- 37
- 1
- 1
У меня есть код который ждет когда нпс дойдет до цели:
И как я понял из за while все зависает т.к. он все время получает данные, как его можно заменить? буду очень благодарен даже маленькой помощи)
Java:
public static void moveNPC(NpcEntity npc, double x, double y, double z){
npc.setMoveTarget(x, y, z);
boolean test = false;
double speed = NpcEntity.setAttributes().getBaseValue(MOVEMENT_SPEED);
double currentX = npc.getX();
double currentY = npc.getY();
double currentZ = npc.getZ();
double distance = Math.sqrt((x- currentX) *(x- currentX)) + ((y - currentY) *(y - currentY)) + ((z - currentZ) *(z - currentZ));
System.out.println("Npc speed = " + speed);
System.out.println("A distance to b = " + distance);
while (!test) {
currentX = npc.getX();
currentY = npc.getY();
currentZ = npc.getZ();
distance = Math.sqrt((x- currentX) *(x- currentX)) + ((y - currentY) *(y - currentY)) + ((z - currentZ) *(z - currentZ));
if (distance < 1) {
System.out.println(npc.getName() + " has reached the target position.");
Interpreter(Player, World, line);
test = true;
} else if (npc.getDeltaMovement().lengthSqr() < 0.01) {
//System.out.println(npc.getName() + " has stopped moving.");
}
}
}