Отслеживание передвижения игрока.

Версия Minecraft
1.16.5
API
Forge
Здравствуйте, хотел спросить как бы я мог отследить то, что игрок передвинулся на н-ое количество блоков? Конкретного направления нет, тобишь оно не должно от этого зависеть. Примерно понимаю что делается через вектор, но не понимаю как. Подскажите пожалуйста.
 
Решение
База линала (даже скорее школьной алгебры).
1) Сохраняешь нач. коорды игрока (x0, y0, z0).
2) Берёшь текущие коорды игрока (x, y, z).
3) Рассчитываешь вектор (x-x0, y-y0, z-z0).
4) Прекрасно. Теперь нужно узнать длину вектора. Для этого можно воспользоваться встроенными методами вектора.

Хорошо, но что, если нам нужно отслеживать именно путь игрока, т.е. прямая может быть изогнута? Вот тут всё сложнее. 2 варианта: список векторов, квантование.
1) Составляем список векторов, только 1 координата которого != 0. Так мы обеспечиваем, что игрок перемещается по прямой. Есесна, нужно будет рассмотреть случай, когда игрок движется диагонально, и разбивать вектор на два перед записью в список.
Затем просто суммируем длины векторов в списке.
2)...
1,383
115
244
База линала (даже скорее школьной алгебры).
1) Сохраняешь нач. коорды игрока (x0, y0, z0).
2) Берёшь текущие коорды игрока (x, y, z).
3) Рассчитываешь вектор (x-x0, y-y0, z-z0).
4) Прекрасно. Теперь нужно узнать длину вектора. Для этого можно воспользоваться встроенными методами вектора.

Хорошо, но что, если нам нужно отслеживать именно путь игрока, т.е. прямая может быть изогнута? Вот тут всё сложнее. 2 варианта: список векторов, квантование.
1) Составляем список векторов, только 1 координата которого != 0. Так мы обеспечиваем, что игрок перемещается по прямой. Есесна, нужно будет рассмотреть случай, когда игрок движется диагонально, и разбивать вектор на два перед записью в список.
Затем просто суммируем длины векторов в списке.
2) Квантование.
 
Сверху