Beispiel #1
0
        public void UpdateGUI(SimPe.Interfaces.Plugin.IFileWrapper wrapper)
        {
            Wrapper.Fami fami = (Wrapper.Fami)wrapper;
            form.wrapper = fami;

            form.tbname.Text  = fami.Name;
            form.tbmoney.Text = fami.Money.ToString();

            form.tbfamily.Text  = fami.Friends.ToString();
            form.tblotinst.Text = "0x" + Helper.HexString(fami.LotInstance);
            form.tbalbum.Text   = "0x" + Helper.HexString(fami.AlbumGUID);
            form.tbflag.Text    = "0x" + Helper.HexString(fami.Flags);
            form.tbsubhood.Text = "0x" + Helper.HexString(fami.SubHoodNumber);
            form.tbvac.Text     = "0x" + Helper.HexString(fami.VacationLotInstance);
            form.tbblot.Text    = "0x" + Helper.HexString(fami.CurrentlyOnLotInstance);
            form.tbbmoney.Text  = fami.BusinessMoney.ToString();
            form.lbmembers.Items.Clear();


            form.tbcafood1.Text   = fami.CastAwayFood.ToString();
            form.tbcares.Text     = fami.CastAwayResources.ToString();
            form.tbcaunk.Text     = "0x" + Helper.HexString(fami.CastAwayFoodDecay);
            form.tbcaunk.ReadOnly = !SimPe.Helper.WindowsRegistry.HiddenMode;

            form.tbbmoney.Enabled   = (int)fami.Version >= (int)SimPe.PackedFiles.Wrapper.FamiVersions.Business;
            form.tbblot.Enabled     = (int)fami.Version >= (int)SimPe.PackedFiles.Wrapper.FamiVersions.Business;
            form.tbvac.Enabled      = (int)fami.Version >= (int)SimPe.PackedFiles.Wrapper.FamiVersions.Voyage;
            form.tbsubhood.Enabled  = (int)fami.Version >= (int)SimPe.PackedFiles.Wrapper.FamiVersions.University;
            form.gbCastaway.Visible = (int)fami.Version >= (int)SimPe.PackedFiles.Wrapper.FamiVersions.Castaway;

            form.tbmoney.Enabled  = (int)fami.Version < (int)SimPe.PackedFiles.Wrapper.FamiVersions.Castaway;
            form.tbbmoney.Enabled = (int)fami.Version < (int)SimPe.PackedFiles.Wrapper.FamiVersions.Castaway;

            string[] names = fami.SimNames;
            for (int i = 0; i < fami.Members.Length; i++)
            {
                Data.Alias a = new SimPe.Data.Alias(fami.Members[i], fami.SimNames[i]);
                form.lbmembers.Items.Add(a);
            }

            form.cbsims.Items.Clear();
            form.cbsims.Sorted = false;
            foreach (IAlias a in fami.NameProvider.StoredData.Values)
            {
                form.cbsims.Items.Add(a);
            }
            form.cbsims.Sorted = true;
        }
Beispiel #2
0
        /// <summary>
        /// Returns an ArrayLIst of Alias Object with all available Names for this Type
        /// </summary>
        /// <param name="wt">The Type of the Want</param>
        /// <returns>List of Alias Items</returns>
        public ArrayList GetNames(WantType wt)
        {
            ArrayList ret = new ArrayList();
            Hashtable ht  = (Hashtable)Map[wt];

            if (ht != null)
            {
                foreach (uint t in ht.Keys)
                {
                    Data.Alias a = new SimPe.Data.Alias(t, (string)ht[t], "{name}");
                    ret.Add(a);
                }
            }

            return(ret);
        }
