From 09001807cb8c3d1cb92e494adbfa77ebdff5509c Mon Sep 17 00:00:00 2001 From: Mohammad Shoaib Khan Date: Sat, 8 Apr 2023 00:13:13 +0530 Subject: [PATCH] Fixed TileInfo.cs bug - Added unimplemented code for ladders, shaft and mine elevator --- stardew-access/Features/DynamicTiles.cs | 195 ++++++++++++------------ stardew-access/Features/Radar.cs | 2 - stardew-access/Features/StaticTiles.cs | 5 +- stardew-access/Features/TileInfo.cs | 28 +++- stardew-access/ModEntry.cs | 2 - 5 files changed, 119 insertions(+), 113 deletions(-) diff --git a/stardew-access/Features/DynamicTiles.cs b/stardew-access/Features/DynamicTiles.cs index 2ea15c3..5d87104 100644 --- a/stardew-access/Features/DynamicTiles.cs +++ b/stardew-access/Features/DynamicTiles.cs @@ -1,13 +1,8 @@ using Microsoft.Xna.Framework; -using Netcode; using StardewValley; using StardewValley.Buildings; using StardewValley.Locations; -using StardewValley.Objects; -using StardewValley.TerrainFeatures; using static stardew_access.Features.Utils; -using System.Collections.Generic; -using System.Linq; using System.Text.Json; namespace stardew_access.Features @@ -16,101 +11,101 @@ namespace stardew_access.Features /// Provides methods to locate tiles of interest in various game locations that are conditional or unpredictable (I.E. not static). /// /// - /// The DynamicTiles class currently supports the following location types: - /// - Beach - /// - BoatTunnel - /// - CommunityCenter - /// - Farm - /// - FarmHouse - /// - Forest - /// - IslandFarmHouse - /// - IslandLocation - /// - LibraryMuseum - /// - Town - /// - /// And the following Island LocationTypes: - /// - IslandNorth - /// - IslandWest - /// - VolcanoDungeon - /// - /// The class also supports the following named locations: - /// - Barn (and its upgraded versions) - /// - Coop (and its upgraded versions) - /// - /// The class does not yet support the following location types, but consider adding support in future updates: - /// - AbandonedJojaMart - /// - AdventureGuild - /// - BathHousePool - /// - BeachNightMarket - /// - BugLand - /// - BusStop - /// - Caldera - /// - Cellar - /// - Club - /// - Desert - /// - FarmCave - /// - FishShop - /// - JojaMart - /// - ManorHouse - /// - MermaidHouse - /// - Mine - /// - Mountain - /// - MovieTheater - /// - Railroad - /// - SeedShop - /// - Sewer - /// - Submarine - /// - Summit - /// - WizardHouse - /// - Woods - /// - /// The class does not yet support the following named locations, but consider adding support in future updates: - /// - "AnimalShop" - /// - "Backwoods" - /// - "BathHouse_Entry" - /// - "BathHouse_MensLocker" - /// - "BathHouse_WomensLocker" - /// - "Blacksmith" - /// - "ElliottHouse" - /// - "FarmGreenHouse" - /// - "Greenhouse" - /// - "HaleyHouse" - /// - "HarveyRoom" - /// - "Hospital" - /// - "JoshHouse" - /// - "LeahHouse" - /// - "LeoTreeHouse" - /// - "Saloon" - /// - "SamHouse" - /// - "SandyHouse" - /// - "ScienceHouse" - /// - "SebastianRoom" - /// - "SkullCave" - /// - "Sunroom" - /// - "Tent" - /// - "Trailer" - /// - "Trailer_Big" - /// - "Tunnel" - /// - "WitchHut" - /// - "WitchSwamp" - /// - "WitchWarpCave" - /// - "WizardHouseBasement" - /// - /// The class does not yet support the following IslandLocation location types, but consider adding support in future updates: - /// - IslandEast - /// - IslandFarmCave - /// - IslandFieldOffice - /// - IslandHut - /// - IslandShrine - /// - IslandSouth - /// - IslandSouthEast - /// - IslandSouthEastCave - /// - IslandWestCave1 - /// - /// The class does not yet support the following IslandLocation named locations, but consider adding support in future updates: - /// - "CaptainRoom" - /// - "IslandNorthCave1" - /// - "QiNutRoom" + /// The DynamicTiles class currently supports the following location types: + /// - Beach + /// - BoatTunnel + /// - CommunityCenter + /// - Farm + /// - FarmHouse + /// - Forest + /// - IslandFarmHouse + /// - IslandLocation + /// - LibraryMuseum + /// - Town + /// + /// And the following Island LocationTypes: + /// - IslandNorth + /// - IslandWest + /// - VolcanoDungeon + /// + /// The class also supports the following named locations: + /// - Barn (and its upgraded versions) + /// - Coop (and its upgraded versions) + /// + /// The class does not yet support the following location types, but consider adding support in future updates: + /// - AbandonedJojaMart + /// - AdventureGuild + /// - BathHousePool + /// - BeachNightMarket + /// - BugLand + /// - BusStop + /// - Caldera + /// - Cellar + /// - Club + /// - Desert + /// - FarmCave + /// - FishShop + /// - JojaMart + /// - ManorHouse + /// - MermaidHouse + /// - Mine + /// - Mountain + /// - MovieTheater + /// - Railroad + /// - SeedShop + /// - Sewer + /// - Submarine + /// - Summit + /// - WizardHouse + /// - Woods + /// + /// The class does not yet support the following named locations, but consider adding support in future updates: + /// - "AnimalShop" + /// - "Backwoods" + /// - "BathHouse_Entry" + /// - "BathHouse_MensLocker" + /// - "BathHouse_WomensLocker" + /// - "Blacksmith" + /// - "ElliottHouse" + /// - "FarmGreenHouse" + /// - "Greenhouse" + /// - "HaleyHouse" + /// - "HarveyRoom" + /// - "Hospital" + /// - "JoshHouse" + /// - "LeahHouse" + /// - "LeoTreeHouse" + /// - "Saloon" + /// - "SamHouse" + /// - "SandyHouse" + /// - "ScienceHouse" + /// - "SebastianRoom" + /// - "SkullCave" + /// - "Sunroom" + /// - "Tent" + /// - "Trailer" + /// - "Trailer_Big" + /// - "Tunnel" + /// - "WitchHut" + /// - "WitchSwamp" + /// - "WitchWarpCave" + /// - "WizardHouseBasement" + /// + /// The class does not yet support the following IslandLocation location types, but consider adding support in future updates: + /// - IslandEast + /// - IslandFarmCave + /// - IslandFieldOffice + /// - IslandHut + /// - IslandShrine + /// - IslandSouth + /// - IslandSouthEast + /// - IslandSouthEastCave + /// - IslandWestCave1 + /// + /// The class does not yet support the following IslandLocation named locations, but consider adding support in future updates: + /// - "CaptainRoom" + /// - "IslandNorthCave1" + /// - "QiNutRoom" /// public class DynamicTiles { diff --git a/stardew-access/Features/Radar.cs b/stardew-access/Features/Radar.cs index d2216fe..e2c6907 100644 --- a/stardew-access/Features/Radar.cs +++ b/stardew-access/Features/Radar.cs @@ -1,5 +1,3 @@ -using System.Collections.Generic; -using System.Diagnostics; using Microsoft.Xna.Framework; using StardewValley; using StardewValley.Objects; diff --git a/stardew-access/Features/StaticTiles.cs b/stardew-access/Features/StaticTiles.cs index 6ee4d9c..de4fced 100644 --- a/stardew-access/Features/StaticTiles.cs +++ b/stardew-access/Features/StaticTiles.cs @@ -1,7 +1,4 @@ -using System.IO; using System.Text.Json; -using System.Linq; -using System.Collections.Generic; using StardewValley; using static stardew_access.Features.Utils; @@ -512,4 +509,4 @@ namespace stardew_access.Features return (name, category ?? CATEGORY.Others); } } -} \ No newline at end of file +} diff --git a/stardew-access/Features/TileInfo.cs b/stardew-access/Features/TileInfo.cs index c2712df..823b533 100644 --- a/stardew-access/Features/TileInfo.cs +++ b/stardew-access/Features/TileInfo.cs @@ -1,7 +1,5 @@ using Microsoft.Xna.Framework; -using Netcode; using StardewValley; -using StardewValley.Buildings; using StardewValley.Locations; using StardewValley.Objects; using StardewValley.TerrainFeatures; @@ -116,6 +114,26 @@ namespace stardew_access.Features return (warp ?? door, CATEGORY.Doors); } + if (isMineDownLadderAtTile(currentLocation, x, y)) + { + return ("Ladder", CATEGORY.Doors); + } + + if (isShaftAtTile(currentLocation, x, y)) + { + return ("Shaft", CATEGORY.Doors); + } + + if (isMineUpLadderAtTile(currentLocation, x, y)) + { + return ("Up Ladder", CATEGORY.Doors); + } + + if (isElevatorAtTile(currentLocation, x, y)) + { + return ("Elevator", CATEGORY.Doors); + } + string? junimoBundle = GetJunimoBundleAt(currentLocation, x, y); if (junimoBundle != null) { @@ -354,7 +372,7 @@ namespace stardew_access.Features { // Get the terrain feature from the reference var terrainFeature = terrain.Get(); - + // Check if the terrain feature is HoeDirt if (terrainFeature is HoeDirt dirt) { @@ -803,7 +821,7 @@ namespace stardew_access.Features /// True if a mine down ladder is found at the specified tile, otherwise false. public static bool isMineDownLadderAtTile(GameLocation currentLocation, int x, int y) { - return currentLocation is Mine or MineShaft || currentLocation.Name == "SkullCave" + return currentLocation is Mine or MineShaft || currentLocation.Name == "SkullCave" ? CheckTileIndex(currentLocation, x, y, 173) : false; } @@ -861,7 +879,7 @@ namespace stardew_access.Features { // Create a Point object from the given tile coordinates Point tilePoint = new(x, y); - + // Access the doorList in the current location StardewValley.Network.NetPointDictionary doorList = currentLocation.doors; diff --git a/stardew-access/ModEntry.cs b/stardew-access/ModEntry.cs index b8ea9b3..18a55de 100644 --- a/stardew-access/ModEntry.cs +++ b/stardew-access/ModEntry.cs @@ -6,8 +6,6 @@ using HarmonyLib; using stardew_access.Patches; using stardew_access.ScreenReader; using Microsoft.Xna.Framework; -using StardewValley.Menus; -using Microsoft.Xna.Framework.Input; namespace stardew_access {