private static void CommonSensePatchPostix() { if (MP.IsInMultiplayer) { MP.WatchEnd(); } }
static void DrawLockPostfix() { if (MP.IsInMultiplayer) { MP.WatchEnd(); } }
private static void CommonSensePatchPostix() { if (MP.IsInMultiplayer && (bool)manualUnloadEnabledField.GetValue(null)) { MP.WatchEnd(); } }
private static void PostSyncBombType() { if (MP.IsInMultiplayer) { MP.WatchEnd(); } }
static void WatchPostfix() { if (MP.IsInMultiplayer) { MP.WatchEnd(); } }
static void Postfix(Rect inRect, Outfit ___selOutfitInt) { var selectedOutfit = ___selOutfitInt as ExtendedOutfit; DrawCloneButton(selectedOutfit); 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 (MP.IsInMultiplayer) { MP.WatchBegin(); ExtendedOutfitProxy.Watch(ref selectedOutfit); } DrawDeadmanToogle(selectedOutfit, ref cur, canvas); DrawAutoWorkPrioritiesToggle(selectedOutfit, ref cur, canvas); DrawAutoTempToggle(selectedOutfit, ref cur, canvas); if (!selectedOutfit.AutoTemp) { DrawTemperatureStats(selectedOutfit, ref cur, canvas); } else { DrawAutoTempOffsetInput(selectedOutfit, ref cur, canvas); } cur.y += marginVertical; DrawApparelStats(selectedOutfit, cur, canvas); if (MP.IsInMultiplayer) { MP.WatchEnd(); } 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; }
private static void PostFillTab(ITab __instance, ref object[] __state) { if (MP.IsInMultiplayer && (bool)__state[0]) { MP.WatchEnd(); // Since we got non-null value in prefix, assume same here var soul = pawnSoulITabSoulToShowGetter.Invoke(__instance, Array.Empty <object>()); var favourTracker = compSoulFavourTrackerField(soul); var previousFavourList = (float[])__state[1]; var favoursList = soulFavourTrackerFavoursField(favourTracker); // Check for changes, revert them (if any) and change them in synced method for (var i = 0; i < favoursList.Count; i++) { var newValue = favourProgressFavourValueField(favoursList[i]); var oldValue = previousFavourList[i]; if (newValue != oldValue) { favourProgressFavourValueField(favoursList[i]) = oldValue; SyncFavourValue((ThingComp)soul, i, newValue); // We could break here, but let's just keep going in case there's more than one changed // There shouldn't be more than a single difference, but let's be safe } } } }
private static void RenameTemplePostfix() { if (MP.enabled) { MP.WatchEnd(); } }
private static void PostDrawOptions() { if (MP.IsInMultiplayer) { MP.WatchEnd(); } }
private static void StopWatch() { if (MP.IsInMultiplayer) { MP.WatchEnd(); } }
// Token: 0x0600008C RID: 140 RVA: 0x00007664 File Offset: 0x00005864 private static void WatchEnd() { if (!MP.IsInMultiplayer) { return; } MP.WatchEnd(); }
static void HandleInteractionPostfix() { if (MP.IsInMultiplayer) { MP.WatchEnd(); watching = false; } }
private static void PostDoWindowContents() { if (!MP.IsInMultiplayer) { return; } MP.WatchEnd(); }
// Called after the tab is drawn, we end watching here and if needed manually sync the timetable // On top of that, we clear our ThingFilterOwner like the MP // https://github.com/rwmt/Multiplayer/blob/7aac8b54727d8626ec39429b97225fc88c807ab8/Source/Client/Sync/SyncHandlers.cs#L978 private static void FillTabPostfix(ref object[] __state) { if (MP.IsInMultiplayer) { var timetable = __state[0]; var oldTimes = (bool[])__state[1]; var newTimes = (List <bool>)timetableTimesField.GetValue(timetable); for (int i = 0; i < 24; i++) { if (oldTimes[i] != newTimes[i]) { timetableTimesField.SetValue(timetable, new List <bool>(oldTimes)); controllerTimesSync.DoSync(restaurantController, newTimes); break; } } restaurantController = null; MP.WatchEnd(); } }
private static void PostPsykerDoWindowContents(Window __instance, ref object[] __state) { if (MP.IsInMultiplayer) { MP.WatchEnd(); var comp = psykerWindowCompField.GetValue(__instance); var list = (IList)compPsykerMinorDisciplinesField.GetValue(comp); // Check through all learned minor disciplines, look for any changes if (__state.Length != list.Count) { foreach (var item in list) { if (!__state.Contains(item)) { SyncedAddMinorDiscipline((ThingComp)comp, ((Def)item).shortHash); break; } } } } }
internal static void WatchEnd() => MP.WatchEnd();