internal BetterRanchingApi(ModConfig config)
 {
     _config = config;
 }
        /// <summary>
        ///     Raised after the game is launched, right before the first update tick. This happens once per game session
        ///     (unrelated to loading saves). All mods are loaded and initialised at this point, so this is a good time to set up
        ///     mod integrations.
        /// </summary>
        private void OnGameLaunched(object sender, GameLaunchedEventArgs e)
        {
            // get Generic Mod Config Menu's API (if it's installed)
            var configMenu = Helper.ModRegistry.GetApi <IGenericModConfigMenuApi>("spacechase0.GenericModConfigMenu");

            if (configMenu is null)
            {
                return;
            }

            // register mod
            configMenu.Register(
                ModManifest,
                () => Config = new ModConfig(),
                () => Helper.WriteConfig(Config)
                );

            // add some config options
            configMenu.AddBoolOption(
                ModManifest,
                name: () => "Prevent Failed Harvesting",
                tooltip: () =>
                "Prevents the failed milking/shearing animation and sound effect if no valid animal is selected. Note: Disable this if using the 'Tap-to-move & Auto-Attack' control scheme on Android.",
                getValue: () => Config.PreventFailedHarvesting,
                setValue: value => Config.PreventFailedHarvesting = value
                );

            configMenu.AddBoolOption(
                ModManifest,
                name: () => "Show Animal Produce",
                tooltip: () => "Displays produce above animal if it is ready to be harvested.",
                getValue: () => Config.DisplayProduce,
                setValue: value => Config.DisplayProduce = value
                );

            configMenu.AddBoolOption(
                ModManifest,
                name: () => "Show Farm Animal Hearts",
                tooltip: () => "Display hearts above farm animals (cows, ducks, etc.) that have not yet been petted.",
                getValue: () => Config.DisplayFarmAnimalHearts,
                setValue: value => Config.DisplayFarmAnimalHearts = value
                );

            configMenu.AddBoolOption(
                ModManifest,
                name: () => "Show Pet Hearts",
                tooltip: () => "Display hearts above pets (dogs,cats,etc.) that have not yet been petted.",
                getValue: () => Config.DisplayPetHearts,
                setValue: value => Config.DisplayPetHearts = value
                );

            configMenu.AddBoolOption(
                ModManifest,
                name: () => "[!] Enable Hearts",
                tooltip: () =>
                "Allows hearts to be displayed above animals. Warning: Turning this off will hide ALL floating hearts enabled by this mod (animals, pets, etc.)",
                getValue: () => Config.DisplayHearts,
                setValue: value => Config.DisplayHearts = value
                );

            configMenu.AddBoolOption(
                ModManifest,
                name: () => "Hide Hearts w/ Max Friendship",
                tooltip: () =>
                "Hides the hearts when friendship with an animal or pet is at maximum level. Warning: Be careful with this because friendship will drop at the end of the day if you don't pet your friend!",
                getValue: () => Config.HideHeartsWhenFriendshipIsMax,
                setValue: value => Config.HideHeartsWhenFriendshipIsMax = value
                );
        }