コード例 #1
0
 protected IDynamicObj RemoveObjKey(int key)
 {
     if (!Has(key))
     {
         return(null);
     }
     if (m_bIsUpdating)
     {
         DCEntity entity = m_cEntityPool.GetObject();
         entity.Init(key);
         entity.state = DCState.ToRemove;
         m_lstOperateEntity.Add(entity);
         for (int i = 0; i < m_lstEntity.Count; i++)
         {
             if (m_lstEntity[i].Key == key)
             {
                 m_lstEntity[i].state = DCState.ToRemove;
                 return(m_lstEntity[i].obj);
             }
         }
         for (int i = 0; i < m_lstOperateEntity.Count; i++)
         {
             if (m_lstOperateEntity[i].Key == key && m_lstOperateEntity[i].obj != null)
             {
                 return(m_lstOperateEntity[i].obj);
             }
         }
     }
     else
     {
         for (int i = m_lstEntity.Count - 1; i > -1; i--)
         {
             if (m_lstEntity[i].Key == key)
             {
                 var entity = m_lstEntity[i];
                 m_lstEntity.RemoveAt(i);
                 var entityObj = entity.obj;
                 m_cEntityPool.SaveObject(entity);
                 return(entityObj);
             }
         }
     }
     return(null);
 }
コード例 #2
0
        protected bool AddObj(IDynamicObj obj, object param = null)
        {
            if (Has(obj.key))
            {
                return(false);
            }
            DCEntity entity = m_cEntityPool.GetObject();

            entity.Init(obj, param);
            if (m_bIsUpdating)
            {
                entity.state = DCState.ToAdd;
                m_lstOperateEntity.Add(entity);
            }
            else
            {
                entity.state = DCState.ToDoAction;
                m_lstEntity.Add(entity);
            }
            return(true);
        }
コード例 #3
0
 protected bool RemoveObj(IDynamicObj obj)
 {
     if (!Has(obj.key))
     {
         return(false);
     }
     if (m_bIsUpdating)
     {
         DCEntity entity = m_cEntityPool.GetObject();
         entity.Init(obj);
         entity.state = DCState.ToRemove;
         m_lstOperateEntity.Add(entity);
         for (int i = 0; i < m_lstEntity.Count; i++)
         {
             if (m_lstEntity[i].Key == obj.key)
             {
                 m_lstEntity[i].state = DCState.ToRemove;
             }
         }
     }
     else
     {
         for (int i = m_lstEntity.Count - 1; i > -1; i--)
         {
             if (m_lstEntity[i].Key == obj.key)
             {
                 var entity = m_lstEntity[i];
                 m_lstEntity.RemoveAt(i);
                 var entityObj = entity.obj;
                 m_cEntityPool.SaveObject(entity);
                 break;
             }
         }
     }
     return(true);
 }