123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- using System;
- using System.Collections.Generic;
- using CombatCore.SerializationTimeLine;
- using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
- using CombatLibrary.CombatLibrary.CombatCore.Utility;
- using Fort23.Core;
- using Fort23.UTool;
- using Utility;
- #if !COMBAT_SERVER
- using UnityEngine;
- #endif
- [System.Serializable]
- public class TimeLienData
- {
- public string timeLineName;
- public List<string> key = new List<string>();
- public List<string> value = new List<string>();
- public string heroName;
- public Map<string, List<TimeLineAssetSerialization>> allAssetSerializations =
- new Map<string, List<TimeLineAssetSerialization>>();
- public BetterList<string> allAssetSerializationsKeys = new BetterList<string>();
- // public TimeLineAssetSerialization[] GetAllTimeLineAssetSerialization
- // {
- // get { return allAssetSerializations.ToArray(); }
- // }
- public TimeLienData Clone()
- {
- TimeLienData timeLienData = (TimeLienData)this.MemberwiseClone();
- timeLienData.DeserializeData();
- return timeLienData;
- }
- /// <summary>
- /// 反序列化
- /// </summary>
- public void DeserializeData()
- {
- allAssetSerializations.Clear();
- allAssetSerializationsKeys.Clear();
- for (int i = 0; i < key.Count; i++)
- {
- Type type = System.Type.GetType(key[i]);
- if (type != null)
- {
- TimeLineAssetSerialization timeLineAssetSerialization =
- (TimeLineAssetSerialization)JsonManager.FromJson(value[i], type);
- if (allAssetSerializations.TryGetValue(timeLineAssetSerialization.groupName,
- out List<TimeLineAssetSerialization> info))
- {
- info.Add(timeLineAssetSerialization);
- }
- else
- {
- info = new List<TimeLineAssetSerialization>();
- info.Add(timeLineAssetSerialization);
- string keys = timeLineAssetSerialization.groupName;
- allAssetSerializations.Add(keys, info);
- allAssetSerializationsKeys.Add(keys);
- }
- }
- else
- {
- LogTool.Error(key[i] + "失败");
- }
- }
- }
- public T GetTimeLineEventLogicGroup<T>(string groupName, IFilterTimeLine filterTimeLine)
- where T : TimeLineEventLogicGroupBasic, new()
- {
- if (string.IsNullOrEmpty(groupName))
- {
- return null;
- }
- List<TimeLineAssetSerialization> timeLineAssetSerializations =
- GetTimeLineAssetSerialization(groupName, filterTimeLine);
- if (timeLineAssetSerializations==null||timeLineAssetSerializations.Count <= 0)
- {
- // LogTool.Log("没有时间线" + groupName);
- return null;
- }
- T timeLineEventLogicGroup = CObjectPool.Instance.Fetch<T>();
- timeLineEventLogicGroup.groupName = groupName;
- timeLineEventLogicGroup.Init(timeLineAssetSerializations);
- return timeLineEventLogicGroup;
- }
- public float GetTimeLineEventLogicGroupForTime(string groupName, IFilterTimeLine filterTimeLine)
- {
- float maxTime = 1;
- List<TimeLineAssetSerialization> timeLineAssetSerializations =
- GetTimeLineAssetSerialization(groupName, filterTimeLine);
- for (int i = 0; i < timeLineAssetSerializations.Count; i++)
- {
- TimeLineAssetSerialization timeLineAssetSerialization = timeLineAssetSerializations[i];
- if (timeLineAssetSerialization is TineLineAnimationPlayableSerialization)
- {
- if (maxTime < timeLineAssetSerialization.endTime)
- {
- maxTime = timeLineAssetSerialization.endTime;
- }
- }
- }
- return maxTime;
- }
- public T GetTimeLineEventInfo<T>(string groupName,IFilterTimeLine filterTimeLine) where T : class
- {
- List<TimeLineAssetSerialization> timeLineAssetSerializations =
- GetTimeLineAssetSerialization(groupName, filterTimeLine);
- for (int i = 0; i < timeLineAssetSerializations.Count; i++)
- {
-
- if (timeLineAssetSerializations[i] is T )
- {
- return timeLineAssetSerializations[i] as T;
- }
- }
- return null;
- }
- public List<CurveInfo> GetTimeLineEventCurveInfos(string groupName, string guid, IFilterTimeLine filterTimeLine)
- {
- List<TimeLineAssetSerialization> timeLineAssetSerializations =
- GetTimeLineAssetSerialization(groupName, filterTimeLine);
- for (int i = 0; i < timeLineAssetSerializations.Count; i++)
- {
- TimeLineCurveSerializtion timeLineAssetSerialization =
- timeLineAssetSerializations[i] as TimeLineCurveSerializtion;
- if (timeLineAssetSerialization != null && timeLineAssetSerialization.guid.Equals(guid))
- {
- return timeLineAssetSerialization.CurveInfos;
- }
- }
- return null;
- }
- public ACurve GetTimeLineEventACurve(string groupName, string guid, IFilterTimeLine filterTimeLine)
- {
- List<TimeLineAssetSerialization> timeLineAssetSerializations =
- GetTimeLineAssetSerialization(groupName, filterTimeLine);
- for (int i = 0; i < timeLineAssetSerializations.Count; i++)
- {
- TimeLineCurveSerializtion timeLineAssetSerialization =
- timeLineAssetSerializations[i] as TimeLineCurveSerializtion;
- if (timeLineAssetSerialization != null && timeLineAssetSerialization.guid.Equals(guid))
- {
- ACurve aCurve = new ACurve();
- aCurve.CurveInfos = timeLineAssetSerialization.CurveInfos;
- return aCurve;
- }
- }
- return default;
- }
- public float GetTimeLineEventSkillForTime(string groupName, IFilterTimeLine filterTimeLine)
- {
- float maxTime = 0;
- List<TimeLineAssetSerialization> timeLineAssetSerializations =
- GetTimeLineAssetSerialization(groupName, filterTimeLine);
- for (int i = 0; i < timeLineAssetSerializations.Count; i++)
- {
- TimeLineAssetSerialization timeLineAssetSerialization = timeLineAssetSerializations[i];
- // if (timeLineAssetSerialization is TimeLineSpineSeralization)
- // {
- // return timeLineAssetSerialization.continuedTime;
- // }
- }
- return 0;
- }
- public float GetTimeLineEventSkillForPuaseTime(string groupName, IFilterTimeLine filterTimeLine)
- {
- float maxTime = 0;
- List<TimeLineAssetSerialization> timeLineAssetSerializations =
- GetTimeLineAssetSerialization(groupName, filterTimeLine);
- for (int i = 0; i < timeLineAssetSerializations.Count; i++)
- {
- TimeLineAssetSerialization timeLineAssetSerialization = timeLineAssetSerializations[i];
- if (timeLineAssetSerialization is TimeLineSkillStartSerializtion)
- {
- return timeLineAssetSerialization.continuedTime;
- }
- }
- return 0;
- }
- public List<TimeLineAssetSerialization> GetTimeLineAssetSerialization(string groupName,
- IFilterTimeLine filterTimeLine)
- {
- // List<TimeLineAssetSerialization> currTimeLineAssetSerializations = new List<TimeLineAssetSerialization>();
- if (allAssetSerializations.TryGetValue(groupName,
- out List<TimeLineAssetSerialization> allInfo))
- {
- // for (int i = 0; i < allInfo.Count; i++)
- // {
- // TimeLineAssetSerialization fxSerializtion = allInfo[i];
- // if (fxSerializtion.groupName.Equals(groupName) &&
- // (filterTimeLine == null || filterTimeLine.Filter(fxSerializtion)))
- // {
- // currTimeLineAssetSerializations.Add(fxSerializtion);
- // }
- // }
- return allInfo;
- }
- return null;
- }
- }
|