private ISoundLoadDatabase m_remoteDatabase = null; // データベース情報 //===================================== // プロパティ //===================================== //===================================== // 関数 //===================================== /// <summary> /// コンストラクタ /// </summary> public CriSoundFileManager( RuntimePlatform platform, SoundConfig config, IJobEngine engine, ISoundLoadDatabase database, IFileBuilder <CriVersionTable> builder, IErrorHandler handler ) : base(platform, config, engine, handler) { m_remoteDatabase = database; m_saveBuilder = builder; }
/// <summary> /// ローカルDB取得 /// </summary> public IEnumerator Setup(RuntimePlatform platform, IManifestLoader loader, SoundConfig config) { m_cacheDB = m_saveBuilder.Read(CacheDbLocation.FullPath); yield return(null); var manifest = loader.GetManifest(config.BuildMapName); m_builtinDatabase = config.BuildDatabase(platform); yield return(m_builtinDatabase.Build(platform, manifest)); ChipstarLog.Log_ReadLocalTable(m_cacheDB, CacheDbLocation); yield break; }
private ILoadProcess DownloadImpl(ISoundLoadDatabase database, string cueSheetName) { var fileData = database.Find(cueSheetName); if (fileData == null) { ChipstarLog.Log_RequestCueSheet_Error(cueSheetName); return(SkipLoadProcess.Create(cueSheetName)); } ChipstarLog.Log_Download_Sound(fileData); ILoadProcess acbJob = SkipLoadProcess.Create(cueSheetName); var(acbUrl, awbUrl) = database.GetServerLocation(fileData); if (!HasAcb(fileData)) { acbJob = Download(acbUrl, fileData.Acb); } else { ChipstarLog.Log($"Cached :: {fileData.Acb.Identifier}"); } if (!fileData.HasAwb()) { // Awbファイルがないならココまで return(acbJob); } ILoadProcess awbJob = SkipLoadProcess.Create(cueSheetName); if (!HasAwb(fileData)) { awbJob = Download(awbUrl, fileData.Awb); } else { ChipstarLog.Log($"Cached :: {fileData.Awb.Identifier}"); } return(acbJob.ToJoin(awbJob)); }
private bool HasFileImpl(ISoundLoadDatabase database, string cueSheetName) { if (database == null) { return(false); } if (!database.Contains(cueSheetName)) { ChipstarLog.Log_NotContains_RemoteDB_Sound(cueSheetName); return(false); } // サウンドデータ var data = database.Find(cueSheetName); // --- acb-check if (!HasAcb(data)) { return(false); } if (!data.HasAwb()) { // Awb無いならここまででいい return(true); } // --- awb-check // if (!HasAwb(data)) { return(false); } return(true); }
/// <summary> /// /// </summary> protected override void DoDispose() { m_remoteDatabase = null; }