Ejemplo n.º 1
0
    /// <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());
        }
    }
Ejemplo n.º 2
0
 /// <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 플래그 내리기
     }
 }