Вычислить с какой стороны был нанесен урон

Версия Minecraft
1.7.10

tox1cozZ

aka Agravaine
8,454
598
2,890
Сторону источника урона(моба) я нашел:
Java:
public static ForgeDirection getDamageLocation(float playerYaw, double x1, double z1, double x2, double z2) {
        double dx = x1 - x2;
        double dz = z1 - z2;
        float yaw = MathHelper.wrapAngleTo180_float(playerYaw);
        double angle = Math.toDegrees(Math.atan2(dz, dx));
        
        if(angle > -45 && angle <= 45){
            return ForgeDirection.WEST;
        }else if(angle > 45 && angle <= 135){
            
            return ForgeDirection.NORTH;
        }else if(angle < -45 && angle >= -135){
            return ForgeDirection.SOUTH;
        }else{
            return ForgeDirection.EAST;
        }
    }
А вот каким образом сюда применить еще и сторону в которую смотрит игрок(который терпит дамаг) не знаю.
ScreenShot_20190127151529.png
 
7,099
324
1,509
1548598339206.png
Если вычесть из угла направления выстрела угол направления моба, а потом вызвать твою функцию - получишь то, что надо
 
1,976
68
220
Типа, находишь угол между источником и игроком по горизонтали, сравниваешь с нулём, получаешь слева/справа; то же самое для вертикали, получаешь снизу/сверху. Используя углы как коэффициенты меняешь "яркость" индикатора откуда нанесли урон. Профит
 

tox1cozZ

aka Agravaine
8,454
598
2,890
Всем спасибо, разобрался. Ох уж этот матан, ваще не вкуриваю нифига.
Java:
public static ForgeDirection getDamageLocation(float playerYaw, double x1, double z1, double x2, double z2) {
        double dx = x1 - x2;
        double dz = z1 - z2;
        double angle = MathHelper.wrapAngleTo180_double(playerYaw - Math.toDegrees(Math.atan2(dz, dx)));
        
        if(angle > -45 && angle <= 45){
            return ForgeDirection.EAST;
        }else if(angle > 45 && angle <= 135){
            return ForgeDirection.NORTH;
        }else if(angle < -45 && angle >= -135){
            return ForgeDirection.SOUTH;
        }else{
            return ForgeDirection.WEST;
        }
    }
 
Сверху