internal TrackEntry SetTimelineData(TrackEntry to, ExposedList <TrackEntry> mixingToArray, HashSet <int> propertyIDs) { if (to != null) { mixingToArray.Add(to); } TrackEntry result = (mixingFrom == null) ? this : mixingFrom.SetTimelineData(this, mixingToArray, propertyIDs); if (to != null) { mixingToArray.Pop(); } TrackEntry[] items = mixingToArray.Items; int num = mixingToArray.Count - 1; Timeline[] items2 = animation.timelines.Items; int count = animation.timelines.Count; int[] items3 = timelineData.Resize(count).Items; timelineDipMix.Clear(); TrackEntry[] items4 = timelineDipMix.Resize(count).Items; for (int i = 0; i < count; i++) { int propertyId = items2[i].PropertyId; if (!propertyIDs.Add(propertyId)) { items3[i] = 0; continue; } if (to == null || !to.HasTimeline(propertyId)) { items3[i] = 1; continue; } int num2 = num; while (true) { if (num2 >= 0) { TrackEntry trackEntry = items[num2]; if (trackEntry.HasTimeline(propertyId)) { num2--; continue; } if (trackEntry.mixDuration > 0f) { items3[i] = 3; items4[i] = trackEntry; break; } } items3[i] = 2; break; } } return(result); }
internal TrackEntry SetTimelineData(TrackEntry to, ExposedList <TrackEntry> mixingToArray, HashSet <int> propertyIDs) { if (to != null) { mixingToArray.Add(to); } TrackEntry entry = (this.mixingFrom == null) ? this : this.mixingFrom.SetTimelineData(this, mixingToArray, propertyIDs); if (to != null) { mixingToArray.Pop(); } TrackEntry[] items = mixingToArray.Items; int num = mixingToArray.Count - 1; Timeline[] timelineArray = this.animation.timelines.Items; int count = this.animation.timelines.Count; int[] numArray = this.timelineData.Resize(count).Items; this.timelineDipMix.Clear(true); TrackEntry[] entryArray2 = this.timelineDipMix.Resize(count).Items; for (int i = 0; i < count; i++) { int propertyId = timelineArray[i].PropertyId; if (!propertyIDs.Add(propertyId)) { numArray[i] = 0; continue; } if ((to == null) || !to.HasTimeline(propertyId)) { numArray[i] = 1; continue; } for (int j = num; j >= 0; j--) { TrackEntry entry2 = items[j]; if (!entry2.HasTimeline(propertyId)) { if (entry2.mixDuration <= 0f) { break; } numArray[i] = 3; entryArray2[i] = entry2; continue; } } numArray[i] = 2; } return(entry); }
static int Pop(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); Spine.ExposedList <Spine.Animation> obj = (Spine.ExposedList <Spine.Animation>)ToLua.CheckObject <Spine.ExposedList <Spine.Animation> >(L, 1); Spine.Animation o = obj.Pop(); ToLua.PushObject(L, o); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }