Ejemplo n.º 1
0
        private void AddAllObjects()
        {
            client.Network.CurrentSim.ObjectsPrimitives.ForEach(
                new Action<Primitive>(
                delegate(Primitive prim)
                {
                    if (prim.ParentID == 0) //root prims only
                    {
                        ObjectsListItem item = new ObjectsListItem(prim, client, lbxPrims);
                        listItems.Add(prim.LocalID, item);

                        item.PropertiesReceived += new EventHandler(item_PropertiesReceived);
                        item.RequestProperties();
                    }
                }
                ));
        }
Ejemplo n.º 2
0
        private void SearchFor(string text)
        {
            RemoveObjectEvents();

            lbxPrims.BeginUpdate();
            lbxPrims.Items.Clear();
            listItems.Clear();

            string query = text.ToLower();

            List<Primitive> results =
                client.Network.CurrentSim.ObjectsPrimitives.FindAll(
                new Predicate<Primitive>(delegate(Primitive prim)
                {
                    //evil comparison of death!
                    return (prim.ParentID == 0 && prim.PropertiesFamily.Name != null) &&
                        (prim.PropertiesFamily.Name.ToLower().Contains(query) ||
                        prim.PropertiesFamily.Description.ToLower().Contains(query));
                }));

            lock (listItems)
            {
                foreach (Primitive prim in results)
                {
                    ObjectsListItem item = new ObjectsListItem(prim, client, lbxPrims);
                    listItems.Add(prim.LocalID, item);
                    lbxPrims.Items.Add(item);
                }
            }

            lbxPrims.EndUpdate();
        }
Ejemplo n.º 3
0
        //Separate thread
        private void Objects_OnNewPrim(Simulator simulator, Primitive prim, ulong regionHandle, ushort timeDilation)
        {
            if (prim.ParentID != 0) return;

            lock (listItems)
            {
                if (listItems.ContainsKey(prim.LocalID)) return;

                BeginInvoke(new MethodInvoker(delegate()
                {
                    ObjectsListItem item = new ObjectsListItem(prim, client, lbxPrims);
                    listItems.Add(prim.LocalID, item);

                    item.PropertiesReceived += new EventHandler(item_PropertiesReceived);
                    item.RequestProperties();
                }));
            }
        }