// _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Public Method
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// ファイルを同期的に読み込む
        /// </summary>
        /// <returns>読み込んだデータ</returns>
        /// <exception cref="InvalidOperationException">
        ///     すでにファイルを読み込んでいる場合、
        ///     またはファイルが正しく読み込めなかった場合
        /// </exception>
        public DatabaseMergedData ReadSync()
        {
            lock (readLock)
            {
                Logger.Info(FileIOMessage.StartFileRead(GetType()));

                if (!(Data is null))
                {
                    throw new InvalidOperationException(
                              $"すでに読み込み完了しています。");
                }

                var datFileReader   = new DatabaseDatFileReader(DatFilePath, DbKind);
                var dataSettingList = datFileReader.ReadSync().SettingList;

                var projectFile     = new DatabaseProjectFileReader(ProjectFilePath, DbKind);
                var typeSettingList = projectFile.ReadSync().TypeSettingList;

                Data = new DatabaseMergedData(typeSettingList, dataSettingList);

                Logger.Info(FileIOMessage.EndFileRead(GetType()));

                return(Data);
            }
        }
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Public Method
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// ファイルを同期的に読み込む
        /// </summary>
        /// <returns>読み込んだデータ</returns>
        /// <exception cref="InvalidOperationException">
        ///     すでにファイルを読み込んでいる場合、
        ///     またはファイルが正しく読み込めなかった場合
        /// </exception>
        public override DBType ReadSync()
        {
            lock (readLock)
            {
                Logger.Info(FileIOMessage.StartFileRead(GetType()));

                var result = new DBType();

                // ヘッダチェック
                ReadHeader(ReadStatus);

                // タイプ設定
                ReadTypeSetting(ReadStatus, out var typeSetting);
                result.TypeName = typeSetting.TypeName;
                result.Memo     = typeSetting.Memo;

                // データ設定
                ReadDataSetting(ReadStatus, out var dataSetting);
                result.SetDataSettingType(dataSetting);

                result.ItemDescList.AddRange(MakeItemDescList(typeSetting, dataSetting));

                result.DataDescList.Overwrite(0, MakeDataDescList(typeSetting, dataSetting));

                Logger.Info(FileIOMessage.EndFileRead(GetType()));

                return(result);
            }
        }
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Public Method
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// ファイルを同期的に読み込む
        /// </summary>
        /// <returns>読み込んだデータ</returns>
        /// <exception cref="InvalidOperationException">
        ///     ファイルが正しく読み込めなかった場合
        /// </exception>
        public override DatabaseDat ReadSync()
        {
            lock (readLock)
            {
                Logger.Info(FileIOMessage.StartFileRead(GetType()));

                var result = new DatabaseDat();

                // ヘッダチェック
                ReadHeader(ReadStatus);

                // DBデータ
                ReadDBData(ReadStatus, result);

                // フッタチェック
                ReadFooter(ReadStatus);

                // DB種別
                result.DBKind = DBKind;

                Logger.Info(FileIOMessage.EndFileRead(GetType()));

                return(result);
            }
        }
        /// <summary>
        /// ファイルを同期的に読み込む
        /// </summary>
        /// <returns>読み込んだデータ</returns>
        /// <exception cref="InvalidOperationException">
        ///     ファイルが正しく読み込めなかった場合
        /// </exception>
        public override MapTreeData ReadSync()
        {
            lock (readLock)
            {
                Logger.Info(FileIOMessage.StartFileRead(GetType()));

                var result = ReadData(ReadStatus);

                Logger.Info(FileIOMessage.EndFileRead(GetType()));

                return(result);
            }
        }
        /// <summary>
        /// ファイルを同期的に読み込む
        /// </summary>
        /// <returns>読み込んだデータ</returns>
        /// <exception cref="InvalidOperationException">
        ///     ファイルが正しく読み込めなかった場合
        /// </exception>
        public override GameIniData ReadSync()
        {
            lock (readLock)
            {
                Logger.Info(FileIOMessage.StartFileRead(GetType()));

                var result = ReadData(FilePath);

                Logger.Info(FileIOMessage.EndFileRead(GetType()));

                return(result);
            }
        }
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Public Method
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// ファイルを同期的に読み込む
        /// </summary>
        /// <returns>読み込んだデータ</returns>
        /// <exception cref="InvalidOperationException">
        ///     ファイルが正しく読み込めなかった場合
        /// </exception>
        public override DatabaseProject ReadSync()
        {
            lock (readLock)
            {
                Logger.Info(FileIOMessage.StartFileRead(GetType()));

                var result = new DatabaseProject();

                ReadTypeSettingList(ReadStatus, result);

                // DB種別
                result.DBKind = DBKind;

                Logger.Info(FileIOMessage.EndFileRead(GetType()));

                return(result);
            }
        }
