コード例 #1
0
        public Control GetView(RageLib.FileSystem.Common.File file)
        {
            var data = file.GetData();

            Stream s = Assembly.GetExecutingAssembly().GetManifestResourceStream("SparkIV.Viewer.Xml.defaultss.xslt");

            XmlDocument doc = new XmlDocument();

            doc.InnerXml = Encoding.ASCII.GetString(data);

            XmlReader            xr  = XmlReader.Create(s);
            XslCompiledTransform xct = new XslCompiledTransform();

            xct.Load(xr);

            StringBuilder sb = new StringBuilder();
            XmlWriter     xw = XmlWriter.Create(sb);

            xct.Transform(doc, xw);

            WebBrowser browser = new WebBrowser();

            browser.AllowNavigation     = false;
            browser.AllowWebBrowserDrop = false;
            //browser.WebBrowserShortcutsEnabled = false;
            browser.IsWebBrowserContextMenuEnabled = false;

            browser.DocumentText = sb.ToString();
            return(browser);
        }
コード例 #2
0
        protected override void SaveAndClose(EditorForm form, TextureFile textureFile, File file)
        {
            using (new WaitCursor(form))
            {
                var resourceFile = new ResourceFile();
                using (var ms = new MemoryStream(file.GetData()))
                {
                    resourceFile.Read(ms);
                }

                var msSystem = new MemoryStream(resourceFile.SystemMemData);
                var msGraphics = new MemoryStream(resourceFile.GraphicsMemData);

                try
                {
                    textureFile.Save(msSystem, msGraphics);
                }
                finally
                {
                    msSystem.Close();
                    msGraphics.Close();
                }

                using (var resMS = new MemoryStream())
                {
                    resourceFile.Write(resMS);
                    file.SetData(resMS.ToArray());
                }
            }

            form.Close();

        }
コード例 #3
0
ファイル: AudioViewer.cs プロジェクト: q4a/SparkIV
        public Control GetView(RageLib.FileSystem.Common.File file)
        {
            var data = file.GetData();

            var ms        = new MemoryStream(data);
            var audioFile = new AudioFile();

            try
            {
                audioFile.Open(ms);
            }
            catch
            {
                ms.Close();

                throw;
            }

            var view       = new AudioView();
            var controller = new AudioViewController(view);

            controller.AudioFile = audioFile;

            return(view);
        }
コード例 #4
0
        private void BuildFSDirectory(DirectoryEntry dirEntry, Directory fsDirectory)
        {
            fsDirectory.Name = dirEntry.Name;

            for (var i = 0; i < dirEntry.DirectoryCount; i++)
            {
                var dir = new Directory();
                BuildFSDirectory(dirEntry.GetDirectory(i), dir);
                dir.ParentDirectory = fsDirectory;
                fsDirectory.AddObject(dir);
            }

            for (var i = 0; i < dirEntry.FileCount; i++)
            {
                var fileEntry = dirEntry.GetFile(i);

                File file;
                file = new File(
                    () => (_customData.ContainsKey(fileEntry.FullName) ? _customData[fileEntry.FullName] : fileEntry.GetData()),
                    data => _customData[fileEntry.FullName] = data,
                    () => _customData.ContainsKey(fileEntry.FullName)
                    );

                file.CompressedSize  = fileEntry.Size;
                file.IsCompressed    = false;
                file.Name            = fileEntry.Name;
                file.Size            = fileEntry.Size;
                file.IsResource      = fileEntry.IsResourceFile;
                file.ResourceType    = fileEntry.ResourceType;
                file.ParentDirectory = fsDirectory;

                fsDirectory.AddObject(file);
            }
        }
コード例 #5
0
ファイル: ModelViewer.cs プロジェクト: tjhorner/gtaivtools
        protected Control CreateControl(File file, IModelFile modelfile)
        {
            var view = new ModelView();
            var controller = new ModelViewController(view);

            var fileName = file.Name;
            var fileNameWOE = fileName.Substring(0, fileName.LastIndexOf('.'));

            List<TextureFile> textures = new List<TextureFile>();
            TryLoadTexture(textures, file, fileNameWOE);
            TryLoadTexture(textures, file, "vehshare");
            TryLoadTexture(textures, file, "vehshare_truck");
            controller.TextureFiles = textures.ToArray();

            controller.ModelFile = modelfile;
            return view;
        }
コード例 #6
0
ファイル: ModelViewer.cs プロジェクト: tjhorner/gtaivtools
        public virtual Control GetView(File file)
        {
            var data = file.GetData();

            var ms = new MemoryStream(data);
            var modelFile = new ModelFile();
            try
            {
                modelFile.Open(ms);
            }
            finally
            {
                ms.Close();
            }

            return CreateControl(file, modelFile);
        }
