Radegast.Rendering.SceneWindow.KillObjectHandler C# (CSharp) Method

KillObjectHandler() protected method

protected KillObjectHandler ( object sender, PacketReceivedEventArgs e ) : void
sender object
e PacketReceivedEventArgs
return void
        protected void KillObjectHandler(object sender, PacketReceivedEventArgs e)
        {
            if (e.Simulator.Handle != Client.Network.CurrentSim.Handle) return;
            if (InvokeRequired)
            {
                if (IsHandleCreated)
                {
                    BeginInvoke(new MethodInvoker(() => KillObjectHandler(sender, e)));
                }
                return;
            }

            KillObjectPacket kill = (KillObjectPacket)e.Packet;

            lock (Prims)
            {
                for (int i = 0; i < kill.ObjectData.Length; i++)
                {
                    uint id = kill.ObjectData[i].ID;
                    if (Prims.ContainsKey(id))
                    {
                        Prims[id].Dispose();
                        Prims.Remove(id);
                    }
                }
            }

            lock (Avatars)
            {
                for (int i = 0; i < kill.ObjectData.Length; i++)
                {
                    uint id = kill.ObjectData[i].ID;
                    if (Avatars.ContainsKey(id))
                    {
                        Avatars[id].Dispose();
                        Avatars.Remove(id);
                    }
                }
            }
        }
SceneWindow