Ejemplo n.º 1
0
        /// <summary>
        /// 另存当前游戏
        /// isSetDirty=true 刷新存储文件(会卡) ,否则不刷新,比如自动存储的时候不需要刷新
        /// isSnapshot=true 通过最近的一次快照存储游戏
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        public virtual TGameData SaveCurGameAs(string ID, bool isSnapshot = false, bool isSetDirty = true, bool isHide = false, bool forceLocalArchive = false)
        {
            //保存
            if (ID != BaseConstMgr.DBTempSaveName)
            {
                PrefsMgr.SetLastAchiveID(ID);
                PrefsMgr.SetLastAchiveLocal(IsCurArchivesLocal());
                SettingsMgr.Save();
            }

            ArchiveFile <TGameData> archiveFile;

            if (isSnapshot)
            {
                //使用最近的一次快照
                if (!HasSnapshot)
                {
                    throw new NotImplementedException("最近一次没有快照,请手动调用Sanpshot");
                }
            }
            else
            {
                //临时快照
                Snapshot(false);
            }

            if (forceLocalArchive)
            {
                archiveFile = LocalArchiveMgr.SaveFromRuntimeData(ID, CurGameData, isSetDirty, isHide);
            }
            else
            {
                archiveFile = CurArchiveMgr.SaveFromRuntimeData(ID, CurGameData, isSetDirty, isHide);
            }

            Callback_OnSaveGame?.Invoke(archiveFile);
            return(CurGameData);
        }
Ejemplo n.º 2
0
        // 另存当前游戏
        // isSetDirty=true 刷新存储文件(会卡) ,否则不刷新,比如自动存储的时候不需要刷新
        // isSnapshot=true 通过最近的一次快照存储游戏
        public virtual DBBaseGame SaveCurGameAs(string id, bool useSnapshot, bool isAsyn, bool isDirtyList, bool isHide, bool forceLocalArchive)
        {
            //保存
            if (id != Const.STR_DBTempSaveName)
            {
                Prefers.SetLastAchiveID(id);
                Prefers.SetLastAchiveLocal(IsCurArchivesLocal());
            }

            ArchiveFile <TGameData> archiveFile;

            if (useSnapshot)
            {
                //使用最近的一次快照
                if (!HasSnapshot)
                {
                    throw new NotImplementedException("最近一次没有快照,请手动调用Sanpshot");
                }
            }
            else
            {
                //临时快照
                Snapshot(false);
            }

            if (forceLocalArchive)
            {
                archiveFile = LocalArchiveMgr.SaveData(id, CurGameData, isAsyn, isDirtyList, isHide);
            }
            else
            {
                archiveFile = CurArchiveMgr.SaveData(id, CurGameData, isAsyn, isDirtyList, isHide);
            }
            Callback_OnSaveGame?.Invoke(archiveFile);
            return(CurGameData);
        }