public object FindUserTxtr(string name) { if (txtrs == null) { this.LoadSkinImages(); } if (txtrs == null) { return(null); } name = name.ToLower(); SimPe.Plugin.Txtr txtr = (SimPe.Plugin.Txtr)txtrs[name]; if (txtr == null) { txtr = (SimPe.Plugin.Txtr)txtrs[name + "_txtr"]; } if (txtr == null) { return(null); } if (txtr.Fast) { txtr.Fast = false; SimPe.Packages.File fl = SimPe.Packages.File.LoadFromFile(txtr.Package.FileName); Interfaces.Files.IPackedFileDescriptor pfd = fl.FindFile(txtr.FileDescriptor.Type, txtr.FileDescriptor.SubType, txtr.FileDescriptor.Group, txtr.FileDescriptor.Instance); txtr.ProcessData(pfd, fl); //fl.Reader.Close(); } return(txtr); }
/// <summary> /// Searches BHAV Files /// </summary> /// <param name="pfd"></param> /// <param name="package"></param> /// <param name="prov"></param> /// <returns>Null if no match or a valid SearchItem Object</returns> public SearchItem BhavSearch(Interfaces.Files.IPackedFileDescriptor pfd, Interfaces.Files.IPackageFile package, Interfaces.IProviderRegistry prov) { ushort opcode = Convert.ToUInt16(this.tbOpcode.Text, 16); //group Filter if (tbbhavgroup.Text.Trim() != "") { uint group = Convert.ToUInt32(this.tbbhavgroup.Text, 16); if (pfd.Group != group) { return(null); } } Bhav bhav = new Bhav(prov.OpcodeProvider); bhav.ProcessData(pfd, package); foreach (Instruction i in bhav) { if (i.OpCode == opcode) { return(new SearchItem(bhav.FileName, pfd)); } } return(null); }
/// <summary> /// Returns all matching FileIndexItems /// </summary> /// <param name="pfd">The File you are looking for</param> /// <returns>all FileIndexItems</returns> public PackedFileDescriptors FindFile(Interfaces.Files.IPackedFileDescriptor pfd) { ArrayList list = new ArrayList(); if (!flat) { if (index.ContainsKey(pfd.Type)) { Hashtable groups = (Hashtable)index[pfd.Type]; if (groups.ContainsKey(pfd.Group)) { Hashtable instances = (Hashtable)groups[pfd.Group]; if (instances.ContainsKey(pfd.LongInstance)) { return((PackedFileDescriptors)instances[pfd.LongInstance]); } } } return(new PackedFileDescriptors()); } else { PackedFileDescriptors ret = new PackedFileDescriptors(); foreach (Interfaces.Files.IPackedFileDescriptor i in pfds) { if (i.Equals(pfd)) { ret.Add(i); } } return(ret); } }
/// <summary> /// Returns the Thumbnail of an Object /// </summary> /// <param name="group"></param> /// <param name="modelname"></param> /// <returns>The Thumbnail</returns> public static Image GetThumbnail(string message, uint[] types, uint group, uint inst, SimPe.Packages.File thumbs) { foreach (uint type in types) { //0x6C2A22C3 Interfaces.Files.IPackedFileDescriptor[] pfds = thumbs.FindFile(type, group, inst); if (pfds.Length == 0) { pfds = thumbs.FindFile(type, 0, inst); } if (pfds.Length > 0) { Interfaces.Files.IPackedFileDescriptor pfd = pfds[0]; try { SimPe.PackedFiles.Wrapper.Picture pic = new SimPe.PackedFiles.Wrapper.Picture(); pic.ProcessData(pfd, thumbs); Bitmap bm = (Bitmap)ImageLoader.Preview(pic.Image, WaitingScreen.ImageSize); if (WaitingScreen.Running) { WaitingScreen.Update(bm, message); } return(pic.Image); } catch (Exception) {} } } return(null); }
protected ExtendedImagePanel CreateItem(Interfaces.Files.IPackedFileDescriptor pfd, int left, int top) { ExtendedImagePanel eip = new ExtendedImagePanel(); eip.BeginUpdate(); eip.SetBounds(left, top, 216, 80); Wrapper.SDesc sdesc = new SDesc(); try { sdesc.ProcessData(pfd, pkg); PrepareItem(eip, sdesc); } catch (Exception ex) { eip.Properties["Error"].Value = ex.Message; } //eip.GotFocus += new EventHandler(eip_GotFocus); //eip.MouseDown += new System.Windows.Forms.MouseEventHandler(eip_MouseDown); //eip.DoubleClick += new EventHandler(eip_DoubleClick); return(eip); }
/// <summary> /// Returns the Property Set (=cpf) of a Skin /// </summary> /// <param name="spfd">The File Description of the File you are looking for</param> /// <returns>null or the Property Set File</returns> public object FindSet(Interfaces.Files.IPackedFileDescriptor spfd) { if (sets == null) { this.LoadSkins(); } if (sets == null) { return(null); } foreach (SimPe.PackedFiles.Wrapper.Cpf cpf in sets) { Interfaces.Files.IPackedFileDescriptor pfd = cpf.FileDescriptor; if ( (pfd.Group == spfd.Group) && (pfd.SubType == spfd.SubType) && (pfd.Instance == spfd.Instance) && (pfd.Type == spfd.Type) ) { return(cpf); } } return(null); }
public void Load(System.IO.BinaryReader reader) { version = reader.ReadByte(); if (version > VERSION) { throw new CacheException("Unknown CacheItem Version.", null, version); } name = reader.ReadString(); type = reader.ReadString(); pfd = new Packages.PackedFileDescriptor(); pfd.Type = reader.ReadUInt32(); pfd.Group = reader.ReadUInt32(); pfd.LongInstance = reader.ReadUInt64(); influence = reader.ReadInt32(); score = reader.ReadInt32(); guid = reader.ReadUInt32(); folder = reader.ReadString(); int size = reader.ReadInt32(); if (size == 0) { thumb = null; } else { byte[] data = reader.ReadBytes(size); MemoryStream ms = new MemoryStream(data); thumb = Image.FromStream(ms); } }
public RefFileItem(Interfaces.Files.IPackedFileDescriptor pfd, RefFile parent) { this.parent = parent; this.Group = pfd.Group; this.Type = pfd.Type; this.SubType = pfd.SubType; this.Instance = pfd.Instance; }
private void llEdit_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) { Interfaces.Files.IPackedFileDescriptor ctss = CatalogDescription; if (ctss != null) { SimPe.RemoteControl.OpenPackedFile(ctss, pkg); } }
internal Interfaces.Files.IPackedFileDescriptor Execute(Interfaces.Files.IPackageFile package) { this.package = package; this.pfd = null; RemoteControl.ShowSubForm(this); return(pfd); }
public void Load(System.IO.BinaryReader reader) { version = reader.ReadByte(); if (version > VERSION) { throw new CacheException("Unknown CacheItem Version.", null, version); } name = reader.ReadString(); if (version >= 2) { objdname = reader.ReadString(); } else { objdname = null; } if (version >= 3) { int ct = reader.ReadUInt16(); valuenames = new string[ct]; for (int i = 0; i < ct; i++) { valuenames[i] = reader.ReadString(); } } else { valuenames = new string[0]; } type = (SimPe.Data.ObjectTypes)reader.ReadUInt16(); pfd = new Packages.PackedFileDescriptor(); pfd.Type = reader.ReadUInt32(); pfd.Group = reader.ReadUInt32(); pfd.LongInstance = reader.ReadUInt64(); guid = reader.ReadUInt32(); int size = reader.ReadInt32(); if (size == 0) { thumb = null; } else { byte[] data = reader.ReadBytes(size); MemoryStream ms = new MemoryStream(data); thumb = Image.FromStream(ms); } }
private void MoveUp(object sender, System.EventArgs e) { if (lblist.SelectedIndex < 1) { return; } Interfaces.Files.IPackedFileDescriptor pfd = (Interfaces.Files.IPackedFileDescriptor)lblist.Items[lblist.SelectedIndex]; lblist.Items[lblist.SelectedIndex] = lblist.Items[lblist.SelectedIndex - 1]; lblist.Items[lblist.SelectedIndex - 1] = pfd; lblist.SelectedIndex--; }
protected virtual SimPe.PackedFiles.Wrapper.StrItemList GetCtssItems(Interfaces.Files.IPackedFileDescriptor ctss, SimPe.Interfaces.Files.IPackageFile pkg) { if (ctss != null) { SimPe.PackedFiles.Wrapper.Str str = new SimPe.PackedFiles.Wrapper.Str(); str.ProcessData(ctss, pkg); return(str.FallbackedLanguageItems(Helper.WindowsRegistry.LanguageCode)); } return(null); }
private void PackageItemDrop(object sender, System.Windows.Forms.DragEventArgs e) { try { Interfaces.Files.IPackedFileDescriptor pfd = null; pfd = (Interfaces.Files.IPackedFileDescriptor)e.Data.GetData(typeof(SimPe.Packages.PackedFileDescriptor)); lblist.Items.Add(pfd); } catch (Exception ex) { Helper.ExceptionMessage("", ex); } }
/// <summary> /// Searches Sims /// </summary> /// <param name="pfd"></param> /// <param name="package"></param> /// <param name="prov"></param> /// <returns>Null if no match or a valid SearchItem Object</returns> public SearchItem GuidSearch(Interfaces.Files.IPackedFileDescriptor pfd, Interfaces.Files.IPackageFile package, Interfaces.IProviderRegistry prov) { uint guid = Convert.ToUInt32(tbguid.Text, 16); SimPe.PackedFiles.Wrapper.ExtObjd objd = new SimPe.PackedFiles.Wrapper.ExtObjd(); objd.ProcessData(pfd, package); if (objd.Guid == guid) { return(new SearchItem(objd.FileName, pfd)); } return(null); }
/// <summary> /// Looks for a File based on the Filename /// </summary> /// <param name="pfd">The FileDescriptor</param> /// <param name="betolerant"> /// set true if you want to enable a /// fallback Algorithm in case of the precice Search failing /// </param> /// <returns>The first matching File or null if none</returns> public Interfaces.Files.IPackedFileDescriptor FindSingleFile(Interfaces.Files.IPackedFileDescriptor pfd, bool betolerant) { PackedFileDescriptors list; list = this.FindFile(pfd); if (list.Length > 0) { return(list[0]); } return(null); }
/// <summary> /// Clone the Makeup of a Sim /// </summary> /// <returns>the new Package for the patient Sim</returns> /// <param name="eyecolor">true, if you want to alter the eyecolor</param> /// <param name="makeups">true, if you want to alter the makeup</param> public SimPe.Packages.GeneratableFile CloneMakeup(bool eyecolor, bool makeups) { SimPe.Packages.GeneratableFile ret = SimPe.Packages.GeneratableFile.LoadFromFile((string)null); ArrayList list = new ArrayList(); list.Add((uint)0xE86B1EEF); //make sure the compressed Directory won't be copied! foreach (Interfaces.Files.IPackedFileDescriptor pfd in patient.Index) { if (!list.Contains(pfd.Type)) { Interfaces.Files.IPackedFile fl = patient.Read(pfd); Interfaces.Files.IPackedFileDescriptor newpfd = ret.NewDescriptor(pfd.Type, pfd.SubType, pfd.Group, pfd.Instance); newpfd.UserData = fl.UncompressedData; ret.Add(newpfd); } } //Update TXMT Files for the Face SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = ret.FindFiles(Data.MetaData.TXMT); foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds) { SimPe.Plugin.Rcol rcol = new GenericRcol(null, false); rcol.ProcessData(pfd, ret); MaterialDefinition md = (MaterialDefinition)rcol.Blocks[0]; this.UpdateMakeup(md, eyecolor, makeups); rcol.SynchronizeUserData(); } if (eyecolor) { //Update DNA File Interfaces.Files.IPackedFileDescriptor dna = ngbh.FindFile(0xEBFEE33F, 0, Data.MetaData.LOCAL_GROUP, spatient.Instance); Interfaces.Files.IPackedFileDescriptor adna = ngbh.FindFile(0xEBFEE33F, 0, Data.MetaData.LOCAL_GROUP, sarchetype.Instance); if ((dna != null) && (adna != null)) { SimPe.PackedFiles.Wrapper.Cpf cpf = new Cpf(); cpf.ProcessData(dna, ngbh); SimPe.PackedFiles.Wrapper.Cpf acpf = new Cpf(); acpf.ProcessData(adna, ngbh); cpf.GetSaveItem("3").StringValue = acpf.GetSaveItem("3").StringValue; cpf.SynchronizeUserData(); } } return(ret); }
public string FindTxtrName(Interfaces.Files.IPackedFileDescriptor spfd) { if (matds == null) { this.LoadSkinImages(); } if (matds == null) { return(""); } if (refs == null) { return(""); } foreach (SimPe.Plugin.RefFile reff in refs) { Interfaces.Files.IPackedFileDescriptor pfd = reff.FileDescriptor; if ( (pfd.Group == spfd.Group) && (pfd.SubType == spfd.SubType) && (pfd.Instance == spfd.Instance) ) { foreach (SimPe.Interfaces.Files.IPackedFileDescriptor refpfd in reff.Items) { //found a MATD Reference File if (refpfd.Type == 0x49596978) { foreach (SimPe.Plugin.Rcol matd in matds) { pfd = matd.FileDescriptor; if ( (pfd.Group == refpfd.Group) && (pfd.SubType == refpfd.SubType) && (pfd.Instance == refpfd.Instance) ) { foreach (SimPe.Plugin.MaterialDefinition md in matd.Blocks) { return(md.GetProperty("stdMatBaseTextureName").Value); } } } } } //foreach matd } } return(""); }
/// <summary> /// Serializes a the Attributes stored in this Instance to the BinaryStream /// </summary> /// <param name="writer">The Stream the Data should be stored to</param> /// <remarks> /// Be sure that the Position of the stream is Proper on /// return (i.e. must point to the first Byte after your actual File) /// </remarks> protected override void Serialize(System.IO.BinaryWriter writer) { writer.Write((uint)items.Length); for (int i = 0; i < items.Length; i++) { Interfaces.Files.IPackedFileDescriptor pfd = items[i]; writer.Write(pfd.Group); writer.Write(pfd.Instance); writer.Write((uint)pfd.Filename.Length); writer.Write(Helper.ToBytes(pfd.Filename, 0)); } }
/// <summary> /// Set the Enabled state of the Toll MenuItems /// </summary> /// <param name="mi"></param> /// <param name="pfd"></param> /// <param name="package"></param> public void EnableMenuItems(System.Windows.Forms.MenuItem mi, Interfaces.Files.IPackedFileDescriptor pfd, Interfaces.Files.IPackageFile package) { foreach (System.Windows.Forms.MenuItem item in mi.MenuItems) { try { ToolMenuItem tmi = (ToolMenuItem)item; tmi.Package = package; tmi.FileDescriptor = pfd; tmi.UpdateEnabledState(); } catch (Exception) {} } }
protected SimPe.PackedFiles.Wrapper.StrItemList GetCtssItems() { //Get the Name of the Object Interfaces.Files.IPackedFileDescriptor ctss = CatalogDescription; if (ctss != null) { ctss.ChangedData += new SimPe.Events.PackedFileChanged(ctss_ChangedUserData); SimPe.PackedFiles.Wrapper.Str str = new SimPe.PackedFiles.Wrapper.Str(); str.ProcessData(ctss, pkg); return(str.LanguageItems(Helper.WindowsRegistry.LanguageCode)); } return(null); }
public void Load(System.IO.BinaryReader reader) { version = reader.ReadByte(); if (version > VERSION) { throw new CacheException("Unknown CacheItem Version.", null, version); } resourcename = reader.ReadString(); rtp = (RcolCacheItemType)reader.ReadByte(); pfd = new Packages.PackedFileDescriptor(); pfd.Type = reader.ReadUInt32(); pfd.Group = reader.ReadUInt32(); pfd.LongInstance = reader.ReadUInt64(); }
/// <summary> /// Returns all Filedescriptors for Files starting with the given Value /// </summary> /// <param name="start">The string the FIlename starts with</param> /// <returns>A List of File Descriptors</returns> public Interfaces.Files.IPackedFileDescriptor[] FindFiles(string start) { start = start.Trim().ToLower(); System.Collections.ArrayList a = new System.Collections.ArrayList(); foreach (Interfaces.Files.IPackedFileDescriptor pfd in items) { if (pfd.Filename.Trim().ToLower().StartsWith(start)) { a.Add(pfd); } } Interfaces.Files.IPackedFileDescriptor[] pfds = new Interfaces.Files.IPackedFileDescriptor[a.Count]; a.CopyTo(pfds); return(pfds); }
protected GenericRcol LoadRcol(uint type, Interfaces.Files.IPackedFileDescriptor pfd) { if (pfd.Type == type) { Interfaces.Scenegraph.IScenegraphFileIndexItem[] items = FileTable.FileIndex.FindFile(pfd, null); if (items.Length > 0) { SimPe.Plugin.GenericRcol rcol = new GenericRcol(null, false); rcol.ProcessData(items[0], false); return(rcol); } } return(null); }
private void MoveDown(object sender, System.EventArgs e) { if (lblist.SelectedIndex < 0) { return; } if (lblist.SelectedIndex > lblist.Items.Count - 2) { return; } Interfaces.Files.IPackedFileDescriptor pfd = (Interfaces.Files.IPackedFileDescriptor)lblist.Items[lblist.SelectedIndex]; lblist.Items[lblist.SelectedIndex] = lblist.Items[lblist.SelectedIndex + 1]; lblist.Items[lblist.SelectedIndex + 1] = pfd; lblist.SelectedIndex++; }
/// <summary> /// Searches RCOL Files /// </summary> /// <param name="pfd"></param> /// <param name="package"></param> /// <param name="prov"></param> /// <returns>Null if no match or a valid SearchItem Object</returns> public SearchItem RcolSearch(Interfaces.Files.IPackedFileDescriptor pfd, Interfaces.Files.IPackageFile package, Interfaces.IProviderRegistry prov) { string flname = Hashes.StripHashFromName(tbflname.Text); uint inst = Hashes.InstanceHash(flname); uint st = Hashes.SubTypeHash(flname); if ((pfd.Instance == inst) && ((pfd.SubType == st) || pfd.SubType == 0)) { SimPe.Plugin.Rcol rcol = new GenericRcol(prov, false); rcol.ProcessData(pfd, package); return(new SearchItem(rcol.FileName, pfd)); } return(null); }
public void Load(System.IO.BinaryReader reader) { version = reader.ReadByte(); if (version > VERSION) { throw new CacheException("Unknown CacheItem Version.", null, version); } modelname = reader.ReadString(); family = reader.ReadString(); def = reader.ReadBoolean(); pfd = new Packages.PackedFileDescriptor(); pfd.Type = reader.ReadUInt32(); pfd.Group = reader.ReadUInt32(); pfd.LongInstance = reader.ReadUInt64(); }
/// <summary> /// Load the IdNo stored in the passed package /// </summary> /// <param name="pkg"></param> /// <returns></returns> public static Idno FromPackage(SimPe.Interfaces.Files.IPackageFile pkg) { if (pkg == null) { return(null); } Interfaces.Files.IPackedFileDescriptor idno = pkg.FindFile(Data.MetaData.IDNO, 0, Data.MetaData.LOCAL_GROUP, 1); if (idno != null) { SimPe.Plugin.Idno wrp = new Idno(); wrp.ProcessData(idno, pkg); return(wrp); } return(null); }
private void Open(object sender, System.EventArgs e) { if (lblist.SelectedIndex < 0) { return; } try { SearchItem si = (SearchItem)lblist.Items[lblist.SelectedIndex]; pfd = si.Descriptor; Close(); } catch (Exception ex) { Helper.ExceptionMessage("", ex); } }
/// <summary> /// Load a Texture belonging to a TXMT /// </summary> /// <param name="txmt">a valid txmt</param> /// <returns>the Texture or null</returns> public GenericRcol GetTxtr(GenericRcol txmt) { if (txmt == null) { return(null); } Hashtable refs = txmt.ReferenceChains; ArrayList txtrs = (ArrayList)refs["stdMatBaseTextureName"]; //["TXTR"]; if (txtrs != null) { if (txtrs.Count > 0) { Interfaces.Files.IPackedFileDescriptor pfd = package.FindFile((Interfaces.Files.IPackedFileDescriptor)txtrs[0]); if (pfd == null) //fallback code { Interfaces.Files.IPackedFileDescriptor[] pfds = package.FindFile(((Interfaces.Files.IPackedFileDescriptor)txtrs[0]).Filename, Data.MetaData.TXTR); if (pfds.Length > 0) { pfd = pfds[0]; } } if (pfd != null) { GenericRcol txtr = new GenericRcol(null, false); txtr.ProcessData(pfd, package); return(txtr); } if (pfd == null) //FileTable fallback code { Interfaces.Scenegraph.IScenegraphFileIndexItem[] items = FileTable.FileIndex.FindFileDiscardingGroup((Interfaces.Files.IPackedFileDescriptor)txtrs[0]); if (items.Length > 0) { GenericRcol txtr = new GenericRcol(null, false); txtr.ProcessData(items[0].FileDescriptor, items[0].Package); return(txtr); } } } } return(null); }