Пример #2
0
        // 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);
        }
Пример #3
0
        // 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);
            }
        }
Пример #4
0
        // 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);
        }
Пример #5
0
        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);
        }