コード例 #7
0
ファイル: ModelViewer.cs プロジェクト: q4a/SparkIV
        public virtual Control GetView(File file)
        {
            var data = file.GetData();

            var ms        = new MemoryStream(data);
            var modelFile = new ModelFile();

            try
            {
                modelFile.Open(ms);
            }
            finally
            {
                ms.Close();
            }

            return(CreateControl(file, modelFile));
        }
コード例 #8
0
ファイル: ModelDictionaryViewer.cs プロジェクト: q4a/SparkIV
        public override Control GetView(RageLib.FileSystem.Common.File file)
        {
            var data = file.GetData();

            var ms        = new MemoryStream(data);
            var modelFile = new ModelDictionaryFile();

            try
            {
                modelFile.Open(ms);
            }
            finally
            {
                ms.Close();
            }

            return(CreateControl(file, modelFile));
        }
コード例 #9
0
ファイル: ModelViewer.cs プロジェクト: q4a/SparkIV
        protected Control CreateControl(File file, IModelFile modelfile)
        {
            var view       = new ModelView();
            var controller = new ModelViewController(view);

            var fileName    = file.Name;
            var fileNameWOE = fileName.Substring(0, fileName.LastIndexOf('.'));

            List <TextureFile> textures = new List <TextureFile>();

            TryLoadTexture(textures, file, fileNameWOE);
            TryLoadTexture(textures, file, "vehshare");
            TryLoadTexture(textures, file, "vehshare_truck");
            controller.TextureFiles = textures.ToArray();

            controller.ModelFile = modelfile;
            return(view);
        }
コード例 #10
0
ファイル: ModelViewer.cs プロジェクト: tjhorner/gtaivtools
 private void TryLoadTexture(List<TextureFile> textureList, File file, string name)
 {
     var textureFileName = name + ".wtd";
     var textures = file.ParentDirectory.FindByName(textureFileName) as File;
     if (textures != null)
     {
         var textureFile = new TextureFile();
         var textureMS = new MemoryStream(textures.GetData());
         try
         {
             textureFile.Open(textureMS);
             textureList.Add(textureFile);
         }
         finally
         {
             textureMS.Close();
         }
     }
 }
コード例 #11
0
ファイル: ModelViewer.cs プロジェクト: q4a/SparkIV
        private void TryLoadTexture(List <TextureFile> textureList, File file, string name)
        {
            var textureFileName = name + ".wtd";
            var textures        = file.ParentDirectory.FindByName(textureFileName) as File;

            if (textures != null)
            {
                var textureFile = new TextureFile();
                var textureMS   = new MemoryStream(textures.GetData());
                try
                {
                    textureFile.Open(textureMS);
                    textureList.Add(textureFile);
                }
                finally
                {
                    textureMS.Close();
                }
            }
        }
コード例 #12
0
        public Control GetView(RageLib.FileSystem.Common.File file)
        {
            var data = file.GetData();

            ScriptFile scriptFile = new ScriptFile();
            //try
            {
                scriptFile.Open(new MemoryStream(data));
            }

            /*catch
             * {
             *  return null;
             * }*/

            ScriptView view = new ScriptView();

            view.ScriptFile = scriptFile;

            return(view);
        }
コード例 #13
0
        public Control GetView(RageLib.FileSystem.Common.File file)
        {
            var data = file.GetData();

            var ms          = new MemoryStream(data);
            var textureFile = new TextureFile();

            try
            {
                textureFile.Open(ms);
            }
            finally
            {
                ms.Close();
            }

            var view       = new TexturePreviewView();
            var controller = new TexturePreviewController(view);

            controller.TextureFile = textureFile;

            return(view);
        }
コード例 #14
0
ファイル: HyperTextViewer.cs プロジェクト: q4a/SparkIV
        public Control GetView(File file)
        {
            var data = file.GetData();

            var ms            = new MemoryStream(data);
            var hyperTextFile = new HyperTextFile();

            try
            {
                hyperTextFile.Open(ms);
            }
            finally
            {
                ms.Close();
            }

            StringWriter sw = new StringWriter();

            hyperTextFile.WriteHTML(sw);

            // Create a temporary folder
            string tempPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
            string htmlPath = Path.Combine(tempPath, "exported.html");

            Directory.CreateDirectory(tempPath);
            System.IO.File.WriteAllText(htmlPath, sw.ToString());

            if (hyperTextFile.EmbeddedTextureFile != null)
            {
                foreach (var texture in hyperTextFile.EmbeddedTextureFile)
                {
                    string imagePath = Path.Combine(tempPath, texture.Name + ".png");

                    string directory = Path.GetDirectoryName(imagePath);
                    if (!Directory.Exists(directory))
                    {
                        Directory.CreateDirectory(directory);
                    }

                    Image image = texture.Decode();
                    image.Save(imagePath, ImageFormat.Png);
                }
            }

            WebBrowser browser = new WebBrowser();

            browser.AllowNavigation     = false;
            browser.AllowWebBrowserDrop = false;
            //_browser.WebBrowserShortcutsEnabled = false;
            //_browser.IsWebBrowserContextMenuEnabled = false;

            //browser.DocumentText = sw.ToString();
            browser.Navigate(htmlPath);

            browser.Disposed += delegate
            {
                Directory.Delete(tempPath, true);

                if (hyperTextFile.EmbeddedTextureFile != null)
                {
                    hyperTextFile.EmbeddedTextureFile.Dispose();
                }
            };

            return(browser);
        }
