0ad/binaries/data/mods/public/simulation/helpers/Entity.js
2011-06-17 22:13:39 +00:00

21 lines
703 B
JavaScript
Executable File

function DistanceBetweenEntities(first, second)
{
var cmpFirstPosition = Engine.QueryInterface(first, IID_Position);
if (!cmpFirstPosition || !cmpFirstPosition.IsInWorld())
return Infinity;
var firstPosition = cmpFirstPosition.GetPosition();
var cmpSecondPosition = Engine.QueryInterface(second, IID_Position);
if (!cmpSecondPosition || !cmpSecondPosition.IsInWorld())
return Infinity;
var secondPosition = cmpSecondPosition.GetPosition();
var dx = secondPosition.x - firstPosition.x;
var dz = secondPosition.z - firstPosition.z;
var horizDistance = Math.sqrt(dx * dx + dz * dz);
return horizDistance;
}
Engine.RegisterGlobal("DistanceBetweenEntities", DistanceBetweenEntities);