public static bool IsMatureTreeStumpOrBoulderAt(this GameLocation gameLocation, Point tile) { gameLocation.terrainFeatures.TryGetValue(new Vector2(tile.X, tile.Y), out TerrainFeature terrainFeature); if (terrainFeature is Tree || terrainFeature is FruitTree || (terrainFeature is Bush bush && bush.IsDestroyable(gameLocation, tile))) { return(true); } foreach (LargeTerrainFeature largeTerrainFeature in gameLocation.largeTerrainFeatures) { if (largeTerrainFeature is Bush bush2 && bush2.getRenderBounds(new Vector2(bush2.tilePosition.X, bush2.tilePosition.Y)).Contains( tile.X * Game1.tileSize, tile.Y * Game1.tileSize) && bush2.IsDestroyable(gameLocation, tile)) { return(true); } } return(gameLocation.IsStumpAt(tile.X, tile.Y) || gameLocation.IsBoulderAt(tile.X, tile.Y)); }