コード例 #15
0
        protected override void SaveAndClose(EditorForm form, TextureFile textureFile, File file)
        {
            using (new WaitCursor(form))
            {
                var resourceFile = new ResourceFile();
                using (var ms = new MemoryStream(file.GetData()))
                {
                    resourceFile.Read(ms);
                }

                var msSystem   = new MemoryStream(resourceFile.SystemMemData);
                var msGraphics = new MemoryStream(resourceFile.GraphicsMemData);

                try
                {
                    textureFile.Save(msSystem, msGraphics);
                }
                finally
                {
                    msSystem.Close();
                    msGraphics.Close();
                }

                using (var resMS = new MemoryStream())
                {
                    resourceFile.Write(resMS);
                    file.SetData(resMS.ToArray());
                }
            }

            form.Close();
        }
コード例 #16
0
ファイル: RealFileSystem.cs プロジェクト: tjhorner/gtaivtools
        private void BuildFSDirectory(DirectoryEntry dirEntry, Directory fsDirectory)
        {
            fsDirectory.Name = dirEntry.Name;

            for (var i = 0; i < dirEntry.DirectoryCount; i++ )
            {
                var dir = new Directory();
                BuildFSDirectory(dirEntry.GetDirectory(i), dir);
                dir.ParentDirectory = fsDirectory;
                fsDirectory.AddObject(dir);
            }

            for (var i = 0; i < dirEntry.FileCount; i++ )
            {
                var fileEntry = dirEntry.GetFile(i);

                File file;
                file = new File( 
                                ()=> (_customData.ContainsKey(fileEntry.FullName) ? _customData[fileEntry.FullName] : fileEntry.GetData()),     
                                data => _customData[fileEntry.FullName] = data,
                                () => _customData.ContainsKey(fileEntry.FullName)
                            );

                file.CompressedSize = fileEntry.Size;
                file.IsCompressed = false;
                file.Name = fileEntry.Name;
                file.Size = fileEntry.Size;
                file.IsResource = fileEntry.IsResourceFile;
                file.ResourceType = fileEntry.ResourceType;
                file.ParentDirectory = fsDirectory;

                fsDirectory.AddObject(file);                
            }
        }
コード例 #17
0
        public Control GetView(File file)
        {
            var data = file.GetData();

            var ms = new MemoryStream(data);
            var hyperTextFile = new HyperTextFile();
            try
            {
                hyperTextFile.Open(ms);
            }
            finally
            {
                ms.Close();
            }

            StringWriter sw = new StringWriter();
            hyperTextFile.WriteHTML(sw);

            // Create a temporary folder
            string tempPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
            string htmlPath = Path.Combine(tempPath, "exported.html");

            Directory.CreateDirectory(tempPath);
            System.IO.File.WriteAllText(htmlPath, sw.ToString());

            if (hyperTextFile.EmbeddedTextureFile != null)
            {
                foreach (var texture in hyperTextFile.EmbeddedTextureFile)
                {
                    string imagePath = Path.Combine(tempPath, texture.Name + ".png");

                    string directory = Path.GetDirectoryName(imagePath);
                    if (!Directory.Exists(directory))
                    {
                        Directory.CreateDirectory(directory);
                    }

                    Image image = texture.Decode();
                    image.Save(imagePath, ImageFormat.Png);
                }
            }

            WebBrowser browser = new WebBrowser();
            browser.AllowNavigation = false;
            browser.AllowWebBrowserDrop = false;
            //_browser.WebBrowserShortcutsEnabled = false;
            //_browser.IsWebBrowserContextMenuEnabled = false;

            //browser.DocumentText = sw.ToString();
            browser.Navigate(htmlPath);

            browser.Disposed += delegate
                                    {
                                        Directory.Delete(tempPath, true);

                                        if (hyperTextFile.EmbeddedTextureFile != null)
                                        {
                                            hyperTextFile.EmbeddedTextureFile.Dispose();
                                        }
                                    };

            return browser;
        }