Organised code for purchase animal menu patch

master
Mohammad Shoaib Khan 2023-03-08 12:29:19 +05:30
parent 80963c4dc6
commit 6822bd4840
No known key found for this signature in database
GPG Key ID: D8040D966320B620
2 changed files with 69 additions and 59 deletions

View File

@ -273,9 +273,7 @@ namespace stardew_access.Patches
} }
else if (menu is PurchaseAnimalsMenu) else if (menu is PurchaseAnimalsMenu)
{ {
PurchaseAnimalsMenuPatch.purchaseAnimalMenuQuery = ""; PurchaseAnimalsMenuPatch.Cleanup();
PurchaseAnimalsMenuPatch.firstTimeInNamingMenu = true;
PurchaseAnimalsMenuPatch.purchaseAnimalsMenu = null;
} }
else if (menu is AnimalQueryMenu) else if (menu is AnimalQueryMenu)
{ {

View File

@ -24,39 +24,7 @@ namespace stardew_access.Patches
if (___onFarm && ___namingAnimal) if (___onFarm && ___namingAnimal)
{ {
string toSpeak = ""; narrateNamingMenu(__instance, x, y);
if (__instance.okButton != null && __instance.okButton.containsPoint(x, y))
{
toSpeak = "Cancel Button";
}
else if (__instance.doneNamingButton != null && __instance.doneNamingButton.containsPoint(x, y))
{
toSpeak = "OK Button";
}
else if (__instance.randomButton != null && __instance.randomButton.containsPoint(x, y))
{
toSpeak = "Random Name Button";
}
else if (__instance.textBoxCC != null && __instance.textBoxCC.containsPoint(x, y))
{
toSpeak = "Name Text Box";
// string? value = ___textBox.Text;
// if (value != "" && value != null && value != "null")
// toSpeak = $"{toSpeak}, Value: {value}";
}
if (purchaseAnimalMenuQuery != toSpeak)
{
purchaseAnimalMenuQuery = toSpeak;
if (firstTimeInNamingMenu)
{
toSpeak = $"Enter the name of animal in the name text box. {toSpeak}";
firstTimeInNamingMenu = false;
}
MainClass.ScreenReader.Say(toSpeak, true);
}
} }
else if (___onFarm && !___namingAnimal) else if (___onFarm && !___namingAnimal)
{ {
@ -65,29 +33,7 @@ namespace stardew_access.Patches
else if (!___onFarm && !___namingAnimal) else if (!___onFarm && !___namingAnimal)
{ {
firstTimeInNamingMenu = true; firstTimeInNamingMenu = true;
if (__instance.hovered != null) narratePurchasingMenu(__instance);
{
string toSpeak = "";
if (((StardewValley.Object)__instance.hovered.item).Type != null)
{
toSpeak = ((StardewValley.Object)__instance.hovered.item).Type;
}
else
{
string displayName = PurchaseAnimalsMenu.getAnimalTitle(__instance.hovered.hoverText);
int price = __instance.hovered.item.salePrice();
string description = PurchaseAnimalsMenu.getAnimalDescription(__instance.hovered.hoverText);
toSpeak = $"{displayName}, Price: {price}g, Description: {description}";
}
if (purchaseAnimalMenuQuery != toSpeak)
{
purchaseAnimalMenuQuery = toSpeak;
MainClass.ScreenReader.Say(toSpeak, true);
}
return;
}
} }
} }
catch (Exception e) catch (Exception e)
@ -96,6 +42,72 @@ namespace stardew_access.Patches
} }
} }
private static void narrateNamingMenu(PurchaseAnimalsMenu __instance, int x, int y)
{
string toSpeak = "";
if (__instance.okButton != null && __instance.okButton.containsPoint(x, y))
{
toSpeak = "Cancel Button";
}
else if (__instance.doneNamingButton != null && __instance.doneNamingButton.containsPoint(x, y))
{
toSpeak = "OK Button";
}
else if (__instance.randomButton != null && __instance.randomButton.containsPoint(x, y))
{
toSpeak = "Random Name Button";
}
else if (__instance.textBoxCC != null && __instance.textBoxCC.containsPoint(x, y))
{
toSpeak = "Name Text Box";
// string? value = ___textBox.Text;
// if (value != "" && value != null && value != "null")
// toSpeak = $"{toSpeak}, Value: {value}";
}
if (purchaseAnimalMenuQuery == toSpeak) return;
purchaseAnimalMenuQuery = toSpeak;
if (firstTimeInNamingMenu)
{
toSpeak = $"Enter the name of animal in the name text box. {toSpeak}";
firstTimeInNamingMenu = false;
}
MainClass.ScreenReader.Say(toSpeak, true);
}
private static void narratePurchasingMenu(PurchaseAnimalsMenu __instance)
{
if (__instance.hovered == null)
return;
string toSpeak = "";
if (((StardewValley.Object)__instance.hovered.item).Type != null)
{
toSpeak = ((StardewValley.Object)__instance.hovered.item).Type;
}
else
{
string displayName = PurchaseAnimalsMenu.getAnimalTitle(__instance.hovered.hoverText);
int price = __instance.hovered.item.salePrice();
string description = PurchaseAnimalsMenu.getAnimalDescription(__instance.hovered.hoverText);
toSpeak = $"{displayName}, Price: {price}g, Description: {description}";
}
if (purchaseAnimalMenuQuery == toSpeak) return;
purchaseAnimalMenuQuery = toSpeak;
MainClass.ScreenReader.Say(toSpeak, true);
}
internal static void Cleanup()
{
purchaseAnimalMenuQuery = "";
firstTimeInNamingMenu = true;
purchaseAnimalsMenu = null;
}
} }
} }