Example #1
0
    //-----------------------------------------------------------------

    /// <summary>
    /// 세션 로드
    /// </summary>
    /// <param name="filepath"></param>
    /// <returns></returns>
    public static FSNSession Load(string filepath)
    {
        var newsession = new FSNSession();

        var        rawdata = FSNUtils.LoadTextData(filepath);
        JSONObject json    = JSONObject.Create(rawdata);

        if (json != null)
        {
            // Script 관련
            newsession.ScriptName    = json[c_field_scriptName].str;
            newsession.ScriptHashKey = json[c_field_scriptHash].str;
            newsession.SnapshotIndex = (int)json[c_field_snapshotIndex].n;

            // 플래그 테이블
            var flagtable = json[c_field_flagTable];
            foreach (var key in flagtable.keys)
            {
                newsession.SetFlagValue(key, flagtable[key].b, true);
            }

            // 값 테이블
            var valuetable = json[c_field_valueTable];
            foreach (var key in valuetable.keys)
            {
                newsession.SetNumberValue(key, valuetable[key].n, true);
            }
        }
        else
        {
            Debug.LogErrorFormat("[FSNSession] error loading session file : {0}", filepath);
        }

        return(newsession);
    }
Example #2
0
    /// <summary>
    /// 세이브 파일 정보 가져오기
    /// </summary>
    /// <param name="filepath"></param>
    /// <returns></returns>
    public static SaveInfo GetSaveFileInfo(string filepath)
    {
        var info = new SaveInfo();

        var        rawdata = FSNUtils.LoadTextData(filepath);
        JSONObject json    = JSONObject.Create(rawdata);

        if (json != null)
        {
            info.saveDateTime = json[c_field_saveDateTime].str;
            info.title        = json[c_field_saveTitle].str;
        }

        return(info);
    }
    /// <summary>
    /// Persistent 데이터 로딩
    /// </summary>
    public static void Load()
    {
        if (FSNUtils.CheckTextFileExists(c_persistent_filename))                                // 파일이 존재하는 경우엔 단순 로드
        {
            m_persData = JSONObject.Create(FSNUtils.LoadTextData(c_persistent_filename));
        }
        else
        {                                                                                                                                               // 파일이 없을 시엔 새롭게 JSONObject 생성
            m_persData = new JSONObject(JSONObject.Type.OBJECT);

            var scriptVars = new JSONObject(JSONObject.Type.OBJECT);
            m_persData.AddField(c_field_scriptVars, scriptVars);

            scriptVars.AddField(c_field_flagTable, new JSONObject(JSONObject.Type.OBJECT));
            scriptVars.AddField(c_field_valueTable, new JSONObject(JSONObject.Type.OBJECT));

            IsDirty = true;             // dirty 플래그 세우기
        }
    }