// 从延迟添加列表删除一个 Item protected void delFromDelayAddList(IDelayHandleItem delayObject) { foreach (var item in m_deferredAddQueue.list) { if (UtilApi.isAddressEqual(item.m_delayObject, delayObject)) { m_deferredAddQueue.Remove(item); } } }
override public void addObject(IDelayHandleItem entity, float priority = 0.0f) { if (bInDepth()) { base.addObject(entity); } else { m_sceneEntityList.Add(entity as SceneEntityBase); } }
override public void addObject(IDelayHandleItem delayObject, float priority = 0.0f) { if (bInDepth()) { base.addObject(delayObject); } else { m_sceneEntityList.Add(delayObject as ImageSpriteAni); } }
override public void delObject(IDelayHandleItem delayObject) { if (bInDepth()) { base.delObject(delayObject); } else { m_sceneEntityList.Remove(delayObject as ImageSpriteAni); } }
override public void delObject(IDelayHandleItem entity) { if (bInDepth()) { base.delObject(entity); } else { m_sceneEntityList.Remove(entity as SceneEntityBase); } }
// 只有没有添加到列表中的才能添加 protected bool existDelList(IDelayHandleItem delayObject) { foreach (var item in m_deferredDelQueue.list) { if (UtilApi.isAddressEqual(item.m_delayObject, delayObject)) { return true; } } return false; }
override public void addObject(IDelayHandleItem delayObject, float priority = 0.0f) { if (bInDepth()) { base.addObject(delayObject, priority); } else { // 这个判断说明相同的函数只能加一次,但是如果不同资源使用相同的回调函数就会有问题,但是这个判断可以保证只添加一次函数,值得,因此不同资源需要不同回调函数 m_handleList.Add(delayObject as EventDispatchFunctionObject); } }
// 只有没有添加到列表中的才能添加 protected bool existDelList(IDelayHandleItem delayObject) { foreach (var item in m_deferredDelQueue.list) { if (UtilApi.isAddressEqual(item.m_delayObject, delayObject)) { return(true); } } return(false); }
override public void delObject(IDelayHandleItem delayObject) { if (bInDepth()) { base.delObject(delayObject); } else { if (!m_handleList.Remove(delayObject as EventDispatchFunctionObject)) { Ctx.m_instance.m_logSys.log("Event Handle not exist"); } } }
public override void addObject(IDelayHandleItem delayObject, float priority = 0.0f) { // 检查当前是否已经在队列中 if (m_timerLists.IndexOf(delayObject as TimerItemBase) == -1) { if (bInDepth()) { base.addObject(delayObject, priority); } else { m_timerLists.Add(delayObject as TimerItemBase); } } }
public override void delObject(IDelayHandleItem delayObject) { if (bInDepth()) { base.delObject(delayObject); } else { foreach (TickProcessObject item in m_tickLst) { if (UtilApi.isAddressEqual(item.m_tickObject, delayObject)) { m_tickLst.Remove(item); break; } } } }
public override void addObject(IDelayHandleItem delayObject, float priority = 0.0f) { if (bInDepth()) { base.addObject(delayObject, priority); } else { int position = -1; for (int i = 0; i < m_tickLst.Count; i++) { if (m_tickLst[i] == null) { continue; } if (m_tickLst[i].m_tickObject == delayObject) { return; } if (m_tickLst[i].m_priority < priority) { position = i; break; } } TickProcessObject processObject = new TickProcessObject(); processObject.m_tickObject = delayObject as ITickedObject; processObject.m_priority = priority; if (position < 0 || position >= m_tickLst.Count) { m_tickLst.Add(processObject); } else { m_tickLst.Insert(position, processObject); } } }
virtual public void delObject(IDelayHandleItem delayObject) { if (m_loopDepth > 0) { if (!existDelList(delayObject)) { if (existAddList(delayObject)) // 如果已经添加到删除列表中 { delFromDelayAddList(delayObject); } delayObject.setClientDispose(); DelayHandleObject delayHandleObject = new DelayHandleObject(); delayHandleObject.m_delayParam = new DelayDelParam(); m_deferredDelQueue.Add(delayHandleObject); delayHandleObject.m_delayObject = delayObject; } } }
virtual public void addObject(IDelayHandleItem delayObject, float priority = 0.0f) { if (m_loopDepth > 0) { if (!existAddList(delayObject)) // 如果添加列表中没有 { if (existDelList(delayObject)) // 如果已经添加到删除列表中 { delFromDelayDelList(delayObject); } DelayHandleObject delayHandleObject = new DelayHandleObject(); delayHandleObject.m_delayParam = new DelayAddParam(); m_deferredAddQueue.Add(delayHandleObject); delayHandleObject.m_delayObject = delayObject; (delayHandleObject.m_delayParam as DelayAddParam).m_priority = priority; } } }
public override void addObject(IDelayHandleItem delayObject, float priority = 0.0f) { if (bInDepth()) { base.addObject(delayObject, priority); } else { int position = -1; for (int i = 0; i < m_tickLst.Count; i++) { if (m_tickLst[i] == null) continue; if (m_tickLst[i].m_tickObject == delayObject) { return; } if (m_tickLst[i].m_priority < priority) { position = i; break; } } TickProcessObject processObject = new TickProcessObject(); processObject.m_tickObject = delayObject as ITickedObject; processObject.m_priority = priority; if (position < 0 || position >= m_tickLst.Count) { m_tickLst.Add(processObject); } else { m_tickLst.Insert(position, processObject); } } }
public override void delObject(IDelayHandleItem delayObject) { // 检查当前是否在队列中 if (m_timerLists.IndexOf(delayObject as TimerItemBase) != -1) { (delayObject as TimerItemBase).m_disposed = true; if (bInDepth()) { base.delObject(delayObject); } else { foreach (TimerItemBase item in m_timerLists) { if (UtilApi.isAddressEqual(item, delayObject)) { m_timerLists.Remove(item); break; } } } } }