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