private static bool prevent_locked_apparel_conflict(WITab_Caravan_Gear __instance, ref Pawn p) { if (__instance == null) { return(true); } if (get_dragged_item(__instance) is Apparel dragged_app && p.apparel != null && dragged_app.has_lock()) { foreach (var equipped_app in p.apparel.WornApparel) { if (equipped_app.has_lock() && (!ApparelUtility.CanWearTogether(dragged_app.def, equipped_app.def, p.RaceProps.body))) { set_dragged_item(__instance, null); return(false); } } } return(true); }
static void MoveDraggedItemToInventory_Postfix(WITab_Caravan_Gear __instance) { __instance.droppedDraggedItem = false; __instance.draggedItem = null; }
static void TryEquipDraggedItem_Postfix(WITab_Caravan_Gear __instance) { __instance.droppedDraggedItem = false; __instance.draggedItem = null; }
private static void set_dragged_item(WITab_Caravan_Gear tab, Thing t) { typeof(WITab_Caravan_Gear).GetField("draggedItem", xxx.ins_public_or_no).SetValue(tab, t); }
private static Thing get_dragged_item(WITab_Caravan_Gear tab) { return((Thing)typeof(WITab_Caravan_Gear).GetField("draggedItem", xxx.ins_public_or_no).GetValue(tab)); }