/// <summary>
        /// Override to ajust the original tool tip for the pot.
        /// </summary>
        /// <param name="location"></param>
        /// <param name="item"></param>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <param name="f"></param>
        /// <param name="__result"></param>
        /// <returns></returns>
        public static bool PlayerCanPlaceItemHere(ref GameLocation location, Item item, int x, int y, ref Farmer f, ref bool __result)
        {
            if (Utility.isPlacementForbiddenHere(location))
            {
                return(true);
            }
            if (item != null && item is Object object1 && TransplantController.IsGardenPot(object1) && object1.Stack == 1)
            {
                if (
                    (Game1.eventUp || f.bathingClothes.Value || f.onBridge.Value) ||
                    (!Utility.withinRadiusOfPlayer(x, y, 1, f) &&
                     (!Utility.withinRadiusOfPlayer(x, y, 2, f) || !Game1.isAnyGamePadButtonBeingPressed() || Game1.mouseCursorTransparency != 0f) &&
                     !DataLoader.ModConfig.EnableUnlimitedRangeToTransplant)
                    )
                {
                    return(true);
                }

                Vector2 tileLocation = new Vector2((float)(x / 64), (float)(y / 64));
                if (!(object1 is HeldIndoorPot heldPot))
                {
                    if (location.terrainFeatures.ContainsKey(tileLocation) && !location.objects.ContainsKey(tileLocation))
                    {
                        if (TransplantController.CanTransplantTerrainFeature(location.terrainFeatures[tileLocation]))
                        {
                            __result = true;
                            return(false);
                        }
                    }
                }
        /// <summary>
        /// Override to lift the pot back when an empty spot on the tool bar is selected.
        /// </summary>
        /// <param name="__result"></param>
        /// <returns></returns>
        public static bool PressUseToolButton(ref bool __result)
        {
            if (Game1.fadeToBlack)
            {
                return(false);
            }
            Game1.player.toolPower = 0;
            Game1.player.toolHold  = 0;
            if (Game1.player.CurrentTool == null && Game1.player.ActiveObject == null)
            {
                Vector2 key = key = Game1.currentCursorTile;
                if (!Game1.currentLocation.Objects.ContainsKey(key) ||
                    !(Game1.currentLocation.Objects[key] is IndoorPot) ||
                    (!Utility.tileWithinRadiusOfPlayer((int)key.X, (int)key.Y, 1, Game1.player) && !DataLoader.ModConfig.EnableUnlimitedRangeToTransplant))
                {
                    key   = Game1.player.GetToolLocation(false) / 64f;
                    key.X = (float)(int)key.X;
                    key.Y = (float)(int)key.Y;
                }

                if (Game1.currentLocation.Objects.ContainsKey(key))
                {
                    Object @object = Game1.currentLocation.Objects[key];
                    if (@object is IndoorPot pot)
                    {
                        pot.performRemoveAction(pot.TileLocation, Game1.currentLocation);
                        Game1.currentLocation.Objects.Remove(pot.TileLocation);
                        HoeDirt potHoeDirt = pot.hoeDirt.Value;
                        if (potHoeDirt.crop != null)
                        {
                            CurrentHeldIndoorPot = new HeldIndoorPot(pot.TileLocation);
                            HoeDirt holdenHoeDirt = CurrentHeldIndoorPot.hoeDirt.Value;
                            holdenHoeDirt.crop             = potHoeDirt.crop;
                            holdenHoeDirt.fertilizer.Value = potHoeDirt.fertilizer.Value;
                            TransplantController.ShakeCrop(holdenHoeDirt, pot.TileLocation);
                            Game1.player.Stamina         -= ((float)DataLoader.ModConfig.CropTransplantEnergyCost - (float)Game1.player.FarmingLevel * DataLoader.ModConfig.CropTransplantEnergyCost / 20f);
                            Game1.player.ActiveObject     = CurrentHeldIndoorPot;
                            Events.GameLoop.UpdateTicked += OnUpdateTicked;
                        }
                        else if (pot.bush.Value is Bush bush)
                        {
                            CurrentHeldIndoorPot            = new HeldIndoorPot(pot.TileLocation);
                            CurrentHeldIndoorPot.bush.Value = bush;
                            Bush holdenBush = CurrentHeldIndoorPot.bush.Value;
                            TransplantController.ShakeBush(holdenBush);
                            Game1.player.Stamina         -= ((float)DataLoader.ModConfig.CropTransplantEnergyCost - (float)Game1.player.FarmingLevel * DataLoader.ModConfig.CropTransplantEnergyCost / 20f);
                            Game1.player.ActiveObject     = CurrentHeldIndoorPot;
                            Events.GameLoop.UpdateTicked += OnUpdateTicked;
                        }
                        else
                        {
                            Game1.player.ActiveObject = (Object)RegularPotObject.getOne();
                        }

                        __result = true;
                        return(false);
                    }
                }
            }

            return(true);
        }