public void SerializeEditorSettings(GraphEditorBase[] editors) { if (editors == null || !settings.editorSettings) return; for (int i=0;i<editors.Length;i++) { if (editors[i] == null) return; System.Text.StringBuilder output = GetStringBuilder ();//new System.Text.StringBuilder(); JsonWriter writer = new JsonWriter (output,writerSettings); writer.Write (editors[i]); byte[] bytes = encoding.GetBytes (output.ToString()); //Less or equal to 2 bytes means that nothing was saved (file is "{}") if (bytes.Length <= 2) continue; AddChecksum(bytes); zip.AddEntry ("graph"+i+"_editor"+jsonExt,bytes); } }
/** Deserializes graph editor settings. * For future compatibility this method does not assume that the \a graphEditors array matches the #graphs array in order and/or count. * It searches for a matching graph (matching if graphEditor.target == graph) for every graph editor. * Multiple graph editors should not refer to the same graph.\n * \note Stored in files named "graph#_editor.json" where # is the graph number. */ public void DeserializeEditorSettings(GraphEditorBase[] graphEditors) { if (graphEditors == null) return; for (int i=0;i<graphEditors.Length;i++) { if (graphEditors[i] == null) continue; for (int j=0;j<graphs.Length;j++) { if (graphs[j] == null || graphEditors[i].target != graphs[j]) continue; ZipEntry entry = zip["graph"+j+"_editor"+jsonExt]; if (entry == null) continue; string entryText = GetString (entry); JsonReader reader = new JsonReader(entryText,readerSettings); reader.PopulateObject (graphEditors[i]); break; } } }
/** Deserializes graph editor settings. * For future compatibility this method does not assume that the \a graphEditors array matches the #graphs array in order and/or count. * It searches for a matching graph (matching if graphEditor.target == graph) for every graph editor. * Multiple graph editors should not refer to the same graph.\n * \note Stored in files named "graph#_editor.json" where # is the graph number. */ public void DeserializeEditorSettings (GraphEditorBase[] graphEditors) { #if !ASTAR_NO_JSON if (graphEditors == null) return; for (int i = 0; i < graphEditors.Length; i++) { if (graphEditors[i] == null) continue; for (int j = 0; j < graphs.Length; j++) { if (graphEditors[i].target != graphs[j]) continue; var zipIndex = graphIndexInZip[graphs[j]]; ZipEntry entry = zip["graph"+zipIndex+"_editor"+jsonExt]; if (entry == null) continue; string entryText = GetString(entry); var reader = new JsonReader(entryText, readerSettings); GraphEditorBase graphEditor = graphEditors[i]; reader.PopulateObject(ref graphEditor); graphEditors[i] = graphEditor; break; } } #endif }