Example #1
0
        /// <summary>Try to harvest a fruit tree.</summary>
        /// <param name="tree">The fruit tree to harvest.</param>
        /// <param name="location">The location being harvested.</param>
        /// <param name="tile">The tile being harvested.</param>
        /// <returns>Returns whether it was harvested.</returns>
        private bool TryHarvestFruitTree(FruitTree tree, GameLocation location, Vector2 tile)
        {
            if (this.Config.HarvestFruitTrees && tree?.fruitsOnTree.Value > 0)
            {
                tree.performUseAction(tile, location);
                return(true);
            }

            return(false);
        }
        private static bool HarvestFromTree(Vector2 pos, JunimoHarvester junimo, FruitTree tree)
        {
            //shake the tree without it releasing any fruit
            var fruitsOnTree = tree.fruitsOnTree.Value;

            tree.fruitsOnTree.Value = 0;
            tree.performUseAction(pos, junimo.currentLocation);
            tree.fruitsOnTree.Value = fruitsOnTree;
            var result = GetFruitFromTree(tree);

            if (result == null)
            {
                return(false);
            }
            junimo.tryToAddItemToHut(result);
            return(true);
        }
        protected bool HarvestFromTree(Farm farm, Vector2 pos, JunimoHarvester junimo, Chest chest, FruitTree tree)
        {
            //shake the tree without it releasing any fruit
            int fruitsOnTree = tree.fruitsOnTree.Value;

            tree.fruitsOnTree.Value = 0;
            tree.performUseAction(pos, junimo.currentLocation);
            tree.fruitsOnTree.Value = fruitsOnTree;
            SObject result = GetFruitFromTree(tree);

            if (result != null)
            {
                junimo.tryToAddItemToHut(result);
                return(true);
            }
            return(false);
        }
 internal static void ShakeTree(FruitTree tree, Vector2?tileLocation = null)
 {
     tree.performUseAction(tileLocation ?? Game1.player.getTileLocation() + new Vector2(0, -2), Game1.player.currentLocation);
 }