static void Postfix(Rect inRect, Outfit ___selOutfitInt) { var selectedOutfit = ___selOutfitInt as ExtendedOutfit; if (selectedOutfit == null) { return; } Rect canvas = new Rect( marginLeft, Dialog_ManageOutfits.TopAreaHeight + marginTop, inRect.xMax - marginLeft - marginRight, inRect.yMax - Dialog_ManageOutfits.TopAreaHeight - marginTop - marginBottom ); GUI.BeginGroup(canvas); Vector2 cur = Vector2.zero; if (MPApi.IsInMultiplayer) { MPApi.FieldWatchPrefix(); ExtendedOutfitProxy.Watch(ref selectedOutfit); } DrawDeadmanToogle(selectedOutfit, ref cur, canvas); DrawAutoWorkPrioritiesToggle(selectedOutfit, ref cur, canvas); DrawTemperatureStats(selectedOutfit, ref cur, canvas); cur.y += marginVertical; DrawApparelStats(selectedOutfit, cur, canvas); if (MPApi.IsInMultiplayer) { MPApi.FieldWatchPostfix(); } else if (GUI.changed) { var affected = Find.CurrentMap.mapPawns.FreeColonists .Where(i => i.outfits.CurrentOutfit == selectedOutfit); foreach (var pawn in affected) { pawn.mindState?.Notify_OutfitChanged(); } } GUI.EndGroup(); GUI.color = Color.white; Text.Anchor = TextAnchor.UpperLeft; }
static ISyncField SyncField(Type type, string member) { return(MPApi.SyncField(type, member).SetBufferChanges()); }