// Update //------------------------------------------------------ /// <summary> /// Update를 한다. /// return이 True인 경우에 백업 시간을 체크할 타이밍이다. /// </summary> /// <param name="deltaTime"></param> /// <returns></returns> public bool Update(float deltaTime, string fileFolder, apPortrait portrait, string sceneName) { if (!_isInitLoaded) { Load(fileFolder); _isInitLoaded = true; } if (portrait == null || string.IsNullOrEmpty(portrait.name) || string.IsNullOrEmpty(sceneName)) { return(false); } //Debug.Log("BackupTimer Update : Delta Time : " + deltaTime); bool isUpdatable = false; _refreshTimerSec += deltaTime; _fileSaveTimerSec += deltaTime; if (_refreshTimerSec > 60.0f) { _refreshTimerSec -= 60.0f; isUpdatable = true; PortraitUnit workUnit = _units.Find(delegate(PortraitUnit a) { return(string.Equals(a._sceneName, sceneName) && string.Equals(a._portraitName, portrait.name)); }); if (workUnit == null) { //현재 등록 안된 Portrait이다. 추가해주자 workUnit = new PortraitUnit(sceneName, portrait.name, 0, DateTime.Now); _units.Add(workUnit); } //유닛의 타이머를 1 올리고, 갱신 날짜를 오늘로 한다. workUnit._timer_Min++; workUnit._lastWorkDateTime = DateTime.Now; //Debug.Log("BackupTimer Update : Timer Refresh : " + sceneName + "-" + portrait.name + " / " + workUnit._timer_Min); } //일정 시간(5분)이 지나면 타이머 시간도 저장을 하자 if (_fileSaveTimerSec > 300.0f) { Save(fileFolder); _fileSaveTimerSec = 0.0f; } return(isUpdatable); }
// Save / Load //------------------------------------------------------ public void Load(string fileFolder) { FileStream fs = null; StreamReader sr = null; try { fs = new FileStream(fileFolder + "/anyportraitBackupTime.dat", FileMode.Open, FileAccess.Read); sr = new StreamReader(fs); Clear(); sr.ReadLine(); //Backup Table int nUnit = int.Parse(sr.ReadLine()); for (int i = 0; i < nUnit; i++) { string strSceneName = sr.ReadLine(); string strPortraitName = sr.ReadLine(); int iTime = int.Parse(sr.ReadLine()); int iYear = int.Parse(sr.ReadLine()); int iMonth = int.Parse(sr.ReadLine()); int iDay = int.Parse(sr.ReadLine()); PortraitUnit unit = new PortraitUnit(strSceneName, strPortraitName, iTime, new DateTime(iYear, iMonth, iDay)); _units.Add(unit); } sr.Close(); fs.Close(); sr = null; fs = null; _isInitLoaded = true; } catch (Exception) { if (sr != null) { sr.Close(); sr = null; } if (fs != null) { fs.Close(); fs = null; } //파일이 없었다면 //Save를 한다. Save(fileFolder); } }
// Get / Set //------------------------------------------------------ public int GetPortraitBackupTime(string sceneName, apPortrait portrait) { PortraitUnit workUnit = _units.Find(delegate(PortraitUnit a) { return(string.Equals(a._sceneName, sceneName) && string.Equals(a._portraitName, portrait.name)); }); if (workUnit == null) { return(0); } return(workUnit._timer_Min); }
public void ResetTimerAndSave(string sceneName, apPortrait portrait, string fileFolder) { PortraitUnit workUnit = _units.Find(delegate(PortraitUnit a) { return(string.Equals(a._sceneName, sceneName) && string.Equals(a._portraitName, portrait.name)); }); if (workUnit != null) { workUnit._timer_Min = 0; workUnit._lastWorkDateTime = DateTime.Now; } Save(fileFolder); }