Пример #1
0
        public override string ToString()
        {
            string name = this.MemoryCacheItem.Name.Replace("$Subject", GetSubjectName());

            if (name.Trim() == "")
            {
                name = "---";
            }

            if (!this.Flags.IsVisible)
            {
                name = "[invisible] " + name;
            }

            try
            {
                if (OwnerInstance != this.ParentSlot.SlotID)
                {
                    uint sid = parent.Provider.SimDescriptionProvider.FindSim(OwnerInstance).SimId;

                    name += " (" + SimPe.Localization.GetString("Gossip about") + " ";
                    name += parent.Provider.SimNameProvider.FindName(sid);
                    name += ")";
                }
            }
            catch (Exception)  {}

            if (MemoryType == SimMemoryType.Object)
            {
                name += " {";
                SimPe.Cache.MemoryCacheItem mci = SimPe.PackedFiles.Wrapper.ObjectComboBox.ObjectCache.FindItem(this.ReferencedObjectGuid);
                if (mci != null)
                {
                    name += mci.Name;
                }
                name += "}";
            }

            if (SimPe.Helper.WindowsRegistry.HiddenMode)
            {
                name += " [GUID=0x" + Helper.HexString(this.guid) + "]";
            }
            return /*data.Length.ToString()+" "+*/ (name);
        }
Пример #2
0
        protected string GetSubjectName()
        {
            string ext = " (0x" + Helper.HexString(this.SimID) + ")";
            string n   = SimPe.Localization.GetString("Unknown") + ext;

            if (parent.Provider.SimNameProvider.StoredData.ContainsKey(this.SimID))
            {
                n = parent.Provider.SimNameProvider.FindName(this.SimID).ToString();
            }
            else
            {
                SimPe.Cache.MemoryCacheItem mci = SimPe.PackedFiles.Wrapper.ObjectComboBox.ObjectCache.FindItem(this.SimID);
                if (mci != null)
                {
                    n = mci.Name + ext;
                }
            }

            return(n);
        }
Пример #3
0
        /// <summary>
        /// Create a 1:1 Clone based on the passed GUID
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        public static SimPe.Packages.GeneratableFile CreatCloneByGuid(uint guid)
        {
            SimPe.Packages.GeneratableFile         package = SimPe.Packages.GeneratableFile.CreateNew();
            SimPe.Interfaces.IAlias                a;
            Interfaces.Files.IPackedFileDescriptor pfd;
            uint            localgroup;
            OWCloneSettings cs;

            ObjectWorkshopHelper.PrepareForClone(package, out a, out localgroup, out pfd, out cs);
            SimPe.Interfaces.Scenegraph.IScenegraphFileIndex fii = FileTable.FileIndex.AddNewChild();

            SimPe.Cache.MemoryCacheItem mci = SimPe.PackedFiles.Wrapper.ObjectComboBox.ObjectCache.FindItem(guid);
            if (mci != null)
            {
                localgroup = mci.FileDescriptor.Group;
                if (localgroup == Data.MetaData.LOCAL_GROUP)
                {
                    SimPe.Interfaces.Wrapper.IGroupCacheItem gci = SimPe.FileTable.GroupCache.GetItem(mci.ParentCacheContainer.FileName);
                    if (gci != null)
                    {
                        if (!FileTable.FileIndex.Contains(mci.ParentCacheContainer.FileName))
                        {
                            fii.AddIndexFromPackage(mci.ParentCacheContainer.FileName);
                        }

                        localgroup = gci.LocalGroup;
                    }
                }
                ObjectWorkshopHelper.BaseClone(localgroup, package, false);
            }

            SimPe.Packages.GeneratableFile ret = ObjectWorkshopHelper.Start(package, a, ref pfd, localgroup, cs, true);
            fii.CloseAssignedPackages();
            FileTable.FileIndex.RemoveChild(fii);

            return(ret);
        }