public TimelineConfig() { Items = new List<TimelineActivity>(); Anchors = new List<TimelineAnchor>(); AlertAlls = new List<AlertAll>(); HideAlls = new List<string>(); Alerts = new List<ActivityAlert>(); AlertSoundAssets = new AlertSoundAssets(); }
/*--- Method: public ------------------------------------------------------------------------------------------------------------------------------------------*/ /// <summary> タイムラインデータを生成します。 /// </summary> /// <param name="pName"> タイムライン名 </param> /// <param name="pActivityList"> アクティビティリスト </param> /// <param name="pAnchorList"> アンカーリスト </param> /// <param name="pAlertList"> アラートリスト </param> /// <param name="pSoundAssets"> サウンドアセット </param> public void SetTimelineData(string pName, List <TimelineActivityData> pActivityList, List <TimelineAnchorData> pAnchorList, List <TimelineAlertObjectModel> pAlertList, AlertSoundAssets pSoundAssets) { this.Name = pName; this.AlertSoundAssets = pSoundAssets; pAlertList.Sort(); this.AlertList = pAlertList; this.AnchorList = pAnchorList.OrderBy(anchor => anchor.TimeFromStart).ToList(); anchorsTree = new IntervalTree.IntervalTree <double, TimelineAnchorData>(); foreach (TimelineAnchorData a in this.AnchorList) { anchorsTree.Add(a.Interval, a); } int i = 0; pActivityList.Sort(TimelineActivityData.CompareByEndTime); foreach (TimelineActivityData a in pActivityList) { a.Index = i++; a.TimerData = this.TimerData; a.TimelineAlert = this.AlertList.FirstOrDefault(s => s.Activity == a); a.TimelineAnchorData = this.AnchorList.FirstOrDefault(anc => anc.TimeFromStart == a.TimeFromStart); this.ActivityCollection.Add(a); this.TimerData.CombatTimeChangedRefreshList.Add(a); } this.activityEndTimeList = this.ActivityCollection.Select(a => a.EndTime).ToList(); alertsTimeFromStart = AlertList.Select(a => a.TimeFromStart).ToList(); this.EndTime = this.ActivityCollection.Any() ? this.ActivityCollection.Last().EndTime : 0; this.TimerData.CurrentCombatEndTime = this.EndTime; }