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); } } } } } }