Change comparisons relying on string.ToLower() to use StringComparison.OrdinalIgnoreCase.

master
Katie Durden 2023-03-01 18:07:28 -08:00
parent 541fd42133
commit 4b2e31fadc
2 changed files with 46 additions and 43 deletions

View File

@ -12,7 +12,7 @@ namespace stardew_access.Features
public StaticTiles()
{
if (MainClass.ModHelper == null)
if (MainClass.ModHelper is null)
return;
try
@ -72,9 +72,9 @@ namespace stardew_access.Features
bool isLoaded = MainClass.ModHelper.ModRegistry.IsLoaded(uniqueModID);
if (!isLoaded) continue; // Skip if the specified mod is not loaded
if (locationName.ToLower().Equals(locationNameInJson.ToLower())) return true;
if (locationName.Equals(locationNameInJson, StringComparison.OrdinalIgnoreCase)) return true;
}
else if (locationName.ToLower().Equals(location.Key.ToLower()))
else if (locationName.Equals(location.Key, StringComparison.OrdinalIgnoreCase))
return true;
}
}
@ -82,16 +82,12 @@ namespace stardew_access.Features
return false;
}
public string? getStaticTileInfoAt(int x, int y)
public (string? name, CATEGORY category) GetTileFromSet(int x, int y, GameLocation currentLocation, HashSet<KeyValuePair<string, JToken?>> data)
{
return getStaticTileInfoAtWithCategory(x, y).name;
}
public (string? name, CATEGORY category) GetTileFromSet(int x, int y, HashSet<KeyValuePair<string, JToken>> data) {
foreach (KeyValuePair<string, JToken?> location in data)
{
string locationName = location.Key;
if (locationName.Contains("||") && MainClass.ModHelper != null)
if (locationName.Contains("||") && MainClass.ModHelper is not null)
{
// Mod Specific Tiles
// We can add tiles that only get detected when the specified mod is loaded.
@ -119,34 +115,34 @@ namespace stardew_access.Features
if (!isLoaded) continue; // Skip if the specified mod is not loaded
}
if (locationName.Contains("_") && locationName.ToLower().StartsWith("farm_"))
if (locationName.StartsWith("farm_", StringComparison.OrdinalIgnoreCase))
{
string farmType = locationName.Substring(locationName.LastIndexOf("_") + 1);
int farmTypeIndex = getFarmTypeIndex(farmType);
locationName = locationName.Remove(locationName.LastIndexOf("_"));
if (farmTypeIndex != Game1.whichFarm) continue; // Skip if current farm type does not matches
// if (Game1.whichModFarm != null) MainClass.DebugLog($"{farmType} {Game1.whichModFarm.MapName}");
if (farmTypeIndex != 7 || Game1.whichModFarm == null || !farmType.ToLower().Equals(Game1.whichModFarm.MapName.ToLower())) continue; // Not tested but should work
// if (Game1.whichModFarm is not null) MainClass.DebugLog($"{farmType} {Game1.whichModFarm.MapName}");
if (farmTypeIndex != 7 || Game1.whichModFarm is null || !farmType.Equals(Game1.whichModFarm.MapName, StringComparison.OrdinalIgnoreCase)) continue; // Not tested but should work
}
if (locationName.ToLower().Equals("town_joja") && Game1.MasterPlayer.mailReceived.Contains("JojaMember"))
if (locationName.Equals("town_joja", StringComparison.OrdinalIgnoreCase) && Game1.MasterPlayer.mailReceived.Contains("JojaMember"))
{
locationName = "town";
}
if (!Game1.currentLocation.Name.ToLower().Equals(locationName.ToLower())) continue;
if (location.Value == null) continue;
if (!currentLocation.Name.Equals(locationName, StringComparison.OrdinalIgnoreCase)) continue;
if (location.Value is null) continue;
foreach (var tile in ((JObject)location.Value))
{
if (tile.Value == null) continue;
if (tile.Value is null) continue;
JToken? tileXArray = tile.Value["x"];
JToken? tileYArray = tile.Value["y"];
JToken? tileType = tile.Value["type"];
if (tileXArray == null || tileYArray == null || tileType == null)
if (tileXArray is null || tileYArray is null || tileType is null)
continue;
bool isXPresent = false;
@ -189,12 +185,19 @@ namespace stardew_access.Features
}
}
return (null, CATEGORY.Others);
return (null, CATEGORY.Others);
}
public (string? name, CATEGORY category) getStaticTileInfoAtWithCategory(int x, int y) {
if (customTilesDataSet != null) return GetTileFromSet(x, y, customTilesDataSet);
if (staticTilesDataSet != null) return GetTileFromSet(x, y, staticTilesDataSet);
public string? getStaticTileInfoAt(int x, int y)
{
return getStaticTileInfoAtWithCategory(x, y).name;
}
public (string? name, CATEGORY category) getStaticTileInfoAtWithCategory(int x, int y)
{
GameLocation currentLocation = Game1.currentLocation;
if (customTilesDataSet is not null) return GetTileFromSet(x, y, currentLocation, customTilesDataSet);
if (staticTilesDataSet is not null) return GetTileFromSet(x, y, currentLocation, staticTilesDataSet);
return (null, CATEGORY.Others);
}

View File

@ -547,67 +547,67 @@ namespace stardew_access.Features
return (CATEGORY.Interactables, "Island Trader");
}
}
else if (Game1.currentLocation.Name.ToLower().Equals("coop"))
else if (Game1.currentLocation.Name.Equals("coop", StringComparison.OrdinalIgnoreCase))
{
if (x >= 6 && x <= 9 && y == 3)
{
(string? name, CATEGORY category) bench = getObjectAtTile(x, y, true);
if (bench.name != null && bench.name.ToLower().Contains("hay"))
if (bench.name is not null && bench.name.Contains("hay", StringComparison.OrdinalIgnoreCase))
return (CATEGORY.Others, "Feeding Bench");
else
return (CATEGORY.Others, "Empty Feeding Bench");
}
}
else if (Game1.currentLocation.Name.ToLower().Equals("big coop") || Game1.currentLocation.Name.ToLower().Equals("coop2"))
else if (Game1.currentLocation.Name.Equals("coop2", StringComparison.OrdinalIgnoreCase) || Game1.currentLocation.Name.Equals("big coop", StringComparison.OrdinalIgnoreCase))
{
if (x >= 6 && x <= 13 && y == 3)
{
(string? name, CATEGORY category) bench = getObjectAtTile(x, y, true);
if (bench.name != null && bench.name.ToLower().Contains("hay"))
if (bench.name is not null && bench.name.Contains("hay", StringComparison.OrdinalIgnoreCase))
return (CATEGORY.Others, "Feeding Bench");
else
return (CATEGORY.Others, "Empty Feeding Bench");
}
}
else if (Game1.currentLocation.Name.ToLower().Equals("deluxe coop") || Game1.currentLocation.Name.ToLower().Equals("coop3"))
else if (Game1.currentLocation.Name.Equals("coop3", StringComparison.OrdinalIgnoreCase) || Game1.currentLocation.Name.Equals("deluxe coop", StringComparison.OrdinalIgnoreCase))
{
if (x >= 6 && x <= 17 && y == 3)
{
(string? name, CATEGORY category) bench = getObjectAtTile(x, y, true);
if (bench.name != null && bench.name.ToLower().Contains("hay"))
if (bench.name is not null && bench.name.Contains("hay", StringComparison.OrdinalIgnoreCase))
return (CATEGORY.Others, "Feeding Bench");
else
return (CATEGORY.Others, "Empty Feeding Bench");
}
}
else if (Game1.currentLocation.Name.ToLower().Equals("barn"))
else if (Game1.currentLocation.Name.Equals("barn", StringComparison.OrdinalIgnoreCase))
{
if (x >= 8 && x <= 11 && y == 3)
{
(string? name, CATEGORY category) bench = getObjectAtTile(x, y, true);
if (bench.name != null && bench.name.ToLower().Contains("hay"))
if (bench.name != null && bench.name.Contains("hay", StringComparison.OrdinalIgnoreCase))
return (CATEGORY.Others, "Feeding Bench");
else
return (CATEGORY.Others, "Empty Feeding Bench");
}
}
else if (Game1.currentLocation.Name.ToLower().Equals("big barn") || Game1.currentLocation.Name.ToLower().Equals("barn2"))
else if (Game1.currentLocation.Name.Equals("barn2", StringComparison.OrdinalIgnoreCase) || Game1.currentLocation.Name.Equals("big barn", StringComparison.OrdinalIgnoreCase))
{
if (x >= 8 && x <= 15 && y == 3)
{
(string? name, CATEGORY category) bench = getObjectAtTile(x, y, true);
if (bench.name != null && bench.name.ToLower().Contains("hay"))
if (bench.name is not null && bench.name.Contains("hay", StringComparison.OrdinalIgnoreCase))
return (CATEGORY.Others, "Feeding Bench");
else
return (CATEGORY.Others, "Empty Feeding Bench");
}
}
else if (Game1.currentLocation.Name.ToLower().Equals("deluxe barn") || Game1.currentLocation.Name.ToLower().Equals("barn3"))
else if (Game1.currentLocation.Name.Equals("barn3", StringComparison.OrdinalIgnoreCase) || Game1.currentLocation.Name.Equals("deluxe barn", StringComparison.OrdinalIgnoreCase))
{
if (x >= 8 && x <= 19 && y == 3)
{
(string? name, CATEGORY category) bench = getObjectAtTile(x, y, true);
if (bench.name != null && bench.name.ToLower().Contains("hay"))
if (bench.name is not null && bench.name.Contains("hay", StringComparison.OrdinalIgnoreCase))
return (CATEGORY.Others, "Feeding Bench");
else
return (CATEGORY.Others, "Empty Feeding Bench");
@ -917,11 +917,11 @@ namespace stardew_access.Features
}
else if (obj.IsSprinkler() && obj.heldObject.Value != null) // Detect the upgrade attached to the sprinkler
{
if (MainClass.ModHelper != null && obj.heldObject.Value.Name.ToLower().Contains("pressure nozzle"))
if (MainClass.ModHelper is not null && obj.heldObject.Value.Name.Contains("pressure nozzle", StringComparison.OrdinalIgnoreCase))
{
toReturn.name = MainClass.ModHelper.Translation.Get("readtile.sprinkler.pressurenozzle", new { value = toReturn.name });
}
else if (MainClass.ModHelper != null && obj.heldObject.Value.Name.ToLower().Contains("enricher"))
else if (MainClass.ModHelper is not null && obj.heldObject.Value.Name.Contains("enricher", StringComparison.OrdinalIgnoreCase))
{
toReturn.name = MainClass.ModHelper.Translation.Get("readtile.sprinkler.enricher", new { value = toReturn.name });
}
@ -930,11 +930,11 @@ namespace stardew_access.Features
toReturn.name = $"{obj.heldObject.Value.DisplayName} {toReturn.name}";
}
}
else if ((obj.Type == "Crafting" && obj.bigCraftable.Value) || obj.Name.ToLower().Equals("crab pot"))
else if ((obj.Type == "Crafting" && obj.bigCraftable.Value) || obj.Name.Equals("crab pot", StringComparison.OrdinalIgnoreCase))
{
foreach (string machine in trackable_machines)
{
if (obj.Name.ToLower().Contains(machine))
if (obj.Name.Contains(machine, StringComparison.OrdinalIgnoreCase))
{
toReturn.name = obj.DisplayName;
toReturn.category = CATEGORY.Machines;
@ -943,15 +943,15 @@ namespace stardew_access.Features
}
else if (correctNameAndCategory.name != null)
toReturn = correctNameAndCategory;
else if (obj.name.ToLower().Equals("stone"))
else if (obj.name.Equals("stone", StringComparison.OrdinalIgnoreCase))
toReturn.category = CATEGORY.Debris;
else if (obj.name.ToLower().Equals("twig"))
else if (obj.name.Equals("twig", StringComparison.OrdinalIgnoreCase))
toReturn.category = CATEGORY.Debris;
else if (obj.name.ToLower().Contains("quartz"))
else if (obj.name.Contains("quartz", StringComparison.OrdinalIgnoreCase))
toReturn.category = CATEGORY.MineItems;
else if (obj.name.ToLower().Contains("earth crystal"))
else if (obj.name.Contains("earth crystal", StringComparison.OrdinalIgnoreCase))
toReturn.category = CATEGORY.MineItems;
else if (obj.name.ToLower().Contains("frozen tear"))
else if (obj.name.Contains("frozen tear", StringComparison.OrdinalIgnoreCase))
toReturn.category = CATEGORY.MineItems;
if (toReturn.category == CATEGORY.Machines) // Fix for `Harvestable table` and `Busy nodes`
@ -1030,7 +1030,7 @@ namespace stardew_access.Features
return ("Item box", CATEGORY.MineItems);
}
if (objName.ToLower().Contains("stone"))
if (objName.Contains("stone", StringComparison.OrdinalIgnoreCase))
{
switch (index)
{