public static void Subscribe(SubscriptionBundle bundle) { if (bundle.update != null) { updates.Add(bundle); } if (bundle.lateUpdate != null) { lateUpdates.Add(bundle); } if (bundle.onGUI != null) { onGUIs.Add(bundle); } if (bundle.patch) { bundle.harmony = HarmonyWrapper.PatchAll(bundle.source); } }
public static SubscriptionBundle Subscribe(Type source, ConfigEntry <bool> entry, SubscriptionHook update = null, SubscriptionHook lateUpdate = null, SubscriptionHook onGUI = null, bool patch = false) { SubscriptionBundle bundle = new SubscriptionBundle(source, update, lateUpdate, onGUI, patch); CareBairPackage.InitSetting(entry, () => { if (entry.Value) { Subscribe(bundle); } else { Unsubscribe(bundle); } }); return(bundle); }
private static void UnsubscribeInternal(SubscriptionBundle bundle) { if (bundle.update != null) { updates.Remove(bundle); } if (bundle.lateUpdate != null) { lateUpdates.Remove(bundle); } if (bundle.onGUI != null) { onGUIs.Remove(bundle); } if (bundle.harmony != null) { bundle.harmony.UnpatchAll(); bundle.harmony = null; } }
public static void Unsubscribe(SubscriptionBundle bundle) { dump.Add(bundle); }