public static void TryCloseItemGrabMenu(ItemGrabMenu menu) { if (!menu.areAllItemsTaken() || menu.heldItem != null) { return; } if (menu.shippingBin || ShippingEstimationInfoBox.IsCaShippingBinMenu(menu)) { //It's a shipping bin. return; } if (menu.context is Event && GetEssential(menu)) { // You should not emergency close in events (it may stop the dialogue). return; } switch (menu.source) { case ItemGrabMenu.source_chest: case ItemGrabMenu.source_none when menu.context == null: return; // It's a chest. } menu.exitThisMenu(); }