Compare commits

...

2 Commits

Author SHA1 Message Date
erion 02250ed307 Merge branch 'master' of https://github.com/stardew-access/stardew-access 2023-04-09 09:27:17 +02:00
Mohammad Shoaib Khan 09001807cb
Fixed TileInfo.cs bug -
Added unimplemented code for ladders, shaft and mine elevator
2023-04-08 00:13:13 +05:30
5 changed files with 119 additions and 113 deletions

View File

@ -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).
/// </summary>
/// <remarks>
/// 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"
/// </remarks>
public class DynamicTiles
{

View File

@ -1,5 +1,3 @@
using System.Collections.Generic;
using System.Diagnostics;
using Microsoft.Xna.Framework;
using StardewValley;
using StardewValley.Objects;

View File

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

View File

@ -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
/// <returns>True if a mine down ladder is found at the specified tile, otherwise false.</returns>
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<string, Netcode.NetString> doorList = currentLocation.doors;

View File

@ -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
{