private void CoarseLocationHandler(Packet packet, Simulator simulator)
{
CoarseLocationUpdatePacket coarse = (CoarseLocationUpdatePacket)packet;
lock (simulator.avatarPositions)
{
simulator.avatarPositions.Clear();
for (int i = 0; i < coarse.Location.Length; i++)
{
if (i == coarse.Index.You)
{
simulator.positionIndexYou = i;
}
else if (i == coarse.Index.Prey)
{
simulator.positionIndexPrey = i;
}
simulator.avatarPositions.Add(new Vector3(coarse.Location[i].X, coarse.Location[i].Y,
coarse.Location[i].Z * 4));
}
if (OnCoarseLocationUpdate != null)
{
try { OnCoarseLocationUpdate(simulator); }
catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); }
}
}
}