Ejemplo n.º 1
0
        //最初のページ(とその自動ジャンプ先)のリソースファイルをファイルセットに追加
        void PreloadDeep(AdvDataManager dataManager, HashSet <AssetFile> fileSet, int maxFilePreload, int deepLevel)
        {
            //フラグを考慮しないので、循環参照による無限参照を回避、階層は5階層までしか拾わない
            if (deepLevel <= 0)
            {
                return;
            }
            --deepLevel;

            if (PageNum <= 0)
            {
                return;
            }
            if (fileSet.Count >= maxFilePreload)
            {
                return;
            }

            //最初のページのみプリロード
            GetPageData(0).AddToFileSet(fileSet);
            if (fileSet.Count >= maxFilePreload)
            {
                return;
            }

            //最初のページに自動分岐があれば、さらにその先をプリロード
            GetPageData(0).GetAutoJumpLabels(dataManager).ForEach(
                x =>
            {
                if (x != null)
                {
                    x.PreloadDeep(dataManager, fileSet, maxFilePreload, deepLevel);
                }
            });
        }
Ejemplo n.º 2
0
        //指定のページ移行のファイルをプリロード
        internal HashSet <AssetFile> MakePreloadFileListSub(AdvDataManager dataManager, int page, int maxFilePreload, int preloadDeep)
        {
            AdvScenarioLabelData data    = this;
            HashSet <AssetFile>  fileSet = new HashSet <AssetFile>();

            do
            {
                for (int j = page; j < data.PageNum; ++j)
                {
                    data.GetPageData(j).AddToFileSet(fileSet);
                    if (fileSet.Count >= maxFilePreload)
                    {
                        return(fileSet);
                    }
                }
                //ジャンプなどがあるので、このページでいったん先読みの区切り
                if (data.IsEndPreLoad())
                {
                    //ジャンプ先もプリロードする
                    data.PreloadDeep(dataManager, page, fileSet, maxFilePreload, preloadDeep);
                    break;
                }
                page = 0;
                data = data.Next;
            } while (data != null);
            return(fileSet);
        }
Ejemplo n.º 3
0
 //自動ジャンプ先のシナリオデータ
 internal List <AdvScenarioLabelData> GetAutoJumpLabels(AdvDataManager dataManager)
 {
     if (AutoJumpLabelList != null)
     {
         return(AutoJumpLabelList);
     }
     this.AutoJumpLabelList = new List <AdvScenarioLabelData>();
     this.CommandList.ForEach(
         command =>
     {
         ///このシナリオからリンクするジャンプ先のシナリオラベルを取得
         string[] jumpLabels = command.GetJumpLabels();
         if (jumpLabels != null)
         {
             if (command is AdvCommandJump ||
                 command is AdvCommandJumpRandom ||
                 command is AdvCommandJumpSubroutine ||
                 command is AdvCommandJumpSubroutineRandom)
             {
                 foreach (var jumpLabel in jumpLabels)
                 {
                     AutoJumpLabelList.Add(dataManager.FindScenarioLabelData(jumpLabel));
                 }
             }
         }
     });
     return(AutoJumpLabelList);
 }
Ejemplo n.º 4
0
 /// <summary>
 /// バックグランドでダウンロードだけする
 /// </summary>
 /// <param name="dataManager">各種設定データ</param>
 public void Download(AdvDataManager dataManager)
 {
     foreach (var keyValue in ScenarioLabels)
     {
         keyValue.Value.Download(dataManager);
     }
     isAlreadyBackGroundLoad = true;
 }
 public void Download(AdvDataManager dataManager)
 {
     foreach (KeyValuePair <string, AdvScenarioLabelData> pair in this.ScenarioLabels)
     {
         pair.Value.Download(dataManager);
     }
     this.isAlreadyBackGroundLoad = true;
 }
Ejemplo n.º 6
0
 /// <summary>
 /// バックグランドでダウンロードだけする
 /// </summary>
 /// <param name="dataManager">各種設定データ</param>
 public void Download(AdvDataManager dataManager)
 {
     foreach (AdvCommand command in commandList)
     {
         command.Download();
     }
     isAlreadyBackGroundLoad = true;
 }
Ejemplo n.º 7
0
 //DL処理する
 public void Download(AdvDataManager dataManager)
 {
     if (null != loadFileList)
     {
         foreach (AssetFile file in loadFileList)
         {
             AssetFileManager.Download(file);
         }
     }
 }
Ejemplo n.º 8
0
		//DL処理する
		public void Download(AdvDataManager dataManager)
		{
			if (null != loadFileList)
			{
				foreach (AssetFile file in loadFileList)
				{
					AssetFileManager.Download(file);
				}
			}
		}
