diff --git a/stardew-access/Features/Radar.cs b/stardew-access/Features/Radar.cs index 8c82d57..77f9bd9 100644 --- a/stardew-access/Features/Radar.cs +++ b/stardew-access/Features/Radar.cs @@ -72,6 +72,7 @@ namespace stardew_access.Game exclusions.Add("ice crystal"); exclusions.Add("clay stone"); exclusions.Add("fossil stone"); + exclusions.Add("street lamp"); exclusions.Add("crop"); exclusions.Add("tree"); exclusions.Add("flooring"); @@ -310,9 +311,10 @@ namespace stardew_access.Game PlaySoundAt(position, "door", CATEGORY.Buildings); } // Check for buildings on maps - else if (ReadTile.getBuildingAtTile((int)position.X, (int)position.Y) != null) + else if (ReadTile.getTileInfo((int)position.X, (int)position.Y).Item2 != null) { - PlaySoundAt(position, ReadTile.getBuildingAtTile((int)position.X, (int)position.Y), CATEGORY.Buildings); + (CATEGORY, string?) item = ReadTile.getTileInfo((int)position.X, (int)position.Y); + PlaySoundAt(position, item.Item2, item.Item1); } // Check for resource clumps else if (ReadTile.getResourceClumpAtTile((int)position.X, (int)position.Y) != null) diff --git a/stardew-access/Features/ReadTile.cs b/stardew-access/Features/ReadTile.cs index 83fc47c..c4e689b 100644 --- a/stardew-access/Features/ReadTile.cs +++ b/stardew-access/Features/ReadTile.cs @@ -1,6 +1,7 @@ using Microsoft.Xna.Framework; using StardewModdingAPI; using StardewValley; +using StardewValley.Buildings; using StardewValley.Locations; using StardewValley.Objects; using StardewValley.TerrainFeatures; @@ -87,9 +88,9 @@ namespace stardew_access.Game { toSpeak = "Elevator"; } - else if (getBuildingAtTile(x, y) != null) + else if (getTileInfo(x, y).Item2 != null) { - toSpeak = getBuildingAtTile(x, y); + toSpeak = getTileInfo(x, y).Item2; } else if (getJunimoBundleAt(x, y) != null) { @@ -200,9 +201,15 @@ namespace stardew_access.Game return null; } - public static string? getBuildingAtTile(int x, int y) + /// + /// + /// + /// + /// + /// Item1: This is the category of the tile. Default to Furnitures. + ///
Item2: This is the name of the tile. Default to null if the tile tile has nothing on it.
+ public static (CATEGORY?,string?) getTileInfo(int x, int y) { - string? toReturn = null; int? index = null; @@ -212,26 +219,30 @@ namespace stardew_access.Game MainClass.monitor.Log(index.ToString(), LogLevel.Debug); */ + if(Game1.currentLocation is Farm) + { + Building building = (Game1.currentLocation as Farm).getBuildingAt(new Vector2(x, y)); + if (building != null) + { + return (CATEGORY.Buildings, building.buildingType.Value); + } + } + if (index != null) { switch (index) { case 1955: case 41: - toReturn = "Mail Box"; - break; + return (CATEGORY.Furnitures, "Mail Box"); case 1003: - toReturn = "Street lamp"; - break; + return (CATEGORY.Furnitures, "Street lamp"); case 78: - toReturn = "Trash bin"; - break; + return (CATEGORY.Furnitures, "Trash bin"); case 617: - toReturn = "Daily quest"; - break; + return (CATEGORY.Furnitures, "Daily quest"); case 616: - toReturn = "Calender"; - break; + return (CATEGORY.Furnitures, "Calender"); } if (Game1.currentLocation is FarmHouse || Game1.currentLocation is IslandFarmHouse) @@ -239,20 +250,18 @@ namespace stardew_access.Game switch (index) { case 173: - toReturn = "Fridge"; - break; + return (CATEGORY.Furnitures, "Fridge"); case 169: case 170: case 171: case 172: - toReturn = "Kitchen"; - break; + return (CATEGORY.Furnitures, "Kitchen"); } } } - return toReturn; + return (null, null); } public static string getTerrainFeatureAtTile(Netcode.NetRef terrain)