private FFScene LoadFFScene(string scene_name) { var filename = Path.Combine(scene_name); var FFScene = new FFScene(new List <FFEntity>()); try { var file = File.Open(filename, FileMode.Open); try { FFScene = (FFScene)_formatter.Deserialize(file); } catch (Exception e) { throw new CannotLoadFileException("Could not deserialize the file", e); } finally { file.Close(); } } catch (Exception e) { throw new CannotLoadFileException("Could not open the file", e); } return(FFScene); }
private void SaveFFScene(FFScene scene, string scene_name) { var filename = scene_name; var FFScene = new FFScene(_entitiesController.GetCanvasEntities()); try { var file = File.Open(filename, FileMode.Create); try { _formatter.Serialize(file, FFScene); } catch (Exception e) { throw new CannotSaveFileException("Could not serialize the file", e); } finally { file.Close(); } } catch (Exception e) { throw new CannotSaveFileException("Could not open the file", e); } }
private void BuildButtonClick(object sender, RoutedEventArgs e) { fileName = FileTextField.Text; if (filePath.Length == 0) { MessageBox.Show("Erreur: Veuillez entrer un chemin"); } else if (fileName.Length == 0) { MessageBox.Show("Error: Veuillez entrer un nom"); } else { try { mw.entitiesController.SaveEntitiesData(); FFScene scene = new FFScene(mw.entitiesController.GetCanvasEntities()); Codegen.Codegen.CodegenScene(Manager.Instance, scene.entities, compiler); compiler.SetResourceFolder(Manager.Instance.ProjectDir); compiler.SetExecutableName(fileName); compiler.SetExecPath(filePath); compiler.CompileToPortableExec(); var current_working_dir = Directory.GetCurrentDirectory(); var filepath = GetFilePath(); var process_working_dir = filepath.Substring(0, filepath.LastIndexOf("\\")); Directory.SetCurrentDirectory(process_working_dir); Process.Start(GetFilePath()); foreach (Entity entity in mw.entitiesController.GetCanvasEntities()) { entity.GetComponents().ForEach(x => x.engineData.Clear()); } Directory.SetCurrentDirectory(current_working_dir); } catch (Exception exception) { #if DEBUG throw exception; #else MessageBox.Show("Il semblerait qu'il y ait eu une erreur à la compilation.", "Erreur de Compilation"); #endif } } }
public void SaveSceneAs(string name) { try { FFScene scene = new FFScene(_entitiesController.GetCanvasEntities()); SaveFFScene(scene, name); } catch (Exception exception) { #if DEBUG throw exception; #else MessageBox.Show("Il semblerait qu'il y ait eu une erreur durant la sauvegarde de votre scène.", "Erreur de Sauvegarde"); #endif } }