public static WaveElement Create(WaveElementData waveElementData, float cumulativeTime) { WaveElement waveElement = ReferencePool.Acquire <WaveElement>(); waveElement.waveElementData = waveElementData; waveElement.CumulativeTime = cumulativeTime; return(waveElement); }
public WaveElementData[] GetAllWaveElementData() { int index = 0; WaveElementData[] results = new WaveElementData[dicWaveElementData.Count]; foreach (var waveElementData in dicWaveElementData.Values) { results[index++] = waveElementData; } return(results); }
protected override void OnLoad() { dtWave = GameEntry.DataTable.GetDataTable <DRWave>(); if (dtWave == null) { throw new System.Exception("Can not get data table Item"); } dtWaveElement = GameEntry.DataTable.GetDataTable <DRWaveElement>(); if (dtWaveElement == null) { throw new System.Exception("Can not get data table ItemGroup"); } dicWaveData = new Dictionary <int, WaveData>(); dicWaveElementData = new Dictionary <int, WaveElementData>(); DRWaveElement[] dRWaveElements = dtWaveElement.GetAllDataRows(); foreach (var dRWaveElement in dRWaveElements) { if (dicWaveElementData.ContainsKey(dRWaveElement.Id)) { Log.Error("WaveElement id duplicate:{0}.", dRWaveElement.Id); continue; } dicWaveElementData.Add(dRWaveElement.Id, new WaveElementData(dRWaveElement)); } DRWave[] dRWaves = dtWave.GetAllDataRows(); foreach (var dRWave in dRWaves) { int[] waveElementRange = dRWave.WaveElements; if (waveElementRange.Length != 2) { throw new System.Exception(string.Format("Wave data 'WaveElements' length error,current is '{0}', should be 2", waveElementRange.Length)); } int startIndex = waveElementRange[0]; int endIndex = waveElementRange[1]; if (endIndex < startIndex) { throw new System.Exception("Wave element index invaild,EndIndex should smaller than StartIndex."); } WaveElementData[] waveElementDatas = new WaveElementData[endIndex - startIndex + 1]; int index = 0; for (int i = startIndex; i <= endIndex; i++) { WaveElementData waveElementData = null; if (!dicWaveElementData.TryGetValue(i, out waveElementData)) { throw new System.Exception("Can not find WaveElementDat id :" + i); } waveElementDatas[index++] = waveElementData; } dicWaveData.Add(dRWave.Id, new WaveData(dRWave, waveElementDatas)); } }
public void Clear() { waveElementData = null; CumulativeTime = 0; }
public WaveElement() { waveElementData = null; CumulativeTime = 0; }