private void _UpdateTimeList(ViDoubleLink1 <ViTimeNodeInterface> list) { while (list.IsNotEmpty()) { ViTimeNodeInterface timeNode = list.GetHead() as ViTimeNodeInterface; ViDebuger.AssertError(timeNode); timeNode.Detach(); timeNode._Exce(this); } ViDebuger.AssertError(list.IsEmpty()); }
//+------------------------------------------------------------------------------------------------------------------------------------------------------------- public static void SetFreq(ViTimeNodeInterface node, float oldFreq, float newFreq) { if (node.IsAttach() == false) //! 如果回调已经发生过了, 则无法进行重新设置 { return; } ViTime64 currentTime = _timer.Time; ViTime64 delta = node.Time - currentTime; ViTime64 deltaTimeOldMod = (delta > 0) ? delta : 0; ViTime64 deltaTime = (ViTime64)(deltaTimeOldMod * oldFreq); ViTime64 deltaTimeNewMod = (ViTime64)(deltaTime / newFreq); node.SetTime(_timer.Time + deltaTimeNewMod); _timer.Add(node); }
public static void Modify(ViTimeNodeInterface node, ViTime64 deltaTime) { if (node.IsAttach() == false) //! 如果回调已经发生过了, 则无法进行重新设置 { return; } if (node.Time > -deltaTime) { node.SetTime(node.Time + deltaTime); } else { node.SetTime(0); } _timer.Add(node); }
public void Add(ViTimeNodeInterface node) { if (node.Time < _roll0.TimeInf) { node.SetTime(_roll0.TimeInf); } if (_roll0.InRange(node.Time)) { _roll0.Add(node); return; } if (_roll1.InRange(node.Time)) { _roll1.Add(node); return; } _AddEvent(_reserveList, node); }
// private static void _AddEvent(ViDoubleLink1 <ViTimeNodeInterface> list, ViTimeNodeInterface node) { ViDoubleLinkNode1 <ViTimeNodeInterface> iter = list.GetHead(); while (!list.IsEnd(iter)) { ViTimeNodeInterface timeNode = iter as ViTimeNodeInterface; ViDebuger.AssertError(timeNode); ViDoubleLink1 <ViTimeNodeInterface> .Next(ref iter); if (timeNode.Time > node.Time) { ViDoubleLink1 <ViTimeNodeInterface> .PushBefore(iter, node); return; } } list.PushBack(node); }
public void Add(ViTimeNodeInterface node) { ViTime64 time = node.Time; ViDebuger.AssertError(_timeInf <= time && time < _timeSup); UInt32 slot = _idx; if (time > _timeInf) { UInt32 deltaSlot = (UInt32)((time - _timeInf) / _span); slot = deltaSlot + _idx; ViDebuger.AssertError(deltaSlot < _timeListArray.Size); if (slot >= _timeListArray.Size) { slot -= _timeListArray.Size; } } ViDebuger.AssertError(slot < _timeListArray.Size); _timeListArray.Get(slot).PushBack(node); }
private static void _AddEvent(ViDoubleLink1 <ViTimeNodeInterface> list, TimeRoll timeRoll) { ViDoubleLinkNode1 <ViTimeNodeInterface> iter = list.GetHead(); while (!list.IsEnd(iter)) { ViTimeNodeInterface timeNode = iter as ViTimeNodeInterface; ViDebuger.AssertError(timeNode); ViDoubleLink1 <ViTimeNodeInterface> .Next(ref iter); if (timeRoll.InRange(timeNode.Time)) { timeRoll.Add(timeNode); } else { break; } } }
public void Func(ViTimeNodeInterface node) { }
// void OnEndTime(ViTimeNodeInterface node) { End(); }
void OnAllowMoveStartTime(ViTimeNodeInterface node) { }
void OnMoveTime(ViTimeNodeInterface node) { ViDebuger.AssertWarning(_state == State.PRESSED); _state = State.MOVING; _OnMoveStart(); }