Ejemplo n.º 9
0
        /// <summary>
        /// 起動時の初期化
        /// </summary>
        /// <param name="resourceDir">リソースディレクトリ</param>
        public void BootInit(string resourceDir, AdvDataManager dataManager = null)
        {
            this.ResourceDir = resourceDir;
            bool autoChangeSoundExt = false;

            if (dataManager != null)
            {
                autoChangeSoundExt = dataManager.LegacyAutoChangeSoundExt;
            }
            characterDirInfo = new DefaultDirInfo {
                defaultDir = @"Texture/Character", defaultExt = ".png"
            };
            bgDirInfo = new DefaultDirInfo {
                defaultDir = @"Texture/BG", defaultExt = ".jpg"
            };
            eventDirInfo = new DefaultDirInfo {
                defaultDir = @"Texture/Event", defaultExt = ".jpg"
            };
            spriteDirInfo = new DefaultDirInfo {
                defaultDir = @"Texture/Sprite", defaultExt = ".png"
            };
            thumbnailDirInfo = new DefaultDirInfo {
                defaultDir = @"Texture/Thumbnail", defaultExt = ".jpg"
            };
            bgmDirInfo = new DefaultDirInfo {
                defaultDir = @"Sound/BGM", defaultExt = ".wav", legacyAutoChangeSoundExt = autoChangeSoundExt
            };
            seDirInfo = new DefaultDirInfo {
                defaultDir = @"Sound/SE", defaultExt = ".wav", legacyAutoChangeSoundExt = autoChangeSoundExt
            };
            ambienceDirInfo = new DefaultDirInfo {
                defaultDir = @"Sound/Ambience", defaultExt = ".wav", legacyAutoChangeSoundExt = autoChangeSoundExt
            };
            voiceDirInfo = new DefaultDirInfo {
                defaultDir = @"Sound/Voice", defaultExt = ".wav", legacyAutoChangeSoundExt = autoChangeSoundExt
            };
            particleDirInfo = new DefaultDirInfo {
                defaultDir = @"Particle", defaultExt = ".prefab"
            };
            videoDirInfo = new DefaultDirInfo {
                defaultDir = @"Video", defaultExt = ".mp4"
            };

            InitDefaultDirInfo(ResourceDir, characterDirInfo);
            InitDefaultDirInfo(ResourceDir, bgDirInfo);
            InitDefaultDirInfo(ResourceDir, eventDirInfo);
            InitDefaultDirInfo(ResourceDir, spriteDirInfo);
            InitDefaultDirInfo(ResourceDir, thumbnailDirInfo);
            InitDefaultDirInfo(ResourceDir, bgmDirInfo);
            InitDefaultDirInfo(ResourceDir, seDirInfo);
            InitDefaultDirInfo(ResourceDir, ambienceDirInfo);
            InitDefaultDirInfo(ResourceDir, voiceDirInfo);
            InitDefaultDirInfo(ResourceDir, particleDirInfo);
            InitDefaultDirInfo(ResourceDir, videoDirInfo);
        }
Ejemplo n.º 10
0
 /// <summary>
 /// 起動時の初期化
 /// </summary>
 /// <param name="rootDirResource">ルートディレクトリのリソース</param>
 public void BootInit(string rootDirResource, AdvDataManager dataManager = null)
 {
     BootSetting.BootInit(rootDirResource, dataManager);
     if (this.ImportedScenarios != null)
     {
         foreach (AdvChapterData chapter in this.ImportedScenarios.Chapters)
         {
             chapter.BootInit(this);
         }
     }
 }
Ejemplo n.º 11
0
        //ジャンプ先のリソースファイルをファイルセットに追加
        void PreloadDeep(AdvDataManager dataManager, int startPage, HashSet <AssetFile> fileSet, int maxFilePreload, int deepLevel)
        {
            if (fileSet.Count >= maxFilePreload)
            {
                return;
            }
            if (deepLevel <= 0)
            {
                return;
            }

            for (int page = startPage; page < this.PageNum; ++page)
            {
                GetPageData(page).GetJumpScenarioLabelDataList(dataManager).ForEach(
                    x =>
                {
                    if (x != null)
                    {
                        x.PreloadDeep(dataManager, fileSet, maxFilePreload, deepLevel);
                    }
                });
            }
        }
Ejemplo n.º 12
0
        //ジャンプ先のシナリオデータ
        public List <AdvScenarioLabelData> GetJumpScenarioLabelDataList(AdvDataManager dataManager)
        {
            if (JumpLabelList != null)
            {
                return(JumpLabelList);
            }

            this.JumpLabelList = new List <AdvScenarioLabelData>();
            this.CommandList.ForEach(
                command =>
            {
                ///このシナリオからリンクするジャンプ先のシナリオラベルを取得
                string[] jumpLabels = command.GetJumpLabels();
                if (jumpLabels != null)
                {
                    foreach (var jumpLabel in jumpLabels)
                    {
                        JumpLabelList.Add(dataManager.FindScenarioLabelData(jumpLabel));
                    }
                }
            });
            return(JumpLabelList);
        }
Ejemplo n.º 13
0
 //データのダウンロード
 public void Download(AdvDataManager dataManager)
 {
     PageDataList.ForEach((item) => item.Download(dataManager));
 }
		//データのダウンロード
		public void Download(AdvDataManager dataManager)
		{
			commnadList.ForEach((item) => item.Download(dataManager));
		}
Ejemplo n.º 15
0
 /// <summary>
 /// バックグランドでダウンロードだけする
 /// </summary>
 /// <param name="dataManager">各種設定データ</param>
 public void Download(AdvDataManager dataManager)
 {
     ScenarioLabelData.ForEach((item) => item.Download(dataManager));
     isAlreadyBackGroundLoad = true;
 }
		/// <summary>
		/// バックグランドでダウンロードだけする
		/// </summary>
		/// <param name="dataManager">各種設定データ</param>
		public void Download(AdvDataManager dataManager)
		{
			ScenarioLabelData.ForEach( (item)=>item.Download(dataManager) );
			isAlreadyBackGroundLoad = true;
		}