Ejemplo n.º 1
0
        /// <summary>
        /// 起動用TSVをロード
        /// </summary>
        /// <param name="url">CSVのパス</param>
        /// <param name="version">シナリオバージョン(-1以下で必ずサーバーからデータを読み直す)</param>
        /// <returns></returns>
        public IEnumerator LoadChapterAsync(string url)
        {
            AssetFile file = AssetFileManager.Load(url, this);

            while (!file.IsLoadEnd)
            {
                yield return(null);
            }

            AdvChapterData chapter = file.UnityObject as AdvChapterData;

            if (chapter == null)
            {
                Debug.LogError(url + " is  not scenario file");
                yield break;
            }

            if (this.DataManager.SettingDataManager.ImportedScenarios == null)
            {
                this.DataManager.SettingDataManager.ImportedScenarios = new AdvImportScenarios();
            }
            if (this.DataManager.SettingDataManager.ImportedScenarios.TryAddChapter(chapter))
            {
                //シナリオデータの初期化
                DataManager.BootInitChapter(chapter);
            }
        }
Ejemplo n.º 2
0
        //マクロ処理したインポートデータを作成する
        void ImportChapter(string chapterName, List <AdvImportBook> books, bool checkTextCount)
        {
            //シナリオアセットに各ブックのアセットを設定
            AdvChapterData        chapter = this.scenariosAsset.AddImportData(chapterName, books);
            AdvSettingDataManager setting = new AdvSettingDataManager();

            setting.ImportedScenarios = this.scenariosAsset;
            chapter.MakeSettingImportData(this.macroManager);
            setting.BootInit("");
            chapter.MakeScenarioImportData(setting, this.macroManager);
            AdvGraphicInfo.CallbackExpression = setting.DefaultParam.CalcExpressionBoolean;
            TextParser.CallbackCalcExpression = setting.DefaultParam.CalcExpressionNotSetParam;
            iTweenData.CallbackGetValue       = setting.DefaultParam.GetParameter;

            List <AdvScenarioData> scenarioList = new List <AdvScenarioData>();

            foreach (var book in books)
            {
                foreach (var grid in book.ImportGridList)
                {
                    string sheetName = grid.SheetName;
                    if (!AdvSheetParser.IsScenarioSheet(sheetName))
                    {
                        continue;
                    }
                    if (scenarioDataTbl.ContainsKey(sheetName))
                    {
                        Debug.LogError(sheetName + " is already contains in the sheets");
                    }
                    else
                    {
                        AdvScenarioData scenario = new AdvScenarioData(grid);
                        scenarioDataTbl.Add(sheetName, scenario);
                        scenarioList.Add(scenario);
                    }
                }
            }

            //シナリオデータとして解析、初期化
            foreach (AdvScenarioData data in scenarioList)
            {
                data.Init(setting);
            }

            AdvGraphicInfo.CallbackExpression = null;
            TextParser.CallbackCalcExpression = null;
            iTweenData.CallbackGetValue       = null;

            //シナリオラベルのリンクチェック
            ErrorCheckScenarioLabel(scenarioList);

            //文字数カウント
            if (checkTextCount)
            {
                CheckCharacterCount(scenarioList);
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// リソースファイル(画像やサウンド)のダウンロードをバックグラウンドで進めておく
 /// </summary>
 public void StartBackGroundDownloadResourceInChapter(AdvChapterData chapter)
 {
     if (isBackGroundDownload)
     {
         foreach (AdvScenarioData scenario in chapter.ScenarioDataList)
         {
             scenario.Download(this);
         }
         SettingDataManager.DownloadAll();
     }
 }
Ejemplo n.º 4
0
 internal void BootInitChapter(AdvChapterData chapter)
 {
     chapter.BootInit();
     foreach (var grid in chapter.SettingList)
     {
         IAdvSettingData data = FindSettingData(grid.SheetName);
         if (data != null)
         {
             data.ParseGrid(grid, BootSetting);
         }
     }
 }
Ejemplo n.º 5
0
 //章データを追加(既に同じ名前の章があったら追加しない)
 public bool TryAddChapter(AdvChapterData chapterData)
 {
     if (Chapters.Exists(x => x.name == chapterData.name))
     {
         return(false);
     }
     else
     {
         this.Chapters.Add(chapterData);
         return(true);
     }
 }
Ejemplo n.º 6
0
        /// <summary>
        /// 設定データのエクセルシートを読み込む
        /// </summary>
        /// <param name="sheetName">シート名</param>
        /// <param name="grid">シートのStringGridデータ</param>
        public void AddImportData(string chapterName, List <AdvImportBook> importDataList)
        {
            importVersion = Version;
            AdvChapterData chapter = this.Chapters.Find(x => x.ChapterName == chapterName);

            if (chapter == null)
            {
                chapter = new AdvChapterData(chapterName);
                this.Chapters.Add(chapter);
            }
            chapter.InitImportData(importDataList);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 起動用TSVをロード
        /// </summary>
        /// <param name="url">CSVのパス</param>
        /// <param name="version">シナリオバージョン(-1以下で必ずサーバーからデータを読み直す)</param>
        /// <returns></returns>
        IEnumerator CoLoadChapter(string url, int version)
        {
            yield return(StartCoroutine(DataManager.CoLoadChapter(url, version)));

            AdvChapterData chapter = DataManager.InitChapterData(url);

            //設定データを反映
            GraphicManager.Remake(DataManager.SettingDataManager.LayerSetting);
            //パラメーターをデフォルト値でリセット
            Param.InitDefaultAll(DataManager.SettingDataManager.DefaultParam);
            //リソースファイル(画像やサウンド)のダウンロードをバックグラウンドで進めておく
            DataManager.StartBackGroundDownloadResourceInChapter(chapter);
        }
Ejemplo n.º 8
0
        //チャプターデータのアセット取得
        AdvChapterData LoadOrCreateChapterAsset(string path)
        {
            string         assetPath = Path.ChangeExtension(path, ChapterAssetExt);
            AdvChapterData asset     = AssetDatabase.LoadAssetAtPath <AdvChapterData>(assetPath);

            if (asset == null)
            {
                //まだないので作る
                asset = ScriptableObject.CreateInstance <AdvChapterData>();
                AssetDatabase.CreateAsset(asset, assetPath);
                asset.hideFlags = HideFlags.NotEditable;
            }
            return(asset);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 章の起動時の初期化
        /// </summary>
        internal void InitChapterData(string url)
        {
            string         chapterName = FilePathUtil.GetFileNameWithoutDoubleExtensiton(url);
            AdvChapterData chapter     = settingDataManager.FindChapter(chapterName);

            if (!chapter.IsInited)
            {
                settingDataManager.BootInitChapter(chapter);
                AddScenario(chapter);
                foreach (var data in chapter.ScenarioDataList)
                {
                    data.Init(this.settingDataManager, this.MacroManager);
                }
            }
        }
Ejemplo n.º 10
0
        public void BootInitChapter(AdvChapterData chapter)
        {
            chapter.BootInit(this.SettingDataManager);
            Dictionary <string, AdvScenarioData> scenarioDataTbl = new Dictionary <string, AdvScenarioData>();

            chapter.AddScenario(scenarioDataTbl);
            foreach (KeyValuePair <string, AdvScenarioData> pair in scenarioDataTbl)
            {
                this.scenarioDataTbl.Add(pair.Key, pair.Value);
            }
            foreach (KeyValuePair <string, AdvScenarioData> pair2 in scenarioDataTbl)
            {
                pair2.Value.Init(this.settingDataManager);
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 起動用TSVをロード
        /// </summary>
        /// <param name="url">CSVのパス</param>
        /// <param name="version">シナリオバージョン(-1以下で必ずサーバーからデータを読み直す)</param>
        /// <returns></returns>
        public IEnumerator CoLoadChapter(string url, int version)
        {
            string         chapterName = FilePathUtil.GetFileNameWithoutDoubleExtensiton(url);
            AdvChapterData chapter     = SettingDataManager.FindChapter(chapterName);

            if (chapter != null)
            {
                yield break;
            }
            else
            {
                chapter = new AdvChapterData(chapterName);
                yield return(StartCoroutine(chapter.CoLoadFromTsv(url, version)));

                SettingDataManager.RunTimeChapters.Add(chapter);
            }
        }
Ejemplo n.º 12
0
        public void BootInitChapter(AdvChapterData chapter)
        {
            chapter.BootInit(this.SettingDataManager);

            //シナリオデータ
            Dictionary <string, AdvScenarioData> scenarios = new Dictionary <string, AdvScenarioData>();

            chapter.AddScenario(scenarios);
            //シナリオデータの初期化
            foreach (var keyValue in scenarios)
            {
                this.scenarioDataTbl.Add(keyValue.Key, keyValue.Value);
            }
            //シナリオデータの初期化
            foreach (var keyValue in scenarios)
            {
                keyValue.Value.Init(this.settingDataManager);
            }
        }
Ejemplo n.º 13
0
 void AddScenario(AdvChapterData chapter)
 {
     foreach (var grid in chapter.ScenarioList)
     {
         string sheetName = grid.SheetName;
         if (!MacroManager.TryAddMacroData(sheetName, grid))
         {
             //既にある(エクスポートされたデータの可能性あり)
             if (scenarioDataTbl.ContainsKey(sheetName))
             {
                 Debug.LogWarning(sheetName + " is already contains");
             }
             else
             {
                 AdvScenarioData data = new AdvScenarioData(sheetName, grid);
                 chapter.ScenarioDataList.Add(data);
                 scenarioDataTbl.Add(sheetName, data);
             }
         }
     }
 }
Ejemplo n.º 14
0
        //章別に分かれたシナリオをロードする
        IEnumerator LoadChaptersAsync(string rootDir)
        {
            //動的に作成
            AdvImportScenarios scenarios = ScriptableObject.CreateInstance <AdvImportScenarios>();

            foreach (string chapterName in ChapterNames)
            {
                string    url  = FilePathUtil.Combine(rootDir, chapterName) + ".chapter.asset";
                AssetFile file = AssetFileManager.Load(url, this);
                while (!file.IsLoadEnd)
                {
                    yield return(null);
                }

                AdvChapterData chapter = file.UnityObject as AdvChapterData;
                if (scenarios == null)
                {
                    Debug.LogError(url + " is  not scenario file");
                    yield break;
                }
                scenarios.AddChapter(chapter);
            }
            this.Scenarios = scenarios;
        }
Ejemplo n.º 15
0
 //章データを追加
 public void AddChapter(AdvChapterData chapterData)
 {
     this.Chapters.Add(chapterData);
 }
 public bool TryAddChapter(AdvChapterData chapterData)
 {
Ejemplo n.º 17
0
        //マクロ処理したインポートデータを作成する
        void ImportChapter(string chapterName, List <AdvImportBook> books)
        {
            //チャプターデータを作成し、各シナリオを設定
            string path = AssetDatabase.GetAssetPath(this.Project);

            path = FilePathUtil.Combine(FilePathUtil.GetDirectoryPath(path), chapterName);
            AdvChapterData chapter = LoadOrCreateChapterAsset(path);

            this.scenariosAsset.AddChapter(chapter);

            //初期化
            chapter.ImportBooks(books, this.macroManager);

            //設定データの解析とインポート
            AdvSettingDataManager setting = new AdvSettingDataManager();

            setting.ImportedScenarios = this.scenariosAsset;
            setting.BootInit("");
            chapter.MakeScenarioImportData(setting, this.macroManager);
            EditorUtility.SetDirty(chapter);
            AdvGraphicInfo.CallbackExpression = setting.DefaultParam.CalcExpressionBoolean;
            TextParser.CallbackCalcExpression = setting.DefaultParam.CalcExpressionNotSetParam;
            iTweenData.CallbackGetValue       = setting.DefaultParam.GetParameter;

            List <AdvScenarioData> scenarioList = new List <AdvScenarioData>();

            foreach (var book in books)
            {
                foreach (var grid in book.ImportGridList)
                {
                    grid.InitLink();
                    string sheetName = grid.SheetName;
                    if (!AdvSheetParser.IsScenarioSheet(sheetName))
                    {
                        continue;
                    }
                    if (scenarioDataTbl.ContainsKey(sheetName))
                    {
                        Debug.LogError(sheetName + " is already contains in the sheets");
                    }
                    else
                    {
                        AdvScenarioData scenario = new AdvScenarioData(grid);
                        scenarioDataTbl.Add(sheetName, scenario);
                        scenarioList.Add(scenario);
                    }
                }
            }

            //シナリオデータとして解析、初期化
            foreach (AdvScenarioData data in scenarioList)
            {
                data.Init(setting);
            }

            AdvGraphicInfo.CallbackExpression = null;
            TextParser.CallbackCalcExpression = null;
            iTweenData.CallbackGetValue       = null;

            //シナリオラベルのリンクチェック
            ErrorCheckScenarioLabel(scenarioList);

            //文字数カウント
            if (Project.CheckTextCount)
            {
                CheckCharacterCount(scenarioList);
            }
        }