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