В настоящее время я кодирую мод для майнкрафт. Я хочу, чтобы игрок мог смотреть на координаты x, y, z. Я также хочу иметь возможность щелкать по этому блоку в этих координатах x, y, z (и, следовательно, разбить его, если игрок находится рядом с ним).
Другая проблема, с которой я столкнулся, заключается в том, что я хочу просмотреть координаты / координаты блоков и посмотреть и щелкнуть по каждому из них, но мне нужно поместить задержку между ними, не останавливая игру.
Я попробовал некоторый код, который уже был предложен на этом форуме, но персонаж майнкрафта не совсем правильно смотрит в правильном направлении:
public void LookAt(double px, double py, double pz) {
EntityPlayer me = Minecraft.getMinecraft().player;
World world = me.world;
int x = (int) me.posX;
int y = (int) me.posY + 1;
int z = (int) me.posZ;
double dirx = x - px;
double diry = y - py;
double dirz = z - pz;
double len = Math.sqrt(dirx * dirx + diry * diry + dirz * dirz);
dirx /= len;
diry /= len;
dirz /= len;
double pitch = Math.asin(diry);
double yaw = Math.atan2(dirz, dirx);
// to degree
pitch = pitch * 180.0 / Math.PI;
yaw = yaw * 180.0 / Math.PI;
yaw += 90f;
me.rotationPitch = (float) pitch;
me.rotationYaw = (float) yaw;
}
Код выше сорта работает, как уже было сказано, но он не всегда смотрит на те же ТОЧНЫЕ координаты, когда я использую метод с другого угла / позиции.
Для задержек, которые я уже пробовал использовать Thread.sleep (), что привело к зависанию Minecraft. Я также попробовал robot.delay (), (я использую робота, чтобы эмулировать клик), но это приводит к тому же самому. Когда я не помещаю задержку, нет остановки, но она переходит к последнему набору координат в цикле и разбивает только этот один блок.