private Thing TryGetItemOrPawnUnderCursor() {
var things = Find.ThingGrid.ThingsAt(Gen.MouseCell());
foreach (var thing in things) {
if (thing.def != null && thing.def.selectable && thing.def.label!=null && (thing.def.category == ThingCategory.Item || thing.def.category == ThingCategory.Pawn)) return thing;
}
return null;
}