public static void SaveSetFileWindowOk(Window callingWindow) { string fileName = ((FileWindow)callingWindow).Results[0]; #region Save the istx InstructionSetSaveList instructionSetSaveList = new FlatRedBall.Content.Instructions.InstructionSetSaveList(); if (EditorData.BlockingScene == null) { GuiManager.ShowMessageBox("There is no scene loaded. A scene must be loaded for the .istx to reference.", "Error saving"); } else { foreach (AnimationSequence animationSequence in EditorData.GlobalInstructionSets) { AnimationSequenceSave sequenceSave = AnimationSequenceSave.FromAnimationSequence(animationSequence); instructionSetSaveList.AnimationSequenceSaves.Add(sequenceSave); //AddSetToSave(instructionSet, instructionSetSaveList, ""); // TODO: } foreach (KeyValuePair <INameable, InstructionSet> kvp in EditorData.ObjectInstructionSets) { AddSetToSave(kvp.Value, instructionSetSaveList, kvp.Key.Name); } instructionSetSaveList.SceneFileName = EditorData.BlockingScene.Name; instructionSetSaveList.Save(fileName); } #endregion #region Save the iepsx file fileName = FileManager.RemoveExtension(fileName) + ".iepsx"; InstructionEditorPropertiesSave ieps = InstructionEditorPropertiesSave.FromEditorData(); ieps.Save(fileName); #endregion }
private static void AddSetToSave(InstructionSet instructionSet, InstructionSetSaveList instructionSetSaveList, string targetName) { // This following members be used as a buffer for holding the lists that will be saved. // In the following loop the code will only copy over instructions that set properties // which are included in EditorData.SavedMembers List<InstructionList> temporaryListList = new List<InstructionList>(); InstructionList temporaryList = new InstructionList(); InstructionSetSave instructionSetSave = new InstructionSetSave(); foreach (KeyframeList keyframeList in instructionSet) { temporaryListList = new List<InstructionList>(); foreach (InstructionList instructionList in keyframeList) { temporaryList = new InstructionList(); temporaryList.Name = instructionList.Name; foreach (Instruction instruction in instructionList) { // Assume that all instructions are GenericInstructions GenericInstruction asGenericInstruction = instruction as GenericInstruction; bool toAdd = false; if (asGenericInstruction.Target is PositionedModel) { toAdd = EditorData.CurrentPositionedModelMembersWatching.Contains(asGenericInstruction.Member); } else if (asGenericInstruction.Target is Sprite) { toAdd = EditorData.CurrentSpriteMembersWatching.Contains(asGenericInstruction.Member); } else if (asGenericInstruction.Target is SpriteFrame) { toAdd = EditorData.CurrentSpriteFrameMembersWatching.Contains(asGenericInstruction.Member); } else if (asGenericInstruction.Target is Text) { toAdd = EditorData.CurrentTextMembersWatching.Contains(asGenericInstruction.Member); } if (toAdd) { // this instruction is one we want to save temporaryList.Add(instruction); } } if (temporaryList.Count != 0) { temporaryListList.Add(temporaryList); } } if (temporaryListList.Count != 0) { instructionSetSave.AddInstructions(temporaryListList, keyframeList.Name); } } if (instructionSetSave.Instructions.Count != 0) { instructionSetSave.Target = targetName; instructionSetSaveList.InstructionSetSaves.Add(instructionSetSave); } }
public static void LoadSetFileWindowOk(Window callingWindow) { string fileName = ((FileWindow)callingWindow).Results[0]; #region Load the file to the mInstructionSetSaveList field - it may be stored off until the .scnx is found LastLoadInformation.LastInstructionSetLoaded = fileName; mInstructionSetSaveList = InstructionSetSaveList.FromFile(LastLoadInformation.LastInstructionSetLoaded); #endregion #region Load the properties file (.iepsx) if it exists string iepsxFileName = FileManager.RemoveExtension(fileName) + ".iepsx"; if (FileManager.FileExists(iepsxFileName)) { InstructionEditorPropertiesSave iepsx = InstructionEditorPropertiesSave.FromFile(iepsxFileName); iepsx.ApplyToEditor(); } #endregion // See if there is already a Blocking scene loaded if (EditorData.BlockingScene == null || string.IsNullOrEmpty(EditorData.BlockingScene.Name)) { OkCancelWindow okCancelWindow = GuiManager.ShowOkCancelWindow("There is no blocking scene currently loaded. Attempt to load the scene " + "referenced by the loaded Instruction Set?", "No Scene Loaded"); okCancelWindow.OkClick += LoadBlockingFromLoadedInstructionSet; } else { AddCurrentlyLoadedInstructionSet(); } /* #region blueprint Sprites already loaded if(GuiData.ListBoxWindow.BlueprintSpriteListBox.Count != 0) { CreateActiveSpritesFromIss(); TimeLineMessages.ToStartPushed(null); } #endregion #region blueprint Sprites not already loaded else { MultiButtonMessageBox mbmb = GuiManager.AddMultiButtonMessageBox(); mbmb.Name = "No Blueprints Loaded"; mbmb.Text = ((FileWindow)callingWindow).result[0] + " instruction set requires active Sprites to be loaded. What would you like to do?"; mbmb.AddButton("Manually search for .scnx file.", new GuiMessage(LoadActiveSceneClick)); // mbmb.AddButton("Automatically search for .scn with Sprites matching instructions.", new GuiMessage(AutoSearchScn)); } #endregion */ }
public static void SaveSetFileWindowOk(Window callingWindow) { string fileName = ((FileWindow)callingWindow).Results[0]; #region Save the istx InstructionSetSaveList instructionSetSaveList = new FlatRedBall.Content.Instructions.InstructionSetSaveList(); if (EditorData.BlockingScene == null) { GuiManager.ShowMessageBox("There is no scene loaded. A scene must be loaded for the .istx to reference.", "Error saving"); } else { foreach (AnimationSequence animationSequence in EditorData.GlobalInstructionSets) { AnimationSequenceSave sequenceSave = AnimationSequenceSave.FromAnimationSequence(animationSequence); instructionSetSaveList.AnimationSequenceSaves.Add(sequenceSave); //AddSetToSave(instructionSet, instructionSetSaveList, ""); // TODO: } foreach (KeyValuePair<INameable, InstructionSet> kvp in EditorData.ObjectInstructionSets) { AddSetToSave(kvp.Value, instructionSetSaveList, kvp.Key.Name); } instructionSetSaveList.SceneFileName = EditorData.BlockingScene.Name; instructionSetSaveList.Save(fileName); } #endregion #region Save the iepsx file fileName = FileManager.RemoveExtension(fileName) + ".iepsx"; InstructionEditorPropertiesSave ieps = InstructionEditorPropertiesSave.FromEditorData(); ieps.Save(fileName); #endregion }
public static void NewSet(Window callingWindow) { mInstructionSetSaveList = null; // clear the blueprint Sprites foreach (Sprite s in EditorData.ActiveSprites) SpriteManager.RemoveSprite(s); Sprite cameraSprite = null; if (EditorData.ActiveSprites.Count != 0) { cameraSprite = EditorData.ActiveSprites[0]; EditorData.ActiveSprites.Clear(); EditorData.ActiveSprites.AddOneWay(cameraSprite); } EditorData.EditorLogic.SelectObject((Sprite)null, EditorData.EditorLogic.CurrentSprites); GuiData.ListBoxWindow.InstructionSetListBox.Clear(); }