Esempio n. 1
0
        void IPicksInterface.Update(ProfilePick value)
        {
            var replaceVals = new Dictionary <string, object>
            {
                ["pickuuid"]     = value.PickID,
                ["creatoruuid"]  = value.Creator.ID,
                ["toppick"]      = value.TopPick,
                ["parceluuid"]   = value.ParcelID,
                ["name"]         = value.Name,
                ["description"]  = value.Description,
                ["snapshotuuid"] = value.SnapshotID,
                ["parcelname"]   = value.ParcelName,
                ["originalname"] = value.OriginalName,
                ["simname"]      = value.SimName,
                ["posglobal"]    = value.GlobalPosition,
                ["sortorder"]    = value.SortOrder,
                ["enabled"]      = value.Enabled
            };

            using (var conn = new MySqlConnection(m_ConnectionString))
            {
                conn.Open();
                conn.ReplaceInto("userpicks", replaceVals);
            }
        }
Esempio n. 2
0
        bool IPicksInterface.TryGetValue(UGUI user, UUID id, out ProfilePick pick)
        {
            using (var conn = new MySqlConnection(m_ConnectionString))
            {
                conn.Open();
                using (var cmd = new MySqlCommand("SELECT * FROM userpicks WHERE pickuuid = @uuid LIMIT 1", conn))
                {
                    cmd.Parameters.AddParameter("@uuid", id);
                    using (MySqlDataReader reader = cmd.ExecuteReader())
                    {
                        if (reader.Read())
                        {
                            pick                = new ProfilePick();
                            pick.Creator        = reader.GetUGUI("creatoruuid");
                            pick.Description    = reader.GetString("description");
                            pick.Enabled        = reader.GetBoolean("enabled");
                            pick.Name           = reader.GetString("name");
                            pick.OriginalName   = reader.GetString("originalname");
                            pick.ParcelID       = reader.GetParcelID("parceluuid");
                            pick.PickID         = reader.GetUUID("pickuuid");
                            pick.SimName        = reader.GetString("simname");
                            pick.SnapshotID     = reader.GetUUID("snapshotuuid");
                            pick.SortOrder      = reader.GetInt32("sortorder");
                            pick.TopPick        = reader.GetBoolean("toppick");
                            pick.GlobalPosition = reader.GetVector3("posglobal");
                            pick.ParcelName     = reader.GetString("parcelname");
                            return(true);
                        }
                    }
                }
            }

            pick = default(ProfilePick);
            return(false);
        }
        public bool TryGetValue(UGUI user, UUID id, out ProfilePick pick)
        {
            pick = default(ProfilePick);
            RwLockedDictionary <UUID, ProfilePick> picks;

            return(m_Picks.TryGetValue(user.ID, out picks) && picks.TryGetValue(id, out pick));
        }
Esempio n. 4
0
        void Avatars_PickInfoReply(object sender, PickInfoReplyEventArgs e)
        {
            if (e.PickID != requestedPick)
            {
                return;
            }

            if (InvokeRequired)
            {
                BeginInvoke(new MethodInvoker(() => Avatars_PickInfoReply(sender, e)));
                return;
            }

            lock (pickCache)
            {
                if (!pickCache.ContainsKey(e.PickID))
                {
                    pickCache.Add(e.PickID, e.Pick);
                }
            }

            currentPick = e.Pick;

            if (pickPicturePanel.Controls.Count > 0)
            {
                pickPicturePanel.Controls[0].Dispose();
            }
            pickPicturePanel.Controls.Clear();

            if (agentID == client.Self.AgentID || e.Pick.SnapshotID != UUID.Zero)
            {
                SLImageHandler img = new SLImageHandler(instance, e.Pick.SnapshotID, string.Empty);
                img.Dock     = DockStyle.Fill;
                img.SizeMode = PictureBoxSizeMode.StretchImage;
                pickPicturePanel.Controls.Add(img);

                if (agentID == client.Self.AgentID)
                {
                    img.AllowUpdateImage = true;
                    ProfilePick p = e.Pick;
                    img.ImageUpdated += (psender, pe) =>
                    {
                        img.UpdateImage(pe.NewImageID);
                        p.SnapshotID = pe.NewImageID;
                        client.Self.PickInfoUpdate(p.PickID, p.TopPick, p.ParcelID, p.Name, p.PosGlobal, p.SnapshotID, p.Desc);
                    };
                }
            }

            pickTitle.Text = e.Pick.Name;

            pickDetail.Text = e.Pick.Desc;

            if (!parcelCache.ContainsKey(e.Pick.ParcelID))
            {
                pickLocation.Text = string.Format("Unkown parcel, {0} ({1}, {2}, {3})",
                                                  e.Pick.SimName,
                                                  ((int)e.Pick.PosGlobal.X) % 256,
                                                  ((int)e.Pick.PosGlobal.Y) % 256,
                                                  ((int)e.Pick.PosGlobal.Z) % 256
                                                  );
                client.Parcels.RequestParcelInfo(e.Pick.ParcelID);
            }
            else
            {
                Parcels_ParcelInfoReply(this, new ParcelInfoReplyEventArgs(parcelCache[e.Pick.ParcelID]));
            }
        }
 public void Update(ProfilePick pick)
 {
     m_Picks[pick.Creator.ID][pick.PickID] = pick;
 }
Esempio n. 6
0
 public void Update(ProfilePick pick)
 {
     throw new NotSupportedException();
 }
Esempio n. 7
0
 public bool TryGetValue(UGUI user, UUID id, out ProfilePick pick)
 {
     pick = default(ProfilePick);
     return(false);
 }