private int SelectAllOfDef(ThingDef targetDef) {
if(targetDef == null) return 0;
var things = Find.ListerThings.AllThings;
var selectedObjects = Find.Selector.SelectedObjects;
var hits = 0;
for (int i = 0; i < things.Count; i++) {
var thing = things[i];
if (thing.def != targetDef || Find.FogGrid.IsFogged(thing.Position) || selectedObjects.Contains(thing)) continue;
selectedObjects.Add(thing);
SelectionDrawer.Notify_Selected(thing);
hits++;
}
return hits;
}