Beispiel #3
0
        /// <summary>
        /// Adds the currently Available SimNames to the Map
        /// </summary>
        /// <remarks>Feeds the IProviderRegistry set in the FileTable!</remarks>
        public void AddSimNames()
        {
            Hashtable ht = new Hashtable();

            map[WantType.Sim] = ht;

            if (FileTable.ProviderRegistry == null)
            {
                return;
            }

            foreach (ushort inst in FileTable.ProviderRegistry.SimDescriptionProvider.SimInstance.Keys)
            {
                SimPe.Interfaces.Wrapper.ISDesc isdsc = FileTable.ProviderRegistry.SimDescriptionProvider.FindSim(inst);
                SimPe.PackedFiles.Wrapper.SDesc sdsc  = (SimPe.PackedFiles.Wrapper.SDesc)isdsc;
                sdsc.SetProviders(FileTable.ProviderRegistry);
                Data.Alias a = new SimPe.Data.Alias(inst, sdsc.SimName + " " + sdsc.SimFamilyName + " (" + sdsc.HouseholdName + ")");
                ht[(uint)inst] = a.Name;
            }
        }
Beispiel #4
0
        /// <summary>
        /// Returns an Alias for the given Guid
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        public SimPe.Interfaces.IAlias FindObject(uint guid)
        {
            MemoryCacheItem mci = FindItem(guid);

            SimPe.Data.Alias a;
            if (mci == null)
            {
                a = new SimPe.Data.Alias(guid, Localization.Manager.GetString("Unknown"));
            }
            else
            {
                a = new SimPe.Data.Alias(guid, mci.Name);
            }

            object[] o = new object[3];
            o[0]  = mci.FileDescriptor;
            o[1]  = mci.ObjectType;
            o[2]  = mci.Icon;
            a.Tag = o;

            return(a);
        }
Beispiel #5
0
        /// <summary>
        /// Constructor for the Class
        /// </summary>
        public NgbhUI()
        {
            //form = WrapperFactory.form;
            if (form == null)
            {
                form = new NgbhForm();
                form.cbguid.Items.Clear();
                form.cbguid.Sorted = false;

                form.cbguid.Items.Add(new Data.Alias(0, "-: " + Localization.Manager.GetString("Unknown"), "{name}"));


                Wait.Message = ("Load Memories from Cache");
                foreach (MemoryCacheItem mci in ObjectCache.List)
                {
                    Data.Alias a = new SimPe.Data.Alias(mci.Guid, mci.Name);
                    object[]   o = new object[3];
                    o[0] = mci.FileDescriptor;
                    o[1] = mci.ObjectType;
                    o[2] = mci.Icon;

                    a.Tag = o;

                    if (mci.ObjectType == Data.ObjectTypes.Memory)
                    {
                        form.cbguid.Items.Add(a);
                    }
                    else if (mci.ObjectType == Data.ObjectTypes.Normal)
                    {
                        if (mci.ObjdName.ToLower().IndexOf("token") != -1)
                        {
                            form.cbguid.Items.Add(a);
                        }
                    }
                }
                form.cbguid.Sorted = true;
            }
        }
Beispiel #6
0
        public static TreeNode GetParentNode(TreeNodeCollection nodes, string[] names, int id, SimPe.Cache.ObjectCacheItem oci, SimPe.Data.Alias a, ImageList ilist)
        {
            TreeNode ret = null;

            if (id < names.Length)
            {
                string name = names[id];
                //does the nodes list already contain a Node with this Name?
                foreach (TreeNode tn in nodes)
                {
                    if (tn.Text.Trim().ToLower() == name.Trim().ToLower())
                    {
                        ret = tn;
                        if (id < names.Length - 1)
                        {
                            ret = GetParentNode(tn.Nodes, names, id + 1, oci, a, ilist);
                        }

                        if (ret == null)
                        {
                            ret = tn;
                        }

                        break;
                    }
                }
            }

            //no Node with this Name found so far, create one
            if (ret == null)
            {
                if (id < names.Length)
                {
                    ret = new TreeNode(names[id]);
                }
                else
                {
                    ret = new TreeNode(SimPe.Localization.GetString("Unknown"));
                }

                nodes.Add(ret);
                ret.SelectedImageIndex = 0;
                ret.ImageIndex         = 0;

                if (id < names.Length - 1)
                {
                    ret = GetParentNode(ret.Nodes, names, id + 1, oci, a, ilist);
                }
            }

            if (id == 0)
            {
                TreeNode tn = new TreeNode(a.ToString());
                tn.Tag = a;

                SimPe.Interfaces.Scenegraph.IScenegraphFileIndexItem fii = (SimPe.Interfaces.Scenegraph.IScenegraphFileIndexItem)oci.Tag;
                string flname = "";
                if (fii.Package != null)
                {
                    if (fii.Package.FileName != null)
                    {
                        flname = fii.Package.FileName.Trim().ToLower();
                    }
                }

                if (flname.StartsWith(PathProvider.SimSavegameFolder.Trim().ToLower()))
                {
                    tn.ImageIndex = 2;
                }
                else if (oci.Thumbnail != null)
                {
                    Image img = oci.Thumbnail;
                    //if (Helper.WindowsRegistry.GraphQuality) img = Ambertation.Drawing.GraphicRoutines.KnockoutImage(img, new System.Drawing.Point(0,0), System.Drawing.Color.Magenta);
                    img = Ambertation.Drawing.GraphicRoutines.ScaleImage(img, ilist.ImageSize.Width, ilist.ImageSize.Height, Helper.WindowsRegistry.GraphQuality);

                    ilist.Images.Add(img);
                    tn.ImageIndex = ilist.Images.Count - 1;
                }
                else
                {
                    tn.ImageIndex = 1;
                }
                tn.SelectedImageIndex = tn.ImageIndex;
                ret.Nodes.Add(tn);
            }
            return(ret);
        }
