Exemple #1
0
        /// <summary>
        /// Gets a sim's thumbnail image.
        /// </summary>
        /// <returns></returns>
        private Bitmap GetThumbnail()
        {
            Outfit Oft = new Outfit();
            Appearance Apr = new Appearance();
            Bitmap Thumbnail = new Bitmap(1, 1);

            if (!File.Exists(GlobalSettings.Default.ClientPath + "avatardata\\heads\\outfits\\outfits.dat"))
            {
                Debug.WriteLine("WARNING: Couldn't find: " + GlobalSettings.Default.ClientPath +
                "avatardata\\heads\\outfits\\outfits.dat");

                return Thumbnail;
            }

            FAR3Archive Archive = new FAR3Archive(GlobalSettings.Default.ClientPath + 
                "avatardata\\heads\\outfits\\outfits.dat");
            Oft.Read(new MemoryStream(Archive.GetItemByID(HeadOutfitID)));

            Archive = new FAR3Archive(GlobalSettings.Default.ClientPath +
                "avatardata\\heads\\appearances\\appearances.dat");
            TSO.Common.content.ContentID ApprID;

            switch (Appearance)
            {
                case AppearanceType.Light:
                    ApprID = Oft.GetAppearance(AppearanceType.Light);
                    Apr.Read(new MemoryStream(Archive.GetItemByID(ApprID.Shift())));

                    Archive = new FAR3Archive(GlobalSettings.Default.ClientPath + 
                        "avatardata\\heads\\thumbnails\\thumbnails.dat");
                    Thumbnail = new Bitmap(new MemoryStream(Archive.GetItemByID(Apr.ThumbnailID.Shift())));
                    break;
                case AppearanceType.Medium:
                    ApprID = Oft.GetAppearance(AppearanceType.Medium);
                    Apr.Read(new MemoryStream(Archive.GetItemByID(ApprID.Shift())));

                    Archive = new FAR3Archive(GlobalSettings.Default.ClientPath + 
                        "avatardata\\heads\\thumbnails\\thumbnails.dat");
                    Thumbnail = new Bitmap(new MemoryStream(Archive.GetItemByID(Apr.ThumbnailID.Shift())));
                    break;
                case AppearanceType.Dark:
                    ApprID = Oft.GetAppearance(AppearanceType.Dark);
                    Apr.Read(new MemoryStream(Archive.GetItemByID(ApprID.Shift())));

                    Archive = new FAR3Archive(GlobalSettings.Default.ClientPath + 
                        "avatardata\\heads\\thumbnails\\thumbnails.dat");
                    Thumbnail = new Bitmap(new MemoryStream(Archive.GetItemByID(Apr.ThumbnailID.Shift())));
                    break;
            }

            return Thumbnail;
        }
Exemple #2
0
        /// <summary>
        /// Gets a resource using a path and ID.
        /// </summary>
        /// <param name="path">The path to the file. If this path is to an archive, assetID can be null.</param>
        /// <param name="assetID">The ID for the resource. Can be null if path doesn't point to an archive.</param>
        /// <returns></returns>
        public Stream GetResource(string path, ulong assetID)
        {
            if (path.EndsWith(".dat"))
            {
                /** Archive **/
                if (!Archives.ContainsKey(path))
                {
                    FAR3Archive newArchive = new FAR3Archive(GetPath(path));
                    Archives.Add(path, newArchive);
                }

                var archive = Archives[path];
                var bytes = archive.GetItemByID(assetID);
                return new MemoryStream(bytes, false);
            }

            return File.OpenRead(GetPath(path));
        }
        public static ContentResource GetResourceInfo(ulong ID)
        {
            /** Busy wait until we are ready **/
            while (!initComplete) ;

            ContentResource result = null;

            if (!m_LoadedResources.TryGetValue(ID, out result))
            {
                result = new ContentResource
                {
                    ID = ID
                };

                string path = m_Resources[ID];
                result.FilePath = path;
                result.FileExtension = Path.GetExtension(path).ToLower();

                if (!path.EndsWith(".dat"))
                {
                    /** Isnt an archive **/
                    result.Data = File.ReadAllBytes(path);
                    return result;
                }

                if (!m_Archives.ContainsKey(path))
                {
                    FAR3Archive Archive = new FAR3Archive(path);
                    m_Archives.Add(path, Archive);
                }

                result.Data = m_Archives[path].GetItemByID(ID);

                return result;
            }
            else
            {
                return result;
            }
        }