Moved more menus to their own class
parent
ea03f9a4cb
commit
b8fce68bec
|
@ -134,27 +134,27 @@ namespace stardew_access
|
||||||
|
|
||||||
harmony.Patch(
|
harmony.Patch(
|
||||||
original: AccessTools.Method(typeof(ShippingMenu), nameof(ShippingMenu.draw), new Type[] { typeof(SpriteBatch) }),
|
original: AccessTools.Method(typeof(ShippingMenu), nameof(ShippingMenu.draw), new Type[] { typeof(SpriteBatch) }),
|
||||||
postfix: new HarmonyMethod(typeof(MenuPatches), nameof(MenuPatches.ShippingMenuPatch))
|
postfix: new HarmonyMethod(typeof(ShippingMenuPatch), nameof(ShippingMenuPatch.DrawPatch))
|
||||||
);
|
);
|
||||||
|
|
||||||
harmony.Patch(
|
harmony.Patch(
|
||||||
original: AccessTools.Method(typeof(LevelUpMenu), nameof(LevelUpMenu.draw), new Type[] { typeof(SpriteBatch) }),
|
original: AccessTools.Method(typeof(LevelUpMenu), nameof(LevelUpMenu.draw), new Type[] { typeof(SpriteBatch) }),
|
||||||
postfix: new HarmonyMethod(typeof(MenuPatches), nameof(MenuPatches.LevelUpMenuPatch))
|
postfix: new HarmonyMethod(typeof(LevelUpMenuPatch), nameof(LevelUpMenuPatch.DrawPatch))
|
||||||
);
|
);
|
||||||
|
|
||||||
harmony.Patch(
|
harmony.Patch(
|
||||||
original: AccessTools.Method(typeof(ConfirmationDialog), nameof(ConfirmationDialog.draw), new Type[] { typeof(SpriteBatch) }),
|
original: AccessTools.Method(typeof(ConfirmationDialog), nameof(ConfirmationDialog.draw), new Type[] { typeof(SpriteBatch) }),
|
||||||
postfix: new HarmonyMethod(typeof(MenuPatches), nameof(MenuPatches.ConfirmationDialogPatch))
|
postfix: new HarmonyMethod(typeof(ConfirmationDialogMenuPatch), nameof(ConfirmationDialogMenuPatch.DrawPatch))
|
||||||
);
|
);
|
||||||
|
|
||||||
harmony.Patch(
|
harmony.Patch(
|
||||||
original: AccessTools.Method(typeof(TitleTextInputMenu), nameof(TitleTextInputMenu.draw), new Type[] { typeof(SpriteBatch) }),
|
original: AccessTools.Method(typeof(TitleTextInputMenu), nameof(TitleTextInputMenu.draw), new Type[] { typeof(SpriteBatch) }),
|
||||||
postfix: new HarmonyMethod(typeof(MenuPatches), nameof(MenuPatches.TitleTextInputMenuPatch))
|
postfix: new HarmonyMethod(typeof(TitleTextInputMenuPatch), nameof(TitleTextInputMenuPatch.DrawPatch))
|
||||||
);
|
);
|
||||||
|
|
||||||
harmony.Patch(
|
harmony.Patch(
|
||||||
original: AccessTools.Method(typeof(NamingMenu), nameof(NamingMenu.draw), new Type[] { typeof(SpriteBatch) }),
|
original: AccessTools.Method(typeof(NamingMenu), nameof(NamingMenu.draw), new Type[] { typeof(SpriteBatch) }),
|
||||||
postfix: new HarmonyMethod(typeof(MenuPatches), nameof(MenuPatches.NamingMenuPatch))
|
postfix: new HarmonyMethod(typeof(NamingMenuPatch), nameof(NamingMenuPatch.DrawPatch))
|
||||||
);
|
);
|
||||||
|
|
||||||
harmony.Patch(
|
harmony.Patch(
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
using StardewValley;
|
||||||
|
using StardewValley.Menus;
|
||||||
|
|
||||||
|
namespace stardew_access.Patches
|
||||||
|
{
|
||||||
|
internal class ConfirmationDialogMenuPatch
|
||||||
|
{
|
||||||
|
internal static void DrawPatch(ConfirmationDialog __instance, string ___message)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int x = Game1.getMouseX(true), y = Game1.getMouseY(true);
|
||||||
|
string toSpeak = ___message;
|
||||||
|
|
||||||
|
if (__instance.okButton.containsPoint(x, y))
|
||||||
|
{
|
||||||
|
toSpeak += "\n\tOk Button";
|
||||||
|
}
|
||||||
|
else if (__instance.cancelButton.containsPoint(x, y))
|
||||||
|
{
|
||||||
|
toSpeak += "\n\tCancel Button";
|
||||||
|
}
|
||||||
|
|
||||||
|
MainClass.ScreenReader.SayWithMenuChecker(toSpeak, true);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
MainClass.ErrorLog($"Unable to narrate Text:\n{e.Message}\n{e.StackTrace}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -231,7 +231,7 @@ namespace stardew_access.Patches
|
||||||
}
|
}
|
||||||
else if (menu is LevelUpMenu)
|
else if (menu is LevelUpMenu)
|
||||||
{
|
{
|
||||||
MenuPatches.currentLevelUpTitle = " ";
|
LevelUpMenuPatch.Cleanup();
|
||||||
}
|
}
|
||||||
else if (menu is Billboard)
|
else if (menu is Billboard)
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,109 @@
|
||||||
|
using StardewValley;
|
||||||
|
using StardewValley.Menus;
|
||||||
|
|
||||||
|
namespace stardew_access.Patches
|
||||||
|
{
|
||||||
|
internal class LevelUpMenuPatch
|
||||||
|
{
|
||||||
|
private static string currentLevelUpTitle = "";
|
||||||
|
|
||||||
|
internal static void DrawPatch(LevelUpMenu __instance, List<int> ___professionsToChoose, List<string> ___leftProfessionDescription, List<string> ___rightProfessionDescription, List<string> ___extraInfoForLevel, List<CraftingRecipe> ___newCraftingRecipes, string ___title, bool ___isActive, bool ___isProfessionChooser)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int x = Game1.getMouseX(true), y = Game1.getMouseY(true);
|
||||||
|
string leftProfession = "", rightProfession = "", extraInfo = "", newCraftingRecipe = "", toSpeak = "";
|
||||||
|
|
||||||
|
if (!__instance.informationUp)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (__instance.isProfessionChooser)
|
||||||
|
{
|
||||||
|
if (___professionsToChoose.Count() == 0) return;
|
||||||
|
|
||||||
|
for (int j = 0; j < ___leftProfessionDescription.Count; j++)
|
||||||
|
{
|
||||||
|
leftProfession += ___leftProfessionDescription[j] + ", ";
|
||||||
|
}
|
||||||
|
for (int i = 0; i < ___rightProfessionDescription.Count; i++)
|
||||||
|
{
|
||||||
|
rightProfession += ___rightProfessionDescription[i] + ", ";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (__instance.leftProfession.containsPoint(x, y))
|
||||||
|
{
|
||||||
|
if ((MainClass.Config.LeftClickMainKey.JustPressed() || MainClass.Config.LeftClickAlternateKey.JustPressed()) && __instance.readyToClose())
|
||||||
|
{
|
||||||
|
Game1.player.professions.Add(___professionsToChoose[0]);
|
||||||
|
__instance.getImmediateProfessionPerk(___professionsToChoose[0]);
|
||||||
|
___isActive = false;
|
||||||
|
__instance.informationUp = false;
|
||||||
|
___isProfessionChooser = false;
|
||||||
|
__instance.RemoveLevelFromLevelList();
|
||||||
|
__instance.exitThisMenu();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
toSpeak = $"Selected: {leftProfession} Left click to choose.";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (__instance.rightProfession.containsPoint(x, y))
|
||||||
|
{
|
||||||
|
if ((MainClass.Config.LeftClickMainKey.JustPressed() || MainClass.Config.LeftClickAlternateKey.JustPressed()) && __instance.readyToClose())
|
||||||
|
{
|
||||||
|
Game1.player.professions.Add(___professionsToChoose[1]);
|
||||||
|
__instance.getImmediateProfessionPerk(___professionsToChoose[1]);
|
||||||
|
___isActive = false;
|
||||||
|
__instance.informationUp = false;
|
||||||
|
___isProfessionChooser = false;
|
||||||
|
__instance.RemoveLevelFromLevelList();
|
||||||
|
__instance.exitThisMenu();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
toSpeak = $"Selected: {rightProfession} Left click to choose.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (string s2 in ___extraInfoForLevel)
|
||||||
|
{
|
||||||
|
extraInfo += s2 + ", ";
|
||||||
|
}
|
||||||
|
foreach (CraftingRecipe s in ___newCraftingRecipes)
|
||||||
|
{
|
||||||
|
string cookingOrCrafting = Game1.content.LoadString("Strings\\UI:LearnedRecipe_" + (s.isCookingRecipe ? "cooking" : "crafting"));
|
||||||
|
string message = Game1.content.LoadString("Strings\\UI:LevelUp_NewRecipe", cookingOrCrafting, s.DisplayName);
|
||||||
|
|
||||||
|
newCraftingRecipe += $"{message}, ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (__instance.okButton.containsPoint(x, y))
|
||||||
|
{
|
||||||
|
if (MainClass.Config.LeftClickMainKey.JustPressed() || MainClass.Config.LeftClickAlternateKey.JustPressed())
|
||||||
|
__instance.okButtonClicked();
|
||||||
|
|
||||||
|
toSpeak = $"{___title} {extraInfo} {newCraftingRecipe}. Left click to close.";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (toSpeak != "")
|
||||||
|
MainClass.ScreenReader.SayWithMenuChecker(toSpeak, true);
|
||||||
|
else if (__instance.isProfessionChooser && currentLevelUpTitle != $"{___title}. Select a new profession.")
|
||||||
|
{
|
||||||
|
MainClass.ScreenReader.SayWithMenuChecker($"{___title}. Select a new profession.", true);
|
||||||
|
currentLevelUpTitle = $"{___title}. Select a new profession.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
MainClass.ErrorLog($"Unable to narrate Text:\n{e.Message}\n{e.StackTrace}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void Cleanup()
|
||||||
|
{
|
||||||
|
currentLevelUpTitle = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,226 +0,0 @@
|
||||||
using Microsoft.Xna.Framework;
|
|
||||||
using stardew_access.Features;
|
|
||||||
using StardewModdingAPI;
|
|
||||||
using StardewValley;
|
|
||||||
using StardewValley.Buildings;
|
|
||||||
using StardewValley.Menus;
|
|
||||||
|
|
||||||
namespace stardew_access.Patches
|
|
||||||
{
|
|
||||||
internal class MenuPatches
|
|
||||||
{
|
|
||||||
internal static string currentLevelUpTitle = " ";
|
|
||||||
internal static bool firstTimeInNamingMenu = true;
|
|
||||||
internal static int prevSlotIndex = -999;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
internal static void TitleTextInputMenuPatch(TitleTextInputMenu __instance)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
string toSpeak = "";
|
|
||||||
int x = Game1.getMouseX(true), y = Game1.getMouseY(true); // Mouse x and y position
|
|
||||||
|
|
||||||
if (__instance.pasteButton != null && __instance.pasteButton.containsPoint(x, y))
|
|
||||||
toSpeak = $"Paste button";
|
|
||||||
|
|
||||||
if (toSpeak != "")
|
|
||||||
MainClass.ScreenReader.SayWithChecker(toSpeak, true);
|
|
||||||
}
|
|
||||||
catch (System.Exception e)
|
|
||||||
{
|
|
||||||
MainClass.ErrorLog($"Unable to narrate Text:\n{e.Message}\n{e.StackTrace}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static void NamingMenuPatch(NamingMenu __instance, TextBox ___textBox, string ___title)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (firstTimeInNamingMenu)
|
|
||||||
{
|
|
||||||
firstTimeInNamingMenu = false;
|
|
||||||
___textBox.Selected = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TextBoxPatch.isAnyTextBoxActive) return;
|
|
||||||
|
|
||||||
string toSpeak = "";
|
|
||||||
int x = Game1.getMouseX(true), y = Game1.getMouseY(true); // Mouse x and y position
|
|
||||||
bool isEscPressed = Game1.input.GetKeyboardState().IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Escape); // For escaping/unselecting from the animal name text box
|
|
||||||
|
|
||||||
if (__instance.textBoxCC != null && __instance.textBoxCC.containsPoint(x, y))
|
|
||||||
toSpeak = $"{___title} text box";
|
|
||||||
else if (__instance.doneNamingButton != null && __instance.doneNamingButton.containsPoint(x, y))
|
|
||||||
toSpeak = $"Done naming button";
|
|
||||||
else if (__instance.randomButton != null && __instance.randomButton.containsPoint(x, y))
|
|
||||||
toSpeak = $"Random button";
|
|
||||||
|
|
||||||
if (toSpeak != "")
|
|
||||||
MainClass.ScreenReader.SayWithChecker(toSpeak, true);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
MainClass.ErrorLog($"Unable to narrate Text:\n{e.Message}\n{e.StackTrace}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static void ConfirmationDialogPatch(ConfirmationDialog __instance, string ___message)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
int x = Game1.getMouseX(true), y = Game1.getMouseY(true);
|
|
||||||
string toSpeak = ___message;
|
|
||||||
|
|
||||||
if (__instance.okButton.containsPoint(x, y))
|
|
||||||
{
|
|
||||||
toSpeak += "\n\tOk Button";
|
|
||||||
}
|
|
||||||
else if (__instance.cancelButton.containsPoint(x, y))
|
|
||||||
{
|
|
||||||
toSpeak += "\n\tCancel Button";
|
|
||||||
}
|
|
||||||
|
|
||||||
MainClass.ScreenReader.SayWithMenuChecker(toSpeak, true);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
MainClass.ErrorLog($"Unable to narrate Text:\n{e.Message}\n{e.StackTrace}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static void LevelUpMenuPatch(LevelUpMenu __instance, List<int> ___professionsToChoose, List<string> ___leftProfessionDescription, List<string> ___rightProfessionDescription, List<string> ___extraInfoForLevel, List<CraftingRecipe> ___newCraftingRecipes, string ___title, bool ___isActive, bool ___isProfessionChooser)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
int x = Game1.getMouseX(true), y = Game1.getMouseY(true);
|
|
||||||
string leftProfession = " ", rightProfession = " ", extraInfo = " ", newCraftingRecipe = " ", toSpeak = " ";
|
|
||||||
|
|
||||||
if (!__instance.informationUp)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (__instance.isProfessionChooser)
|
|
||||||
{
|
|
||||||
if (___professionsToChoose.Count() == 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for (int j = 0; j < ___leftProfessionDescription.Count; j++)
|
|
||||||
{
|
|
||||||
leftProfession += ___leftProfessionDescription[j] + ", ";
|
|
||||||
}
|
|
||||||
for (int i = 0; i < ___rightProfessionDescription.Count; i++)
|
|
||||||
{
|
|
||||||
rightProfession += ___rightProfessionDescription[i] + ", ";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (__instance.leftProfession.containsPoint(x, y))
|
|
||||||
{
|
|
||||||
if ((MainClass.Config.LeftClickMainKey.JustPressed() || MainClass.Config.LeftClickAlternateKey.JustPressed()) && __instance.readyToClose())
|
|
||||||
{
|
|
||||||
Game1.player.professions.Add(___professionsToChoose[0]);
|
|
||||||
__instance.getImmediateProfessionPerk(___professionsToChoose[0]);
|
|
||||||
___isActive = false;
|
|
||||||
__instance.informationUp = false;
|
|
||||||
___isProfessionChooser = false;
|
|
||||||
__instance.RemoveLevelFromLevelList();
|
|
||||||
__instance.exitThisMenu();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
toSpeak = $"Selected: {leftProfession} Left click to choose.";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (__instance.rightProfession.containsPoint(x, y))
|
|
||||||
{
|
|
||||||
if ((MainClass.Config.LeftClickMainKey.JustPressed() || MainClass.Config.LeftClickAlternateKey.JustPressed()) && __instance.readyToClose())
|
|
||||||
{
|
|
||||||
Game1.player.professions.Add(___professionsToChoose[1]);
|
|
||||||
__instance.getImmediateProfessionPerk(___professionsToChoose[1]);
|
|
||||||
___isActive = false;
|
|
||||||
__instance.informationUp = false;
|
|
||||||
___isProfessionChooser = false;
|
|
||||||
__instance.RemoveLevelFromLevelList();
|
|
||||||
__instance.exitThisMenu();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
toSpeak = $"Selected: {rightProfession} Left click to choose.";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
foreach (string s2 in ___extraInfoForLevel)
|
|
||||||
{
|
|
||||||
extraInfo += s2 + ", ";
|
|
||||||
}
|
|
||||||
foreach (CraftingRecipe s in ___newCraftingRecipes)
|
|
||||||
{
|
|
||||||
string cookingOrCrafting = Game1.content.LoadString("Strings\\UI:LearnedRecipe_" + (s.isCookingRecipe ? "cooking" : "crafting"));
|
|
||||||
string message = Game1.content.LoadString("Strings\\UI:LevelUp_NewRecipe", cookingOrCrafting, s.DisplayName);
|
|
||||||
|
|
||||||
newCraftingRecipe += $"{message}, ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (__instance.okButton.containsPoint(x, y))
|
|
||||||
{
|
|
||||||
if (MainClass.Config.LeftClickMainKey.JustPressed() || MainClass.Config.LeftClickAlternateKey.JustPressed())
|
|
||||||
__instance.okButtonClicked();
|
|
||||||
|
|
||||||
toSpeak = $"{___title} {extraInfo} {newCraftingRecipe}. Left click to close.";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (toSpeak != " ")
|
|
||||||
MainClass.ScreenReader.SayWithMenuChecker(toSpeak, true);
|
|
||||||
else if (__instance.isProfessionChooser && currentLevelUpTitle != $"{___title}. Select a new profession.")
|
|
||||||
{
|
|
||||||
MainClass.ScreenReader.SayWithMenuChecker($"{___title}. Select a new profession.", true);
|
|
||||||
currentLevelUpTitle = $"{___title}. Select a new profession.";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
MainClass.ErrorLog($"Unable to narrate Text:\n{e.Message}\n{e.StackTrace}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static void ShippingMenuPatch(ShippingMenu __instance, List<int> ___categoryTotals)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
|
|
||||||
if (__instance.currentPage == -1)
|
|
||||||
{
|
|
||||||
int total = ___categoryTotals[5];
|
|
||||||
string toSpeak;
|
|
||||||
if (__instance.okButton.containsPoint(Game1.getMouseX(true), Game1.getMouseY(true)))
|
|
||||||
{
|
|
||||||
// Perform Left Click
|
|
||||||
if (MainClass.Config.LeftClickMainKey.JustPressed() || MainClass.Config.LeftClickAlternateKey.JustPressed())
|
|
||||||
{
|
|
||||||
Game1.activeClickableMenu.receiveLeftClick(Game1.getMouseX(true), Game1.getMouseY(true));
|
|
||||||
}
|
|
||||||
toSpeak = $"{total}g in total. Press left mouse button to save.";
|
|
||||||
MainClass.ScreenReader.SayWithChecker(toSpeak, true);
|
|
||||||
}
|
|
||||||
for (int i = 0; i < __instance.categories.Count; i++)
|
|
||||||
{
|
|
||||||
if (__instance.categories[i].containsPoint(Game1.getMouseX(true), Game1.getMouseY(true)))
|
|
||||||
{
|
|
||||||
toSpeak = $"Money recieved from {__instance.getCategoryName(i)}: {___categoryTotals[i]}g.";
|
|
||||||
MainClass.ScreenReader.SayWithChecker(toSpeak, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
MainClass.ErrorLog($"Unable to narrate Text:\n{e.Message}\n{e.StackTrace}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
using StardewValley;
|
||||||
|
using StardewValley.Menus;
|
||||||
|
|
||||||
|
namespace stardew_access.Patches
|
||||||
|
{
|
||||||
|
internal class NamingMenuPatch
|
||||||
|
{
|
||||||
|
internal static bool firstTimeInNamingMenu = true;
|
||||||
|
|
||||||
|
internal static void DrawPatch(NamingMenu __instance, TextBox ___textBox, string ___title)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (firstTimeInNamingMenu)
|
||||||
|
{
|
||||||
|
firstTimeInNamingMenu = false;
|
||||||
|
___textBox.Selected = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TextBoxPatch.isAnyTextBoxActive) return;
|
||||||
|
|
||||||
|
string toSpeak = "";
|
||||||
|
int x = Game1.getMouseX(true), y = Game1.getMouseY(true); // Mouse x and y position
|
||||||
|
bool isEscPressed = Game1.input.GetKeyboardState().IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Escape); // For escaping/unselecting from the animal name text box
|
||||||
|
|
||||||
|
if (__instance.textBoxCC != null && __instance.textBoxCC.containsPoint(x, y))
|
||||||
|
toSpeak = $"{___title} text box";
|
||||||
|
else if (__instance.doneNamingButton != null && __instance.doneNamingButton.containsPoint(x, y))
|
||||||
|
toSpeak = $"Done naming button";
|
||||||
|
else if (__instance.randomButton != null && __instance.randomButton.containsPoint(x, y))
|
||||||
|
toSpeak = $"Random button";
|
||||||
|
|
||||||
|
if (toSpeak != "")
|
||||||
|
MainClass.ScreenReader.SayWithChecker(toSpeak, true);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
MainClass.ErrorLog($"Unable to narrate Text:\n{e.Message}\n{e.StackTrace}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
using StardewValley;
|
||||||
|
using StardewValley.Menus;
|
||||||
|
|
||||||
|
namespace stardew_access.Patches
|
||||||
|
{
|
||||||
|
internal class ShippingMenuPatch
|
||||||
|
{
|
||||||
|
internal static int prevSlotIndex = -999;
|
||||||
|
|
||||||
|
internal static void DrawPatch(ShippingMenu __instance, List<int> ___categoryTotals)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
if (__instance.currentPage == -1)
|
||||||
|
{
|
||||||
|
int total = ___categoryTotals[5];
|
||||||
|
string toSpeak;
|
||||||
|
if (__instance.okButton.containsPoint(Game1.getMouseX(true), Game1.getMouseY(true)))
|
||||||
|
{
|
||||||
|
// Perform Left Click
|
||||||
|
if (MainClass.Config.LeftClickMainKey.JustPressed() || MainClass.Config.LeftClickAlternateKey.JustPressed())
|
||||||
|
{
|
||||||
|
Game1.activeClickableMenu.receiveLeftClick(Game1.getMouseX(true), Game1.getMouseY(true));
|
||||||
|
}
|
||||||
|
toSpeak = $"{total}g in total. Press left mouse button to save.";
|
||||||
|
MainClass.ScreenReader.SayWithChecker(toSpeak, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < __instance.categories.Count; i++)
|
||||||
|
{
|
||||||
|
if (__instance.categories[i].containsPoint(Game1.getMouseX(true), Game1.getMouseY(true)))
|
||||||
|
{
|
||||||
|
toSpeak = $"Money recieved from {__instance.getCategoryName(i)}: {___categoryTotals[i]}g.";
|
||||||
|
MainClass.ScreenReader.SayWithChecker(toSpeak, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
MainClass.ErrorLog($"Unable to narrate Text:\n{e.Message}\n{e.StackTrace}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
using StardewValley;
|
||||||
|
using StardewValley.Menus;
|
||||||
|
|
||||||
|
namespace stardew_access.Patches
|
||||||
|
{
|
||||||
|
internal class TitleTextInputMenuPatch
|
||||||
|
{
|
||||||
|
internal static void DrawPatch(TitleTextInputMenu __instance)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string toSpeak = "";
|
||||||
|
int x = Game1.getMouseX(true), y = Game1.getMouseY(true); // Mouse x and y position
|
||||||
|
|
||||||
|
if (__instance.pasteButton != null && __instance.pasteButton.containsPoint(x, y))
|
||||||
|
toSpeak = $"Paste button";
|
||||||
|
|
||||||
|
if (toSpeak != "")
|
||||||
|
MainClass.ScreenReader.SayWithChecker(toSpeak, true);
|
||||||
|
}
|
||||||
|
catch (System.Exception e)
|
||||||
|
{
|
||||||
|
MainClass.ErrorLog($"Unable to narrate Text:\n{e.Message}\n{e.StackTrace}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue