public static bool IsMatureTreeStumpOrBoulderAt(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 && ClickToMoveHelper.IsBushDestroyable(bush, 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) && ClickToMoveHelper.IsBushDestroyable(bush2, gameLocation, tile)) { return(true); } } return(ClickToMoveHelper.IsStumpAt(gameLocation, tile.X, tile.Y) || ClickToMoveHelper.IsBoulderAt(gameLocation, tile.X, tile.Y)); }
public static bool IsBoulderAt(this GameLocation gameLocation, int x, int y) { if (!(gameLocation is Forest || gameLocation is Woods) && gameLocation.resourceClumps.Any( resourceClump => ClickToMoveHelper.IsBoulderAt(resourceClump, x, y))) { return(true); } gameLocation.objects.TryGetValue(new Vector2(x, y), out SObject @object); return(@object is not null && (@object.Name == "Stone" || @object.Name == "Boulder")); }