Beispiel #7
0
 private void ver1_LoadedItem(SimPe.Cache.ObjectCacheItem oci, SimPe.Interfaces.Scenegraph.IScenegraphFileIndexItem fii, SimPe.Data.Alias a)
 {
     if (LoadedItem != null)
     {
         LoadedItem(oci, fii, a);
     }
 }
Beispiel #8
0
        /// <summary>
        /// Show the Relink Screen
        /// </summary>
        /// <param name="path">The Path where to look for character Files</param>
        /// <param name="wrp">The Sim Description Wrapper</param>
        /// <returns>The new SimID</returns>
        public static uint Execute(SimPe.PackedFiles.Wrapper.SDesc wrp)
        {
            Hashtable     ht  = wrp.nameprovider.StoredData;
            SimRelinkForm srf = new SimRelinkForm();

            WaitingScreen.Wait();
            try
            {
                foreach (SimPe.Data.Alias a in ht.Values)
                {
                    ListViewItem lvi = new ListViewItem(a.Name + " " + (string)a.Tag[2]);
                    lvi.Tag = a;

                    if (a.Tag[1] != null)
                    {
                        lvi.ImageIndex = srf.ilist.Images.Count;
                        Image img = SimPe.Plugin.ImageLoader.Preview((Image)a.Tag[1], srf.ilist.ImageSize);

                        if (wrp.sdescprovider.FindSim(a.Id) != null)
                        {
                            Graphics gr = Graphics.FromImage(img);
                            gr.FillRectangle(new Pen(Color.FromArgb(0x60, Color.Red), 1).Brush, 0, 0, img.Width, img.Height);
                        }

                        srf.ilist.Images.Add(img);
                    }

                    srf.lv.Items.Add(lvi);
                }
                srf.lv.Sort();
                srf.btlink.Enabled = false;
                srf.ok             = false;
            }
            finally { WaitingScreen.Stop(srf); }

            srf.ShowDialog();

            if (srf.ok)
            {
                SimPe.Data.Alias a = (SimPe.Data.Alias)srf.lv.SelectedItems[0].Tag;
                SimPe.Packages.GeneratableFile pkg = SimPe.Packages.GeneratableFile.LoadFromFile((string)a.Tag[0]);

                Interfaces.Files.IPackedFileDescriptor[] pfds = pkg.FindFiles(Data.MetaData.OBJD_FILE);
                if (pfds.Length == 1)
                {
                    SimPe.PackedFiles.Wrapper.Objd objd = new SimPe.PackedFiles.Wrapper.Objd(null);
                    objd.ProcessData(pfds[0], pkg);

                    if (srf.cbfile.Checked)
                    {
                        objd.Guid = wrp.SimId;
                        objd.SynchronizeUserData();
                        pkg.Save();
                    }
                    else
                    {
                        wrp.SimId = objd.Guid;
                    }
                }
            }

            return(wrp.SimId);
        }