protected override int ProcessCell(IntVec3 cell) {
if (Find.FogGrid.IsFogged(cell)) return 0;
var cellThings = Find.ThingGrid.ThingsListAtFast(cell);
var selectedObjects = Find.Selector.SelectedObjects;
var hits = 0;
for (var i = 0; i < cellThings.Count; i++) {
var thing = cellThings[i];
if (!thing.def.selectable) continue;
if (selectedObjects.Contains(thing)) continue;
if (mode == OperationMode.Constrained && !ThingMatchesSelectionConstraints(thing)) continue;
selectedObjects.Add(thing);
SelectionDrawer.Notify_Selected(thing);
hits++;
}
return hits;
}