This is another way to calculate the direction between two points that uses less blocks. While @MemoByte 's engine used the tangent (tan) function, this uses the arccosine (acos) function, this is easier because it requires less logic for different quadrants (only need to do anything to the output if it is in quadrants II or III).
Thank you @MemoByte for the demo that I used. -got it down to 31 blocks -now down to 29 blocks