示例#1
0
 public void Attach(IEntityController controller)
 {
     if (_controllerAddQueue.Contains(controller) == false && _controllerList.Contains(controller) == false)
     {
         if (_isUpdating)
         {
             lock (_controllerAddQueue)
             {
                 if (_controllerAddQueue.Contains(controller) == false && _controllerList.Contains(controller) == false)
                 {
                     _controllerAddQueue.Add(controller);
                     if (controller.Entity != this)
                     {
                         controller.AttachTo(this);
                     }
                 }
             }
         }
         else
         {
             lock (_controllerList)
             {
                 if (_controllerAddQueue.Contains(controller) == false && _controllerList.Contains(controller) == false)
                 {
                     _controllerList.Add(controller);
                     if (controller.Entity != this)
                     {
                         controller.AttachTo(this);
                     }
                 }
             }
         }
     }
 }