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);
 }