/// <summary> /// Loads a new 3D model file into the ModelViewerControl. /// </summary> FyriSpriter LoadSpriterToProject(string spriterName) { if (currentProject != null) { Cursor = Cursors.WaitCursor; FyriSpriter loadedSpriter = spriterManager.LoadSpriter(spriterName); if (loadedSpriter != null) { if (!currentProject.LoadedSpriters.Exists(p => p.SpriterName == spriterName)) { currentProject.LoadedSpriters.Add(loadedSpriter); } spriterViewerControl.Character = loadedSpriter.CharacterData.GetCharacterAnimator(); AddSpriterToTreeView(loadedSpriter); } Cursor = Cursors.Arrow; return(loadedSpriter); } return(null); }
void AddSpriterToTreeView(FyriSpriter spriterToAdd) { if (SpriterNode == null) { SpriterNode = new TreeNode(); SpriterNode.Text = "Spriters"; ProjectNameNode.Nodes.Add(SpriterNode); } TreeNode nodeToAdd = new TreeNode(); nodeToAdd.Text = spriterToAdd.SpriterName; nodeToAdd.Tag = spriterToAdd; SpriterNode.Nodes.Add(nodeToAdd); contentTreeView.CollapseAll(); nodeToAdd.EnsureVisible(); contentTreeView.Refresh(); }
public FyriSpriter LoadSpriter(string fileName) { if (spriterList.FirstOrDefault(p => p.OriginalFileName == fileName) != null) { return(spriterList.FirstOrDefault(p => p.OriginalFileName == fileName)); } FyriSpriter newlyAddedModel = new FyriSpriter(); newlyAddedModel.OriginalFileName = fileName; string pathToMoveTo = ProjectOriginalContentFolder + "\\" + Path.GetFileName(fileName); if (!File.Exists(pathToMoveTo)) { File.Copy(fileName, pathToMoveTo); } newlyAddedModel.FileName = pathToMoveTo; newlyAddedModel.XnbFileLocation = contentBuilder.OutputDirectory; string spriterName = Path.GetFileNameWithoutExtension(fileName); newlyAddedModel.SpriterName = spriterName; CharacterData loadedCharacterData = null; string xnbFileLoc = newlyAddedModel.XnbFileLocation + "\\" + spriterName + ".xnb"; bool xnbFileExists = File.Exists(xnbFileLoc); if (!xnbFileExists) { // Unload any existing model. //xna2dEditorControl.Model = null; //contentManager.Unload(); // Tell the ContentBuilder what to build. contentBuilder.Clear(); contentBuilder.Add(fileName, spriterName, null, "SCMLProcesser"); // Build this new model data. string buildError = contentBuilder.Build(); if (string.IsNullOrEmpty(buildError)) { // If the build succeeded, use the ContentManager to // load the temporary .xnb file that we just created. loadedCharacterData = contentManager.Load <CharacterData>(spriterName); } else { // If the build failed, display an error message. MessageBox.Show(buildError, "Error"); return(null); } } else { loadedCharacterData = contentManager.Load <CharacterData>(spriterName); } if (loadedCharacterData != null) { newlyAddedModel.CharacterData = loadedCharacterData; } else { return(null); } spriterList.Add(newlyAddedModel); return(newlyAddedModel); }
public FyriSpriter GetSpriter(string modelName) { FyriSpriter spriterToReturn = spriterList.FirstOrDefault(p => p.SpriterName == modelName); return(spriterToReturn); }