예제 #1
0
        public override void Grid_OnCoarseLocationUpdate(object sender, CoarseLocationUpdateEventArgs e)
        {
            Simulator sim            = e.Simulator;
            var       newEntries     = e.NewEntries;
            var       removedEntries = e.RemovedEntries;

            if (newEntries.Count == 0 && removedEntries.Count == 0)
            {
                return;
            }
            foreach (UUID uuid in newEntries)
            {
                SimObject A = CreateSimAvatar(uuid, this, sim);
                Vector3   pos;
                if (sim.AvatarPositions.TryGetValue(uuid, out pos))
                {
                    A.UpdatePosition(sim.Handle, pos);
                }
            }
            foreach (UUID uuid in removedEntries)
            {
                DeclareAvatar(uuid);
            }
            if (!MaintainAvatarMetaData)
            {
                return;
            }
            //for (int i = 0; i < coarse.Location.Length; i++)
            //{
            //    if (i == coarse.Index.$bot)
            //    {
            //        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));
            //}

            //OnEvent("On-Coarse-Location-Update", paramNamesOnCoarseLocationUpdate, paramTypesOnCoarseLocationUpdate, sim, newEntries , removedEntries);
        }