Пример #1
0
        public void Add(string id, Entity entity)
        {
            Debug.Assert(id != null && entity != null);

            lock (Map)
            {
                EntityList list = Get(id);

                if (list == null)
                {
                    list = new EntityList();
                    Map.Add(id, list);
                }

                EntityIdleComponent idle = entity.Get <EntityIdleComponent>();
                if (idle != null)
                {
                    idle.Add(this);
                }

                list.Add(entity);
                list.Sort();

                entity++;
            }
        }
Пример #2
0
        public bool Remove(string id, Entity entity)
        {
            Debug.Assert(id != null && entity != null);

            bool removed = false;

            lock (Map)
            {
                EntityList list = Get(id);

                if (list != null)
                {
                    removed = list.Remove(entity);
                    if (list.Count <= 0)
                    {
                        Map.Remove(id);
                    }
                }
            }

            if (removed)
            {
                EntityIdleComponent idle = entity.Get <EntityIdleComponent>();
                if (idle != null)
                {
                    idle.Remove(this);
                }

                entity--;
            }

            return(removed);
        }
Пример #3
0
        public bool Remove(string id)
        {
            Debug.Assert(id != null);

            bool   removed = false;
            Entity entity  = Get(id);

            if (entity != null)
            {
                lock (Map)
                    removed = Map.Remove(id);

                if (removed)
                {
                    EntityIdleComponent idle = entity.Get <EntityIdleComponent>();
                    if (idle != null)
                    {
                        idle.Remove(this);
                    }

                    entity--;
                }
            }

            return(removed);
        }
Пример #4
0
        public void Clear()
        {
            if (_entity != null)
            {
                EntityIdleComponent idle = _entity.Get <EntityIdleComponent>();
                if (idle != null)
                {
                    idle.Remove(this);
                }

                _entity--;
                _entity = null;
            }
        }
Пример #5
0
        public void Add(Entity entity)
        {
            Debug.Assert(entity != null);

            EntityIdleComponent idle = entity.Get <EntityIdleComponent>();

            if (idle != null)
            {
                idle.Add(this);
            }

            entity++;

            _entity = entity;
        }
Пример #6
0
        public void Add(Entity entity)
        {
            Debug.Assert(entity != null);

            EntityIdleComponent idle = entity.Get <EntityIdleComponent>();

            if (idle != null)
            {
                idle.Add(this);
            }

            lock (List)
                List.Add(entity);

            entity++;
        }
Пример #7
0
        public bool Remove(Entity entity)
        {
            Debug.Assert(entity != null);

            bool removed = false;

            lock (Map)
            {
                string        key  = null;
                List <string> keys = new List <string>(Map.Keys);

                foreach (string id in keys)
                {
                    EntityList list = Get(id);

                    if (list != null)
                    {
                        removed = list.Remove(entity);
                        if (list.Count <= 0)
                        {
                            key = id;
                        }

                        break;
                    }
                }

                if (key != null)
                {
                    Map.Remove(key);
                }
            }

            if (removed)
            {
                EntityIdleComponent idle = entity.Get <EntityIdleComponent>();
                if (idle != null)
                {
                    idle.Remove(this);
                }

                entity--;
            }

            return(removed);
        }
Пример #8
0
        public void Add(string id, Entity entity)
        {
            Debug.Assert(id != null && entity != null);

            EntityIdleComponent idle = entity.Get <EntityIdleComponent>();

            if (idle != null)
            {
                idle.Add(this);
            }

            Remove(id);

            lock (Map)
                Map.Add(id, entity);

            entity++;
        }
Пример #9
0
        public bool Remove(Entity entity)
        {
            Debug.Assert(entity != null);

            bool removed;

            lock (List)
                removed = List.Remove(entity);

            if (removed)
            {
                EntityIdleComponent idle = entity.Get <EntityIdleComponent>();
                if (idle != null)
                {
                    idle.Remove(this);
                }

                entity--;
            }

            return(removed);
        }