/// <summary> /// 세션 저장 /// </summary> /// <param name="session"></param> /// <param name="filepath"></param> public static void Save(FSNSession session, string filepath, string saveTitle = "") { { var json = new JSONObject(JSONObject.Type.OBJECT); // Script 관련 json.AddField(c_field_scriptName, session.ScriptName); json.AddField(c_field_scriptHash, session.ScriptHashKey); json.AddField(c_field_snapshotIndex, session.SnapshotIndex); // 세이브 정보 json.AddField(c_field_saveDateTime, FSNUtils.GenerateCurrentDateAndTimeString()); json.AddField(c_field_saveTitle, saveTitle); // 플래그 테이블 var flagtable = new JSONObject(JSONObject.Type.OBJECT); json.AddField(c_field_flagTable, flagtable); foreach (var pair in session.m_flagTable) { flagtable.AddField(pair.Key, pair.Value); } // 값 테이블 var valuetable = new JSONObject(JSONObject.Type.OBJECT); json.AddField(c_field_valueTable, valuetable); foreach (var pair in session.m_valueTable) { valuetable.AddField(pair.Key, pair.Value); } FSNUtils.SaveTextData(filepath, json.Print()); } }
/// <summary> /// Persistent 데이터 세이브 /// </summary> public static void Save(bool force = false) { if (IsDirty || force) // 변경점이 있을 때만 저장, force가 올라가있다면 무조건 { FSNUtils.SaveTextData(c_persistent_filename, m_persData.Print()); IsDirty = false; // dirty 플래그 내리기 } }