BecomeActive() public method

public BecomeActive ( EntityThinkFlags flags ) : void
flags EntityThinkFlags
return void
Exemplo n.º 1
0
        public void BecomeActive(EntityThinkFlags flags)
        {
            if ((flags & EntityThinkFlags.Physics) == EntityThinkFlags.Physics)
            {
                // enable the team master if this entity is part of a physics team
                if ((_teamMaster != null) && (_teamMaster != this))
                {
                    _teamMaster.BecomeActive(EntityThinkFlags.Physics);
                }
                else if ((_thinkFlags & EntityThinkFlags.Physics) == 0)
                {
                    // if this is a pusher
                    if ((_physics is idPhysics_Parametric) || (_physics is idPhysics_Actor))
                    {
                        idR.Game.SortPushers = true;
                    }
                }
            }

            EntityThinkFlags oldFlags = _thinkFlags;

            _thinkFlags |= flags;

            if (_thinkFlags != 0)
            {
                if (this.IsActive == false)
                {
                    idR.Game.ActiveEntities.Add(this);
                }
                else if (oldFlags == 0)
                {
                    // we became inactive this frame, so we have to decrease the count of entities to deactivate
                    idR.Game.EntitiesToDeactivate--;
                }
            }
        }