anchor.diff:    begin
       _Shape.Radius := Value;
     end;
  +end;
  +
  +procedure TEntityDetector.OnBeginContact(const EventData: TG2Scene2DEventData);
  +  var Data: TG2Scene2DEventBeginContactData absolute EventData;
  +  var Other: TG2Scene2DEntity;
  +  function CheckParent(const ParentEntity: TG2Scene2DEntity): Boolean;
  +  begin
  +    if not Assigned(ParentEntity) then Exit(False);
  +    if Other = ParentEntity then Exit(True);
  +    if Assigned(ParentEntity.Parent) then Exit(CheckParent(ParentEntity.Parent));
  +    Result := False;
  +  end;
  +begin
  +  Other := Data.Entities[1];
  +  if not CheckParent(Self.Parent)
  +  and (CheckFilter(TGameBase(Other)))
  +  and (Detected.Find(Data.Entities[1]) = -1) then
  +  begin
  +    Detected.Add(Data.Entities[1]);
  +  end;
  +end;
  +
  +procedure TEntityDetector.OnEndContact(const EventData: TG2Scene2DEventData);
  +  var Data: TG2Scene2DEventEndContactData absolute EventData;
  +begin
  +  Detected.Remove(Data.Entities[1]);
   end;
   
   constructor TEntityDetector.Create(const OwnerScene: TG2Scene2D);
  
positive.code:       _PathSearchList.Sort(@PathSearchCmp);
      end;
    end;
  end;
  
  class function TGameAsteroid.MakeObject(const NewTransform: TG2Transform2;
  
negative.code:   if Assigned(_RigidBody) then _RigidBody.Enabled := False;
  end;
  
  function TEntityDetector.GetRadius: TG2Float;
  begin
    Result := _Shape.Radius;
  