Added docs and replaced escape key with enter

master
Mohammad Shoaib Khan 2022-08-12 16:37:39 +05:30
parent 4a1e4f9f4a
commit df192ee90c
10 changed files with 65 additions and 51 deletions

View File

@ -39,6 +39,7 @@ namespace stardew_access
MainClass.DebugLog("Flooring is " + (MainClass.Config.ReadFlooring ? "on" : "off")); MainClass.DebugLog("Flooring is " + (MainClass.Config.ReadFlooring ? "on" : "off"));
}); });
#region Radar Feature
helper.ConsoleCommands.Add("radar", "Toggle radar feature.", (string commmand, string[] args) => helper.ConsoleCommands.Add("radar", "Toggle radar feature.", (string commmand, string[] args) =>
{ {
MainClass.Config.Radar = !MainClass.Config.Radar; MainClass.Config.Radar = !MainClass.Config.Radar;
@ -47,7 +48,6 @@ namespace stardew_access
MainClass.DebugLog("Radar " + (MainClass.Config.Radar ? "on" : "off")); MainClass.DebugLog("Radar " + (MainClass.Config.Radar ? "on" : "off"));
}); });
#region Radar Feature
helper.ConsoleCommands.Add("rdebug", "Toggle debugging in radar feature.", (string commmand, string[] args) => helper.ConsoleCommands.Add("rdebug", "Toggle debugging in radar feature.", (string commmand, string[] args) =>
{ {
MainClass.radarDebug = !MainClass.radarDebug; MainClass.radarDebug = !MainClass.radarDebug;

View File

@ -4,6 +4,9 @@ using StardewValley;
namespace stardew_access.Features namespace stardew_access.Features
{ {
/// <summary>
/// Reads the name and information about a tile.
/// </summary>
public class ReadTile public class ReadTile
{ {
private bool isBusy; // To pause execution of run method between fixed intervals private bool isBusy; // To pause execution of run method between fixed intervals

View File

@ -1,10 +1,7 @@
using System; using Microsoft.Xna.Framework;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using xTile; using xTile;
using StardewValley; using StardewValley;
using StardewValley.Menus; using StardewValley.Menus;
using stardew_access.Features;
namespace stardew_access.Features namespace stardew_access.Features
{ {

View File

@ -1,7 +1,11 @@
namespace stardew_access.Features namespace stardew_access.Features
{ {
/// <summary>
/// Warns the player when their health or stamina/energy is low. Also warns when its past midnight.
/// </summary>
public class Warnings public class Warnings
{ {
// Store the previously checked value
private int prevStamina; private int prevStamina;
private int prevHealth; private int prevHealth;
private int prevHour; private int prevHour;
@ -20,6 +24,9 @@ namespace stardew_access.Features
this.checkForTimeOfDay(); this.checkForTimeOfDay();
} }
/// <summary>
/// Warns when its past 12:00 am and 1:00 am
/// </summary>
private void checkForTimeOfDay() private void checkForTimeOfDay()
{ {
if (MainClass.ModHelper == null) if (MainClass.ModHelper == null)
@ -38,6 +45,9 @@ namespace stardew_access.Features
prevHour = hours; prevHour = hours;
} }
/// <summary>
/// Warns when stamina reaches below 50, 25 and 10.
/// </summary>
public void checkForStamina() public void checkForStamina()
{ {
if (MainClass.ModHelper == null) if (MainClass.ModHelper == null)
@ -56,6 +66,9 @@ namespace stardew_access.Features
prevStamina = stamina; prevStamina = stamina;
} }
/// <summary>
/// Warns when health reaches below 50, 25 and 10.
/// </summary>
public void checkForHealth() public void checkForHealth()
{ {
if (MainClass.ModHelper == null) if (MainClass.ModHelper == null)

View File

@ -7,37 +7,37 @@ namespace stardew_access
// https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Input#SButton button key codes // https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Input#SButton button key codes
#region Simulate mouse clicks #region Simulate mouse clicks
public KeybindList LeftClickMainKey { get; set; } = KeybindList.Parse("LeftControl + Enter"); public KeybindList LeftClickMainKey { get; set; } = KeybindList.Parse("LeftControl + Enter"); // Primary key to simulate mouse left click
public KeybindList RightClickMainKey { get; set; } = KeybindList.Parse("LeftShift + Enter"); public KeybindList RightClickMainKey { get; set; } = KeybindList.Parse("LeftShift + Enter"); // Primary key to simulate mouse right click
public KeybindList LeftClickAlternateKey { get; set; } = KeybindList.Parse("OemOpenBrackets"); public KeybindList LeftClickAlternateKey { get; set; } = KeybindList.Parse("OemOpenBrackets"); // Secondary key to simulate mouse left click
public KeybindList RightClickAlternateKey { get; set; } = KeybindList.Parse("OemCloseBrackets"); public KeybindList RightClickAlternateKey { get; set; } = KeybindList.Parse("OemCloseBrackets"); // Secondary key to simulate mouse right click
#endregion #endregion
#region Chat menu #region Chat menu
public KeybindList ChatMenuNextKey { get; set; } = KeybindList.Parse("PageUp"); public KeybindList ChatMenuNextKey { get; set; } = KeybindList.Parse("PageUp"); // Read previous chat message
public KeybindList ChatMenuPreviousKey { get; set; } = KeybindList.Parse("PageDown"); public KeybindList ChatMenuPreviousKey { get; set; } = KeybindList.Parse("PageDown"); // Read next chat message
#endregion #endregion
#region Read tile #region Read tile
public Boolean ReadTile { get; set; } = true; public Boolean ReadTile { get; set; } = true; // Toggle this feature.
public KeybindList ReadTileKey { get; set; } = KeybindList.Parse("J"); public KeybindList ReadTileKey { get; set; } = KeybindList.Parse("J"); // Manually trigger read tile for the tile player is *looking at*.
public KeybindList ReadStandingTileKey { get; set; } = KeybindList.Parse("LeftAlt + J"); public KeybindList ReadStandingTileKey { get; set; } = KeybindList.Parse("LeftAlt + J"); // Manually trigger read tile for the tile player is *standing on*.
public Boolean ReadFlooring { get; set; } = false; public Boolean ReadFlooring { get; set; } = false; // Toggle reading floorings.
#endregion #endregion
#region Tile viewer #region Tile viewer
public KeybindList TileCursorUpKey { get; set; } = KeybindList.Parse("Up"); public KeybindList TileCursorUpKey { get; set; } = KeybindList.Parse("Up"); // Move the cursor one tile up
public KeybindList TileCursorRightKey { get; set; } = KeybindList.Parse("Right"); public KeybindList TileCursorRightKey { get; set; } = KeybindList.Parse("Right"); // Move the cursor one tile right
public KeybindList TileCursorDownKey { get; set; } = KeybindList.Parse("Down"); public KeybindList TileCursorDownKey { get; set; } = KeybindList.Parse("Down"); // Move the cursor one tile down
public KeybindList TileCursorLeftKey { get; set; } = KeybindList.Parse("Left"); public KeybindList TileCursorLeftKey { get; set; } = KeybindList.Parse("Left"); // Move the cursor one tile left
public KeybindList TileCursorPreciseUpKey { get; set; } = KeybindList.Parse("LeftShift + Up"); public KeybindList TileCursorPreciseUpKey { get; set; } = KeybindList.Parse("LeftShift + Up"); // Move the cursor up by precision i.e. pixel by pixel
public KeybindList TileCursorPreciseRightKey { get; set; } = KeybindList.Parse("LeftShift + Right"); public KeybindList TileCursorPreciseRightKey { get; set; } = KeybindList.Parse("LeftShift + Right"); // Move the cursor right by precision i.e. pixel by pixel
public KeybindList TileCursorPreciseDownKey { get; set; } = KeybindList.Parse("LeftShift + Down"); public KeybindList TileCursorPreciseDownKey { get; set; } = KeybindList.Parse("LeftShift + Down"); // Move the cursor down by precision i.e. pixel by pixel
public KeybindList TileCursorPreciseLeftKey { get; set; } = KeybindList.Parse("LeftShift + Left"); public KeybindList TileCursorPreciseLeftKey { get; set; } = KeybindList.Parse("LeftShift + Left"); // Move the cursor left by precision i.e. pixel by pixel
public KeybindList ToggleRelativeCursorLockKey { get; set; } = KeybindList.Parse("L"); public KeybindList ToggleRelativeCursorLockKey { get; set; } = KeybindList.Parse("L"); // Toggles realative cursor lock i.e. if enabled, the cursor will reset when player moves.
public KeybindList AutoWalkToTileKey { get; set; } = KeybindList.Parse("LeftControl + Enter"); public KeybindList AutoWalkToTileKey { get; set; } = KeybindList.Parse("LeftControl + Enter"); // Auto walk to the tile
public bool LimitTileCursorToScreen { get; set; } = false; public bool LimitTileCursorToScreen { get; set; } = false; // #TODO add command for this // Toggle whether to prevent cursor from going out of screen.
public int TileCursorPreciseMovementDistance { get; set; } = 8; public int TileCursorPreciseMovementDistance { get; set; } = 8; // Specifies the number of pixels the cursor should move when using precision movement i.e. with *left shift*.
#endregion #endregion
#region Radar #region Radar
@ -68,13 +68,14 @@ namespace stardew_access
#endregion #endregion
#region Others #region Others
public KeybindList HealthNStaminaKey { get; set; } = KeybindList.Parse("H"); public KeybindList HealthNStaminaKey { get; set; } = KeybindList.Parse("H"); // Narrate health and stamina.
public KeybindList PositionKey { get; set; } = KeybindList.Parse("K"); public KeybindList PositionKey { get; set; } = KeybindList.Parse("K"); // Narrate player position.
public KeybindList LocationKey { get; set; } = KeybindList.Parse("LeftAlt + K"); public KeybindList LocationKey { get; set; } = KeybindList.Parse("LeftAlt + K"); // Narrate current location name.
public KeybindList MoneyKey { get; set; } = KeybindList.Parse("R"); public KeybindList MoneyKey { get; set; } = KeybindList.Parse("R"); // Narrate the money the player has currently.
public KeybindList TimeNSeasonKey { get; set; } = KeybindList.Parse("Q"); public KeybindList TimeNSeasonKey { get; set; } = KeybindList.Parse("Q"); // Narrate the time of day, day and date and season
public Boolean VerboseCoordinates { get; set; } = true; public Boolean VerboseCoordinates { get; set; } = true;
public Boolean SnapMouse { get; set; } = true; public Boolean SnapMouse { get; set; } = true; // Toggles the snap mouse feature
// TODO add command to toggle warning feature
#endregion #endregion
// TODO Add the exclusion and focus list too // TODO Add the exclusion and focus list too

View File

@ -28,8 +28,8 @@ namespace stardew_access.Patches
try try
{ {
int x = Game1.getMouseX(true), y = Game1.getMouseY(true); // Mouse x and y position int x = Game1.getMouseX(true), y = Game1.getMouseY(true); // Mouse x and y position
bool isCPressed = MainClass.Config.PrimaryInfoKey.JustPressed(); // For narrating animal details bool isPrimaryInfoKeyPressed = MainClass.Config.PrimaryInfoKey.JustPressed(); // For narrating animal details
bool isEscPressed = Game1.input.GetKeyboardState().IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Escape); // For escaping/unselecting from the animal name text box bool isEnterPressed = Game1.input.GetKeyboardState().IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Enter); // For escaping/unselecting from the animal name text box
string toSpeak = " ", details = " "; string toSpeak = " ", details = " ";
isOnFarm = ___movingAnimal; isOnFarm = ___movingAnimal;
@ -40,14 +40,14 @@ namespace stardew_access.Patches
{ {
toSpeak = ___textBox.Text; toSpeak = ___textBox.Text;
if (isEscPressed) if (isEnterPressed)
{ {
___textBox.Selected = false; ___textBox.Selected = false;
} }
} }
else else
{ {
if (isCPressed & !isNarratingAnimalInfo) if (isPrimaryInfoKeyPressed & !isNarratingAnimalInfo)
{ {
string name = ___animal.displayName; string name = ___animal.displayName;
string type = ___animal.displayType; string type = ___animal.displayType;
@ -205,7 +205,7 @@ namespace stardew_access.Patches
return; return;
int x = Game1.getMouseX(true), y = Game1.getMouseY(true); // Mouse x and y position int x = Game1.getMouseX(true), y = Game1.getMouseY(true); // Mouse x and y position
bool isCPressed = MainClass.Config.PrimaryInfoKey.JustPressed(); bool isPrimaryInfoKeyPressed = MainClass.Config.PrimaryInfoKey.JustPressed();
string ingredients = ""; string ingredients = "";
string name = currentBluprint.displayName; string name = currentBluprint.displayName;
string upgradeName = currentBluprint.nameOfBuildingToUpgrade; string upgradeName = currentBluprint.nameOfBuildingToUpgrade;
@ -242,7 +242,7 @@ namespace stardew_access.Patches
blueprintInfo = $"{name}, Price: {price}, Ingredients: {ingredients}, Dimensions: {width} width and {height} height, Description: {description}"; blueprintInfo = $"{name}, Price: {price}, Ingredients: {ingredients}, Dimensions: {width} width and {height} height, Description: {description}";
if (isCPressed && !isSayingBlueprintInfo) if (isPrimaryInfoKeyPressed && !isSayingBlueprintInfo)
{ {
SayBlueprintInfo(blueprintInfo); SayBlueprintInfo(blueprintInfo);
} }

View File

@ -82,9 +82,9 @@ namespace stardew_access.Patches
int i = narrateHoveredItemInInventory(__instance.inventory, __instance.inventory.inventory, __instance.inventory.actualInventory, x, y); int i = narrateHoveredItemInInventory(__instance.inventory, __instance.inventory.inventory, __instance.inventory.actualInventory, x, y);
if (i != -9999) if (i != -9999)
{ {
bool isCPressed = MainClass.Config.PrimaryInfoKey.JustPressed(); // For donating hovered item bool isPrimaryInfoKeyPressed = MainClass.Config.PrimaryInfoKey.JustPressed(); // For donating hovered item
if (isCPressed && __instance.inventory.actualInventory[i] != null) if (isPrimaryInfoKeyPressed && __instance.inventory.actualInventory[i] != null)
{ {
foreach (var tile in donationTiles) foreach (var tile in donationTiles)
{ {

View File

@ -169,7 +169,7 @@ namespace stardew_access.Patches
try try
{ {
int x = Game1.getMouseX(true), y = Game1.getMouseY(true); // Mouse x and y position int x = Game1.getMouseX(true), y = Game1.getMouseY(true); // Mouse x and y position
bool isCPressed = MainClass.Config.PrimaryInfoKey.JustPressed(); bool isPrimaryInfoKeyPressed = MainClass.Config.PrimaryInfoKey.JustPressed();
string toSpeak = " ", extra = ""; string toSpeak = " ", extra = "";
if (___confirmingEmpty) if (___confirmingEmpty)
@ -181,7 +181,7 @@ namespace stardew_access.Patches
} }
else else
{ {
if (isCPressed && !isNarratingPondInfo) if (isPrimaryInfoKeyPressed && !isNarratingPondInfo)
{ {
string pond_name_text = Game1.content.LoadString("Strings\\UI:PondQuery_Name", ____fishItem.DisplayName); string pond_name_text = Game1.content.LoadString("Strings\\UI:PondQuery_Name", ____fishItem.DisplayName);
string population_text = Game1.content.LoadString("Strings\\UI:PondQuery_Population", string.Concat(____pond.FishCount), ____pond.maxOccupants.Value); string population_text = Game1.content.LoadString("Strings\\UI:PondQuery_Population", string.Concat(____pond.FishCount), ____pond.maxOccupants.Value);
@ -458,7 +458,7 @@ namespace stardew_access.Patches
{ {
string toSpeak = ""; string toSpeak = "";
int x = Game1.getMouseX(true), y = Game1.getMouseY(true); // Mouse x and y position 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 bool isEnterPressed = Game1.input.GetKeyboardState().IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Enter); // For escaping/unselecting from the animal name text box
if (firstTimeInNamingMenu) if (firstTimeInNamingMenu)
{ {
@ -471,7 +471,7 @@ namespace stardew_access.Patches
___textBox.Update(); ___textBox.Update();
toSpeak = ___textBox.Text; toSpeak = ___textBox.Text;
if (isEscPressed) if (isEnterPressed)
{ {
___textBox.Selected = false; ___textBox.Selected = false;
} }

View File

@ -153,7 +153,7 @@ namespace stardew_access.Patches
{ {
try try
{ {
bool isCPressed = MainClass.Config.PrimaryInfoKey.JustPressed(); bool isPrimaryInfoKeyPressed = MainClass.Config.PrimaryInfoKey.JustPressed();
int x = Game1.getMouseX(true), y = Game1.getMouseY(true); // Mouse x and y position int x = Game1.getMouseX(true), y = Game1.getMouseY(true); // Mouse x and y position
string toSpeak = " ", extra = ""; string toSpeak = " ", extra = "";
@ -203,7 +203,7 @@ namespace stardew_access.Patches
string description = Game1.parseText(____shownQuest.GetDescription(), Game1.dialogueFont, __instance.width - 128); string description = Game1.parseText(____shownQuest.GetDescription(), Game1.dialogueFont, __instance.width - 128);
string title = ____shownQuest.GetName(); string title = ____shownQuest.GetName();
if (firstTimeInIndividualQuest || (isCPressed && !isNarratingQuestInfo)) if (firstTimeInIndividualQuest || (isPrimaryInfoKeyPressed && !isNarratingQuestInfo))
{ {
if (firstTimeInIndividualQuest) if (firstTimeInIndividualQuest)
toSpeak = "Back button"; toSpeak = "Back button";

View File

@ -247,7 +247,7 @@ namespace stardew_access.Patches
{ {
try try
{ {
bool isEscPressed = Game1.input.GetKeyboardState().IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Escape); // For escaping/unselecting from the animal name text box bool isEnterPressed = Game1.input.GetKeyboardState().IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Enter); // For escaping/unselecting from the animal name text box
string toSpeak = " "; string toSpeak = " ";
string currentPetName = getCurrentPetName(); string currentPetName = getCurrentPetName();
@ -255,7 +255,7 @@ namespace stardew_access.Patches
{ {
toSpeak = ___nameBox.Text; toSpeak = ___nameBox.Text;
if (isEscPressed) if (isEnterPressed)
{ {
___nameBox.Selected = false; ___nameBox.Selected = false;
} }
@ -264,7 +264,7 @@ namespace stardew_access.Patches
{ {
toSpeak = ___farmnameBox.Text; toSpeak = ___farmnameBox.Text;
if (isEscPressed) if (isEnterPressed)
{ {
___farmnameBox.Selected = false; ___farmnameBox.Selected = false;
} }
@ -273,7 +273,7 @@ namespace stardew_access.Patches
{ {
toSpeak = ___favThingBox.Text; toSpeak = ___favThingBox.Text;
if (isEscPressed) if (isEnterPressed)
{ {
___favThingBox.Selected = false; ___favThingBox.Selected = false;
} }