Пример #1
0
        public void openMultipleFiles(string[] fileNames)
        {
            if (currentPanel != null)
            {
                currentPanel.finalize();
                ContentContainer.Controls.Remove((Control)currentPanel);
                currentPanel = null;
            }

            RenderBase.OModelGroup model = new RenderBase.OModelGroup();
            string error = "";

            foreach (string fileName in fileNames)
            {
                try
                {
                    FileIO.file file = FileIO.load(fileName);

                    if (file.type == FileIO.formatType.model)
                    {
                        model.merge((RenderBase.OModelGroup)file.data);
                    }
                    else
                    {
                        error += "\n    " + System.IO.Path.GetFileName(fileName);
                        if (file.type != FileIO.formatType.unsupported)
                        {
                            error += "*";
                        }
                    }
                }
                catch (Exception)
                {
                    error += "\n    " + System.IO.Path.GetFileName(fileName);
                }
            }

            currentPanel = new OViewportPanel();

            ((Control)currentPanel).Dock = DockStyle.Fill;
            SuspendDrawing();
            ContentContainer.Controls.Add((Control)currentPanel);
            ContentContainer.Controls.SetChildIndex((Control)currentPanel, 0);
            ResumeDrawing();
            currentPanel.launch(model);

            if (error.Length > 0)
            {
                MessageBox.Show("Could not load the following files in MultiFile-Mode:\n" + error + "\n\n*Marked files are loadable in Single File-Mode",
                                "Warning", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Пример #2
0
        /// <summary>
        ///     Loads all map textures (and other data) on a AD Pokémon container.
        /// </summary>
        /// <param name="data">The data</param>
        /// <returns>The Model group with textures and stuff</returns>
        public static RenderBase.OModelGroup load(Stream data)
        {
            RenderBase.OModelGroup models = new RenderBase.OModelGroup();

            OContainer container = PkmnContainer.load(data);
            for (int i = 1; i < container.content.Count; i++)
            {
                FileIO.file file = FileIO.load(new MemoryStream(container.content[i].data));
                if (file.type == FileIO.formatType.model) models.merge((RenderBase.OModelGroup)file.data);
            }

            return models;
        }
Пример #3
0
        /// <summary>
        ///     Loads all map textures (and other data) on a AD Pokémon container.
        /// </summary>
        /// <param name="data">The data</param>
        /// <returns>The Model group with textures and stuff</returns>
        public static RenderBase.OModelGroup load(Stream data)
        {
            RenderBase.OModelGroup models = new RenderBase.OModelGroup();

            OContainer container = PkmnContainer.load(data);

            for (int i = 1; i < container.content.Count; i++)
            {
                FileIO.file file = FileIO.load(new MemoryStream(container.content[i].data));
                if (file.type == FileIO.formatType.model)
                {
                    models.merge((RenderBase.OModelGroup)file.data);
                }
            }

            return(models);
        }
Пример #4
0
        /// <summary>
        ///     Loads all map textures (and other data) on a AD Pokémon container.
        /// </summary>
        /// <param name="data">The data</param>
        /// <returns>The Model group with textures and stuff</returns>
        public static RenderBase.OModelGroup load(Stream data)
        {
            RenderBase.OModelGroup models = new RenderBase.OModelGroup();

            OContainer container = PkmnContainer.load(data);

            foreach (var entry in container)
            {
                FileIO.file file = FileIO.load(new MemoryStream(entry.data));
                if (file.type == FileIO.formatType.model)
                {
                    models.merge((RenderBase.OModelGroup)file.data);
                }
            }

            return(models);
        }
Пример #5
0
        /// <summary>
        ///     Loads a PC monster model from Pokémon.
        /// </summary>
        /// <param name="data">The data</param>
        /// <returns>The Model group with the monster meshes</returns>
        public static RenderBase.OModelGroup load(Stream data)
        {
            RenderBase.OModelGroup models = new RenderBase.OModelGroup();

            OContainer container = PkmnContainer.load(data);

            foreach (OContainer.FileEntry file in container)
            {
                FileIO.file loaded = new FileIO.file();

                try
                {
                    loaded = FileIO.load(new MemoryStream(file.data));
                }
                catch (Exception e)
                {
                    Debug.WriteLine(string.Format("Error opening file:\n{0}\n{1}", e.Message, e.StackTrace));
                }

                if (loaded.data == null)
                {
                    continue;
                }

                switch (loaded.type)
                {
                case FileIO.formatType.model: models.merge((RenderBase.OModelGroup)loaded.data); break;

                case FileIO.formatType.anims: models.skeletalAnimation.Add((RenderBase.OSkeletalAnimation)loaded.data); break;

                case FileIO.formatType.image: models.texture.Add((RenderBase.OTexture)loaded.data); break;
                }
            }

            return(models);
        }