//----------------------------------------------------------------- /// <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); }
/// <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 플래그 세우기 } }