Exemple #7
0
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Public Method
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// ファイルを同期的に読み込む
        /// </summary>
        /// <returns>読み込んだデータ</returns>
        /// <exception cref="InvalidOperationException">
        ///     ファイルが正しく読み込めなかった場合
        /// </exception>
        public override DBData ReadSync()
        {
            lock (readLock)
            {
                Logger.Info(FileIOMessage.StartFileRead(GetType()));

                var result = new DBData();

                // ヘッダチェック
                ReadHeader(ReadStatus);

                // DBデータ
                ReadDbData(ReadStatus, result);

                Logger.Info(FileIOMessage.EndFileRead(GetType()));

                return(result);
            }
        }
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Public Method
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// ファイルを同期的に読み込む
        /// </summary>
        /// <returns>読み込んだデータ</returns>
        /// <exception cref="InvalidOperationException">
        ///     すでにファイルを読み込んでいる場合、
        ///     またはファイルが正しく読み込めなかった場合
        /// </exception>
        public IEnumerable <TIniTarget> ReadSync()
        {
            if (IsAlreadyRead)
            {
                throw new InvalidOperationException(
                          "すでに読み込み完了しています。");
            }

            Logger.Info(FileIOMessage.StartFileRead(GetType()));

            foreach (var target in Data)
            {
                ReadOneData(target);
            }

            Logger.Info(FileIOMessage.EndFileRead(GetType()));

            IsAlreadyRead = true;

            return(Data);
        }
Exemple #9
0
        /// <summary>
        /// ファイルを同期的に読み込む
        /// </summary>
        /// <returns>読み込んだデータ</returns>
        /// <exception cref="InvalidOperationException">
        ///     ファイルが正しく読み込めなかった場合
        /// </exception>
        public override MapData ReadSync()
        {
            lock (readLock)
            {
                Logger.Info(FileIOMessage.StartFileRead(GetType()));

                var result = new MapData();

                // ヘッダチェック
                ReadHeader(ReadStatus);

                // ヘッダ文字列
                ReadHeaderMemo(ReadStatus, result);

                // タイルセットID
                ReadTileSetId(ReadStatus, result);

                // マップサイズ横
                ReadMapSizeWidth(ReadStatus, result);

                // マップサイズ縦
                ReadMapSizeHeight(ReadStatus, result);

                // マップイベント数
                var mapEventLength = ReadMapEventLength(ReadStatus);

                // レイヤー1~3
                ReadLayer(ReadStatus, result);

                // マップイベント
                ReadMapEvent(mapEventLength, ReadStatus, result);

                // ファイル末尾
                ReadFooter(ReadStatus);

                Logger.Info(FileIOMessage.EndFileRead(GetType()));

                return(result);
            }
        }
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Public Method
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// ファイルを同期的に読み込む
        /// </summary>
        /// <returns>読み込んだデータ</returns>
        /// <exception cref="InvalidOperationException">
        ///     ファイルが正しく読み込めなかった場合
        /// </exception>
        public override DBTypeSet ReadSync()
        {
            lock (readLock)
            {
                Logger.Info(FileIOMessage.StartFileRead(GetType()));

                var result = new DBTypeSet();

                // ヘッダチェック
                ReadHeader(ReadStatus);

                // 項目種別
                ReadValueType(ReadStatus, out var itemTypes);

                // タイプ設定
                ReadTypeSetting(ReadStatus, result, itemTypes);

                Logger.Info(FileIOMessage.EndFileRead(GetType()));

                return(result);
            }
        }
        /// <summary>
        /// ファイルを同期的に読み込む
        /// </summary>
        /// <returns>読み込んだデータ</returns>
        /// <exception cref="InvalidOperationException">
        ///     ファイルが正しく読み込めなかった場合
        /// </exception>
        public override CommonEventData ReadSync()
        {
            lock (readLock)
            {
                Logger.Info(FileIOMessage.StartFileRead(GetType()));

                var commonEventData = new CommonEventData();

                // ヘッダチェック
                ReadHeader(ReadStatus);

                // コモンイベント
                ReadCommonEvent(ReadStatus, commonEventData);

                // フッタチェック
                ReadFooter(ReadStatus);

                Logger.Info(FileIOMessage.EndFileRead(GetType()));

                return(commonEventData);
            }
        }