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); }
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); }
/// <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); }