Implemented Tolk library for screen reader in windows
parent
7a4ca89836
commit
f2ba3e8793
|
@ -3,6 +3,8 @@
|
||||||
##
|
##
|
||||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||||
|
|
||||||
|
*.dll
|
||||||
|
|
||||||
.vscode/*
|
.vscode/*
|
||||||
.git-old/
|
.git-old/
|
||||||
bin/
|
bin/
|
||||||
|
|
|
@ -21,7 +21,7 @@ namespace stardew_access
|
||||||
MainClass.Config.ReadTile = !MainClass.Config.ReadTile;
|
MainClass.Config.ReadTile = !MainClass.Config.ReadTile;
|
||||||
helper.WriteConfig(MainClass.Config);
|
helper.WriteConfig(MainClass.Config);
|
||||||
|
|
||||||
MainClass.DebugLog("Read Tile is " + (MainClass.Config.ReadTile ? "on" : "off"));
|
MainClass.InfoLog("Read Tile is " + (MainClass.Config.ReadTile ? "on" : "off"));
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("flooring", "Toggle flooring in read tile.", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("flooring", "Toggle flooring in read tile.", (string commmand, string[] args) =>
|
||||||
|
@ -29,7 +29,7 @@ namespace stardew_access
|
||||||
MainClass.Config.ReadFlooring = !MainClass.Config.ReadFlooring;
|
MainClass.Config.ReadFlooring = !MainClass.Config.ReadFlooring;
|
||||||
helper.WriteConfig(MainClass.Config);
|
helper.WriteConfig(MainClass.Config);
|
||||||
|
|
||||||
MainClass.DebugLog("Flooring is " + (MainClass.Config.ReadFlooring ? "on" : "off"));
|
MainClass.InfoLog("Flooring is " + (MainClass.Config.ReadFlooring ? "on" : "off"));
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("watered", "Toggle speaking watered or unwatered for crops.", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("watered", "Toggle speaking watered or unwatered for crops.", (string commmand, string[] args) =>
|
||||||
|
@ -37,7 +37,7 @@ namespace stardew_access
|
||||||
MainClass.Config.WateredToggle = !MainClass.Config.WateredToggle;
|
MainClass.Config.WateredToggle = !MainClass.Config.WateredToggle;
|
||||||
helper.WriteConfig(MainClass.Config);
|
helper.WriteConfig(MainClass.Config);
|
||||||
|
|
||||||
MainClass.DebugLog("Watered toggle is " + (MainClass.Config.WateredToggle ? "on" : "off"));
|
MainClass.InfoLog("Watered toggle is " + (MainClass.Config.WateredToggle ? "on" : "off"));
|
||||||
});
|
});
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -47,14 +47,14 @@ namespace stardew_access
|
||||||
MainClass.Config.Radar = !MainClass.Config.Radar;
|
MainClass.Config.Radar = !MainClass.Config.Radar;
|
||||||
helper.WriteConfig(MainClass.Config);
|
helper.WriteConfig(MainClass.Config);
|
||||||
|
|
||||||
MainClass.DebugLog("Radar " + (MainClass.Config.Radar ? "on" : "off"));
|
MainClass.InfoLog("Radar " + (MainClass.Config.Radar ? "on" : "off"));
|
||||||
});
|
});
|
||||||
|
|
||||||
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;
|
||||||
|
|
||||||
MainClass.DebugLog("Radar debugging " + (MainClass.radarDebug ? "on" : "off"));
|
MainClass.InfoLog("Radar debugging " + (MainClass.radarDebug ? "on" : "off"));
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("rstereo", "Toggle stereo sound in radar feature.", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("rstereo", "Toggle stereo sound in radar feature.", (string commmand, string[] args) =>
|
||||||
|
@ -62,14 +62,14 @@ namespace stardew_access
|
||||||
MainClass.Config.RadarStereoSound = !MainClass.Config.RadarStereoSound;
|
MainClass.Config.RadarStereoSound = !MainClass.Config.RadarStereoSound;
|
||||||
helper.WriteConfig(MainClass.Config);
|
helper.WriteConfig(MainClass.Config);
|
||||||
|
|
||||||
MainClass.DebugLog("Stereo sound is " + (MainClass.Config.RadarStereoSound ? "on" : "off"));
|
MainClass.InfoLog("Stereo sound is " + (MainClass.Config.RadarStereoSound ? "on" : "off"));
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("rfocus", "Toggle focus mode in radar feature.", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("rfocus", "Toggle focus mode in radar feature.", (string commmand, string[] args) =>
|
||||||
{
|
{
|
||||||
bool focus = MainClass.RadarFeature.ToggleFocus();
|
bool focus = MainClass.RadarFeature.ToggleFocus();
|
||||||
|
|
||||||
MainClass.DebugLog("Focus mode is " + (focus ? "on" : "off"));
|
MainClass.InfoLog("Focus mode is " + (focus ? "on" : "off"));
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("rdelay", "Set the delay of radar feature in milliseconds.", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("rdelay", "Set the delay of radar feature in milliseconds.", (string commmand, string[] args) =>
|
||||||
|
@ -88,19 +88,19 @@ namespace stardew_access
|
||||||
{
|
{
|
||||||
MainClass.RadarFeature.delay = delay;
|
MainClass.RadarFeature.delay = delay;
|
||||||
if (delay >= 1000)
|
if (delay >= 1000)
|
||||||
MainClass.DebugLog($"Delay set to {MainClass.RadarFeature.delay} milliseconds.");
|
MainClass.InfoLog($"Delay set to {MainClass.RadarFeature.delay} milliseconds.");
|
||||||
else
|
else
|
||||||
MainClass.DebugLog($"Delay should be atleast 1 second or 1000 millisecond long.");
|
MainClass.InfoLog($"Delay should be atleast 1 second or 1000 millisecond long.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Invalid delay amount, it can only be in numeric form.");
|
MainClass.InfoLog("Invalid delay amount, it can only be in numeric form.");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Enter the delay amount (in milliseconds)!");
|
MainClass.InfoLog("Enter the delay amount (in milliseconds)!");
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -121,19 +121,19 @@ namespace stardew_access
|
||||||
{
|
{
|
||||||
MainClass.RadarFeature.range = range;
|
MainClass.RadarFeature.range = range;
|
||||||
if (range >= 2 && range <= 10)
|
if (range >= 2 && range <= 10)
|
||||||
MainClass.DebugLog($"Range set to {MainClass.RadarFeature.range}.");
|
MainClass.InfoLog($"Range set to {MainClass.RadarFeature.range}.");
|
||||||
else
|
else
|
||||||
MainClass.DebugLog($"Range should be atleast 2 and maximum 10.");
|
MainClass.InfoLog($"Range should be atleast 2 and maximum 10.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Invalid range amount, it can only be in numeric form.");
|
MainClass.InfoLog("Invalid range amount, it can only be in numeric form.");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Enter the range amount!");
|
MainClass.InfoLog("Enter the range amount!");
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -152,16 +152,16 @@ namespace stardew_access
|
||||||
if (!MainClass.RadarFeature.exclusions.Contains(keyToAdd))
|
if (!MainClass.RadarFeature.exclusions.Contains(keyToAdd))
|
||||||
{
|
{
|
||||||
MainClass.RadarFeature.exclusions.Add(keyToAdd);
|
MainClass.RadarFeature.exclusions.Add(keyToAdd);
|
||||||
MainClass.DebugLog($"Added {keyToAdd} key to exclusions list.");
|
MainClass.InfoLog($"Added {keyToAdd} key to exclusions list.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog($"{keyToAdd} key already present in the list.");
|
MainClass.InfoLog($"{keyToAdd} key already present in the list.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Unable to add the key to exclusions list.");
|
MainClass.InfoLog("Unable to add the key to exclusions list.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -177,16 +177,16 @@ namespace stardew_access
|
||||||
if (MainClass.RadarFeature.exclusions.Contains(keyToAdd))
|
if (MainClass.RadarFeature.exclusions.Contains(keyToAdd))
|
||||||
{
|
{
|
||||||
MainClass.RadarFeature.exclusions.Remove(keyToAdd);
|
MainClass.RadarFeature.exclusions.Remove(keyToAdd);
|
||||||
MainClass.DebugLog($"Removed {keyToAdd} key from exclusions list.");
|
MainClass.InfoLog($"Removed {keyToAdd} key from exclusions list.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog($"Cannot find {keyToAdd} key in exclusions list.");
|
MainClass.InfoLog($"Cannot find {keyToAdd} key in exclusions list.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Unable to remove the key from exclusions list.");
|
MainClass.InfoLog("Unable to remove the key from exclusions list.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -199,23 +199,23 @@ namespace stardew_access
|
||||||
{
|
{
|
||||||
toPrint = $"{toPrint}\t{i + 1}: {MainClass.RadarFeature.exclusions[i]}";
|
toPrint = $"{toPrint}\t{i + 1}: {MainClass.RadarFeature.exclusions[i]}";
|
||||||
}
|
}
|
||||||
MainClass.DebugLog(toPrint);
|
MainClass.InfoLog(toPrint);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("No exclusions found.");
|
MainClass.InfoLog("No exclusions found.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("reclear", "Clear the focus exclusions in the radar featrure.", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("reclear", "Clear the focus exclusions in the radar featrure.", (string commmand, string[] args) =>
|
||||||
{
|
{
|
||||||
MainClass.RadarFeature.exclusions.Clear();
|
MainClass.RadarFeature.exclusions.Clear();
|
||||||
MainClass.DebugLog($"Cleared the focus list in the exclusions feature.");
|
MainClass.InfoLog($"Cleared the focus list in the exclusions feature.");
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("recount", "Number of exclusions in the radar feature.", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("recount", "Number of exclusions in the radar feature.", (string commmand, string[] args) =>
|
||||||
{
|
{
|
||||||
MainClass.DebugLog($"There are {MainClass.RadarFeature.exclusions.Count} exclusiond in the radar feature.");
|
MainClass.InfoLog($"There are {MainClass.RadarFeature.exclusions.Count} exclusiond in the radar feature.");
|
||||||
});
|
});
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -232,16 +232,16 @@ namespace stardew_access
|
||||||
if (!MainClass.RadarFeature.focus.Contains(keyToAdd))
|
if (!MainClass.RadarFeature.focus.Contains(keyToAdd))
|
||||||
{
|
{
|
||||||
MainClass.RadarFeature.focus.Add(keyToAdd);
|
MainClass.RadarFeature.focus.Add(keyToAdd);
|
||||||
MainClass.DebugLog($"Added {keyToAdd} key to focus list.");
|
MainClass.InfoLog($"Added {keyToAdd} key to focus list.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog($"{keyToAdd} key already present in the list.");
|
MainClass.InfoLog($"{keyToAdd} key already present in the list.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Unable to add the key to focus list.");
|
MainClass.InfoLog("Unable to add the key to focus list.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -257,16 +257,16 @@ namespace stardew_access
|
||||||
if (MainClass.RadarFeature.focus.Contains(keyToAdd))
|
if (MainClass.RadarFeature.focus.Contains(keyToAdd))
|
||||||
{
|
{
|
||||||
MainClass.RadarFeature.focus.Remove(keyToAdd);
|
MainClass.RadarFeature.focus.Remove(keyToAdd);
|
||||||
MainClass.DebugLog($"Removed {keyToAdd} key from focus list.");
|
MainClass.InfoLog($"Removed {keyToAdd} key from focus list.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog($"Cannot find {keyToAdd} key in focus list.");
|
MainClass.InfoLog($"Cannot find {keyToAdd} key in focus list.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Unable to remove the key from focus list.");
|
MainClass.InfoLog("Unable to remove the key from focus list.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -279,23 +279,23 @@ namespace stardew_access
|
||||||
{
|
{
|
||||||
toPrint = $"{toPrint}\t{i + 1}): {MainClass.RadarFeature.focus[i]}";
|
toPrint = $"{toPrint}\t{i + 1}): {MainClass.RadarFeature.focus[i]}";
|
||||||
}
|
}
|
||||||
MainClass.DebugLog(toPrint);
|
MainClass.InfoLog(toPrint);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("No objects found in the focus list.");
|
MainClass.InfoLog("No objects found in the focus list.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("rfclear", "Clear the focus list in the radar featrure.", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("rfclear", "Clear the focus list in the radar featrure.", (string commmand, string[] args) =>
|
||||||
{
|
{
|
||||||
MainClass.RadarFeature.focus.Clear();
|
MainClass.RadarFeature.focus.Clear();
|
||||||
MainClass.DebugLog($"Cleared the focus list in the radar feature.");
|
MainClass.InfoLog($"Cleared the focus list in the radar feature.");
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("rfcount", "Number of list in the radar feature.", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("rfcount", "Number of list in the radar feature.", (string commmand, string[] args) =>
|
||||||
{
|
{
|
||||||
MainClass.DebugLog($"There are {MainClass.RadarFeature.focus.Count} objects in the focus list in the radar feature.");
|
MainClass.InfoLog($"There are {MainClass.RadarFeature.focus.Count} objects in the focus list in the radar feature.");
|
||||||
});
|
});
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -306,14 +306,14 @@ namespace stardew_access
|
||||||
{
|
{
|
||||||
if (Game1.currentLocation is not Farm)
|
if (Game1.currentLocation is not Farm)
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Can only use this command in the farm");
|
MainClass.InfoLog("Can only use this command in the farm");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
string? indexInString = args.ElementAtOrDefault(0);
|
string? indexInString = args.ElementAtOrDefault(0);
|
||||||
if (indexInString == null)
|
if (indexInString == null)
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Enter the index too!");
|
MainClass.InfoLog("Enter the index too!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -322,12 +322,12 @@ namespace stardew_access
|
||||||
|
|
||||||
if (!isParsable || !(index >= 0 && index <= 9))
|
if (!isParsable || !(index >= 0 && index <= 9))
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Index can only be a number and from 0 to 9 only");
|
MainClass.InfoLog("Index can only be a number and from 0 to 9 only");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
BuildingNAnimalMenuPatches.marked[index] = new Vector2((int)Game1.player.getTileX(), (int)Game1.player.getTileY());
|
BuildingNAnimalMenuPatches.marked[index] = new Vector2((int)Game1.player.getTileX(), (int)Game1.player.getTileY());
|
||||||
MainClass.DebugLog($"Location {(int)Game1.player.getTileX()}x {(int)Game1.player.getTileY()}y added at {index} index.");
|
MainClass.InfoLog($"Location {(int)Game1.player.getTileX()}x {(int)Game1.player.getTileY()}y added at {index} index.");
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("marklist", "List all marked positions.", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("marklist", "List all marked positions.", (string commmand, string[] args) =>
|
||||||
|
@ -342,16 +342,16 @@ namespace stardew_access
|
||||||
}
|
}
|
||||||
|
|
||||||
if (toPrint == "")
|
if (toPrint == "")
|
||||||
MainClass.DebugLog("No positions marked!");
|
MainClass.InfoLog("No positions marked!");
|
||||||
else
|
else
|
||||||
MainClass.DebugLog($"Marked positions:{toPrint}\nOpen command menu and use pageup and pagedown to check the list");
|
MainClass.InfoLog($"Marked positions:{toPrint}\nOpen command menu and use pageup and pagedown to check the list");
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("buildlist", "List all buildings for selection for upgrading/demolishing/painting", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("buildlist", "List all buildings for selection for upgrading/demolishing/painting", (string commmand, string[] args) =>
|
||||||
{
|
{
|
||||||
if ((Game1.activeClickableMenu is not CarpenterMenu && Game1.activeClickableMenu is not PurchaseAnimalsMenu && Game1.activeClickableMenu is not AnimalQueryMenu) || !BuildingNAnimalMenuPatches.isOnFarm)
|
if ((Game1.activeClickableMenu is not CarpenterMenu && Game1.activeClickableMenu is not PurchaseAnimalsMenu && Game1.activeClickableMenu is not AnimalQueryMenu) || !BuildingNAnimalMenuPatches.isOnFarm)
|
||||||
{
|
{
|
||||||
MainClass.DebugLog($"Cannot list buildings.");
|
MainClass.InfoLog($"Cannot list buildings.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -372,11 +372,11 @@ namespace stardew_access
|
||||||
|
|
||||||
if (toPrint == "")
|
if (toPrint == "")
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("No appropriate buildings to list");
|
MainClass.InfoLog("No appropriate buildings to list");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MainClass.DebugLog($"Available buildings:{toPrint}\nOpen command menu and use pageup and pagedown to check the list");
|
MainClass.InfoLog($"Available buildings:{toPrint}\nOpen command menu and use pageup and pagedown to check the list");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -384,14 +384,14 @@ namespace stardew_access
|
||||||
{
|
{
|
||||||
if ((Game1.activeClickableMenu is not CarpenterMenu && Game1.activeClickableMenu is not PurchaseAnimalsMenu && Game1.activeClickableMenu is not AnimalQueryMenu) || !BuildingNAnimalMenuPatches.isOnFarm)
|
if ((Game1.activeClickableMenu is not CarpenterMenu && Game1.activeClickableMenu is not PurchaseAnimalsMenu && Game1.activeClickableMenu is not AnimalQueryMenu) || !BuildingNAnimalMenuPatches.isOnFarm)
|
||||||
{
|
{
|
||||||
MainClass.DebugLog($"Cannot select building.");
|
MainClass.InfoLog($"Cannot select building.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
string? indexInString = args.ElementAtOrDefault(0);
|
string? indexInString = args.ElementAtOrDefault(0);
|
||||||
if (indexInString == null)
|
if (indexInString == null)
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Enter the index of the building too! Use buildlist");
|
MainClass.InfoLog("Enter the index of the building too! Use buildlist");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -400,7 +400,7 @@ namespace stardew_access
|
||||||
|
|
||||||
if (!isParsable)
|
if (!isParsable)
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Index can only be a number.");
|
MainClass.InfoLog("Index can only be a number.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -414,13 +414,13 @@ namespace stardew_access
|
||||||
{
|
{
|
||||||
if (BuildingNAnimalMenuPatches.availableBuildings[index] == null)
|
if (BuildingNAnimalMenuPatches.availableBuildings[index] == null)
|
||||||
{
|
{
|
||||||
MainClass.DebugLog($"No building found with index {index}. Use buildlist.");
|
MainClass.InfoLog($"No building found with index {index}. Use buildlist.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (positionIndexInString == null)
|
if (positionIndexInString == null)
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Enter the index of marked place too! Use marklist.");
|
MainClass.InfoLog("Enter the index of marked place too! Use marklist.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -428,7 +428,7 @@ namespace stardew_access
|
||||||
|
|
||||||
if (!isParsable)
|
if (!isParsable)
|
||||||
{
|
{
|
||||||
MainClass.DebugLog("Index can only be a number.");
|
MainClass.InfoLog("Index can only be a number.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -437,7 +437,7 @@ namespace stardew_access
|
||||||
{
|
{
|
||||||
if (BuildingNAnimalMenuPatches.marked[index] == Vector2.Zero)
|
if (BuildingNAnimalMenuPatches.marked[index] == Vector2.Zero)
|
||||||
{
|
{
|
||||||
MainClass.DebugLog($"No marked position found at {index} index.");
|
MainClass.InfoLog($"No marked position found at {index} index.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -445,7 +445,7 @@ namespace stardew_access
|
||||||
{
|
{
|
||||||
if (BuildingNAnimalMenuPatches.availableBuildings[index] == null)
|
if (BuildingNAnimalMenuPatches.availableBuildings[index] == null)
|
||||||
{
|
{
|
||||||
MainClass.DebugLog($"No building found with index {index}. Use buildlist.");
|
MainClass.InfoLog($"No building found with index {index}. Use buildlist.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -471,7 +471,7 @@ namespace stardew_access
|
||||||
|
|
||||||
if (response != null)
|
if (response != null)
|
||||||
{
|
{
|
||||||
MainClass.DebugLog(response);
|
MainClass.InfoLog(response);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -481,21 +481,21 @@ namespace stardew_access
|
||||||
{
|
{
|
||||||
MainClass.ScreenReader.InitializeScreenReader();
|
MainClass.ScreenReader.InitializeScreenReader();
|
||||||
|
|
||||||
MainClass.DebugLog("Screen Reader refreshed!");
|
MainClass.InfoLog("Screen Reader refreshed!");
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("refmc", "Refresh mod config", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("refmc", "Refresh mod config", (string commmand, string[] args) =>
|
||||||
{
|
{
|
||||||
MainClass.Config = helper.ReadConfig<ModConfig>();
|
MainClass.Config = helper.ReadConfig<ModConfig>();
|
||||||
|
|
||||||
MainClass.DebugLog("Mod Config refreshed!");
|
MainClass.InfoLog("Mod Config refreshed!");
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("refst", "Refresh static tiles", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("refst", "Refresh static tiles", (string commmand, string[] args) =>
|
||||||
{
|
{
|
||||||
MainClass.STiles = new Features.StaticTiles();
|
MainClass.STiles = new Features.StaticTiles();
|
||||||
|
|
||||||
MainClass.DebugLog("Static tiles refreshed!");
|
MainClass.InfoLog("Static tiles refreshed!");
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("hnspercent", "Toggle between speaking in percentage or full health and stamina.", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("hnspercent", "Toggle between speaking in percentage or full health and stamina.", (string commmand, string[] args) =>
|
||||||
|
@ -503,7 +503,7 @@ namespace stardew_access
|
||||||
MainClass.Config.HealthNStaminaInPercentage = !MainClass.Config.HealthNStaminaInPercentage;
|
MainClass.Config.HealthNStaminaInPercentage = !MainClass.Config.HealthNStaminaInPercentage;
|
||||||
helper.WriteConfig(MainClass.Config);
|
helper.WriteConfig(MainClass.Config);
|
||||||
|
|
||||||
MainClass.DebugLog("Speaking in percentage is " + (MainClass.Config.HealthNStaminaInPercentage ? "on" : "off"));
|
MainClass.InfoLog("Speaking in percentage is " + (MainClass.Config.HealthNStaminaInPercentage ? "on" : "off"));
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("snapmouse", "Toggle snap mouse feature.", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("snapmouse", "Toggle snap mouse feature.", (string commmand, string[] args) =>
|
||||||
|
@ -511,7 +511,7 @@ namespace stardew_access
|
||||||
MainClass.Config.SnapMouse = !MainClass.Config.SnapMouse;
|
MainClass.Config.SnapMouse = !MainClass.Config.SnapMouse;
|
||||||
helper.WriteConfig(MainClass.Config);
|
helper.WriteConfig(MainClass.Config);
|
||||||
|
|
||||||
MainClass.DebugLog("Snap Mouse is " + (MainClass.Config.SnapMouse ? "on" : "off"));
|
MainClass.InfoLog("Snap Mouse is " + (MainClass.Config.SnapMouse ? "on" : "off"));
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("warning", "Toggle warnings feature.", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("warning", "Toggle warnings feature.", (string commmand, string[] args) =>
|
||||||
|
@ -519,7 +519,7 @@ namespace stardew_access
|
||||||
MainClass.Config.Warning = !MainClass.Config.Warning;
|
MainClass.Config.Warning = !MainClass.Config.Warning;
|
||||||
helper.WriteConfig(MainClass.Config);
|
helper.WriteConfig(MainClass.Config);
|
||||||
|
|
||||||
MainClass.DebugLog("Warnings is " + (MainClass.Config.Warning ? "on" : "off"));
|
MainClass.InfoLog("Warnings is " + (MainClass.Config.Warning ? "on" : "off"));
|
||||||
});
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("tts", "Toggles the screen reader/tts", (string commmand, string[] args) =>
|
helper.ConsoleCommands.Add("tts", "Toggles the screen reader/tts", (string commmand, string[] args) =>
|
||||||
|
@ -527,7 +527,7 @@ namespace stardew_access
|
||||||
MainClass.Config.TTS = !MainClass.Config.TTS;
|
MainClass.Config.TTS = !MainClass.Config.TTS;
|
||||||
helper.WriteConfig(MainClass.Config);
|
helper.WriteConfig(MainClass.Config);
|
||||||
|
|
||||||
MainClass.DebugLog("TTS is " + (MainClass.Config.TTS ? "on" : "off"));
|
MainClass.InfoLog("TTS is " + (MainClass.Config.TTS ? "on" : "off"));
|
||||||
});
|
});
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,6 +114,7 @@ namespace stardew_access
|
||||||
Game1.options.setGamepadMode("force_on");
|
Game1.options.setGamepadMode("force_on");
|
||||||
|
|
||||||
ScreenReader = new ScreenReaderController().Initialize();
|
ScreenReader = new ScreenReaderController().Initialize();
|
||||||
|
ScreenReader.Say("Initializing Stardew Access", true);
|
||||||
|
|
||||||
CustomSoundEffects.Initialize();
|
CustomSoundEffects.Initialize();
|
||||||
|
|
||||||
|
@ -346,6 +347,14 @@ namespace stardew_access
|
||||||
monitor.Log(message, LogLevel.Error);
|
monitor.Log(message, LogLevel.Error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void InfoLog(string message)
|
||||||
|
{
|
||||||
|
if (monitor == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
monitor.Log(message, LogLevel.Info);
|
||||||
|
}
|
||||||
|
|
||||||
public static void DebugLog(string message)
|
public static void DebugLog(string message)
|
||||||
{
|
{
|
||||||
if (monitor == null)
|
if (monitor == null)
|
||||||
|
|
|
@ -41,10 +41,16 @@ namespace stardew_access.ScreenReader
|
||||||
|
|
||||||
public void InitializeScreenReader()
|
public void InitializeScreenReader()
|
||||||
{
|
{
|
||||||
|
MainClass.InfoLog("Initializing speech dispatcher...");
|
||||||
int res = Initialize();
|
int res = Initialize();
|
||||||
if (res == 1)
|
if (res == 1)
|
||||||
{
|
{
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
MainClass.InfoLog("Successfully initialized.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MainClass.ErrorLog("Unable to initialize.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,7 +77,16 @@ namespace stardew_access.ScreenReader
|
||||||
if (text.Contains('^')) text = text.Replace('^', '\n');
|
if (text.Contains('^')) text = text.Replace('^', '\n');
|
||||||
|
|
||||||
GoString str = new GoString(text, text.Length);
|
GoString str = new GoString(text, text.Length);
|
||||||
Speak(str, interrupt);
|
int re = Speak(str, interrupt);
|
||||||
|
|
||||||
|
if (re == 1)
|
||||||
|
{
|
||||||
|
MainClass.DebugLog($"Speaking(interrupt: {interrupt}) = {text}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MainClass.ErrorLog($"Failed to output text: {text}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SayWithChecker(string text, bool interrupt)
|
public void SayWithChecker(string text, bool interrupt)
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
using AccessibleOutput;
|
using DavyKager;
|
||||||
|
|
||||||
namespace stardew_access.ScreenReader
|
namespace stardew_access.ScreenReader
|
||||||
{
|
{
|
||||||
public class ScreenReaderWindows : IScreenReader
|
public class ScreenReaderWindows : IScreenReader
|
||||||
{
|
{
|
||||||
public IAccessibleOutput? screenReader = null;
|
private bool isLoaded = false;
|
||||||
public string prevText = "", prevTextTile = " ", prevChatText = "", prevMenuText = "";
|
public string prevText = "", prevTextTile = " ", prevChatText = "", prevMenuText = "";
|
||||||
|
|
||||||
public string PrevTextTile
|
public string PrevTextTile
|
||||||
|
@ -15,43 +15,30 @@ namespace stardew_access.ScreenReader
|
||||||
|
|
||||||
public void InitializeScreenReader()
|
public void InitializeScreenReader()
|
||||||
{
|
{
|
||||||
|
MainClass.InfoLog("Initializing Tolk...");
|
||||||
|
Tolk.Load();
|
||||||
|
|
||||||
NvdaOutput? nvdaOutput = null;
|
MainClass.InfoLog("Querying for the active screen reader driver...");
|
||||||
JawsOutput? jawsOutput = null;
|
string name = Tolk.DetectScreenReader();
|
||||||
SapiOutput? sapiOutput = null;
|
if (name != null)
|
||||||
|
|
||||||
// Initialize NVDA
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
nvdaOutput = new NvdaOutput();
|
MainClass.InfoLog($"The active screen reader driver is: {name}");
|
||||||
|
isLoaded = true;
|
||||||
}
|
}
|
||||||
catch (Exception) { }
|
else
|
||||||
|
|
||||||
// Initialize JAWS
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
jawsOutput = new JawsOutput();
|
MainClass.ErrorLog("None of the supported screen readers is running");
|
||||||
|
isLoaded = false;
|
||||||
}
|
}
|
||||||
catch (Exception) { }
|
|
||||||
|
|
||||||
// Initialize SAPI
|
|
||||||
try
|
|
||||||
{
|
|
||||||
sapiOutput = new SapiOutput();
|
|
||||||
}
|
|
||||||
catch (Exception) { }
|
|
||||||
|
|
||||||
if (nvdaOutput != null && nvdaOutput.IsAvailable())
|
|
||||||
screenReader = nvdaOutput;
|
|
||||||
else if (jawsOutput != null && jawsOutput.IsAvailable())
|
|
||||||
screenReader = jawsOutput;
|
|
||||||
else if (sapiOutput != null && sapiOutput.IsAvailable())
|
|
||||||
screenReader = sapiOutput;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CloseScreenReader()
|
public void CloseScreenReader()
|
||||||
{
|
{
|
||||||
|
if (isLoaded)
|
||||||
|
{
|
||||||
|
Tolk.Unload();
|
||||||
|
isLoaded = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Say(string text, bool interrupt)
|
public void Say(string text, bool interrupt)
|
||||||
|
@ -59,7 +46,7 @@ namespace stardew_access.ScreenReader
|
||||||
if (text == null)
|
if (text == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (screenReader == null)
|
if (!isLoaded)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!MainClass.Config.TTS)
|
if (!MainClass.Config.TTS)
|
||||||
|
@ -67,7 +54,14 @@ namespace stardew_access.ScreenReader
|
||||||
|
|
||||||
if (text.Contains('^')) text = text.Replace('^', '\n');
|
if (text.Contains('^')) text = text.Replace('^', '\n');
|
||||||
|
|
||||||
screenReader.Speak(text, interrupt);
|
if (Tolk.Output("Hello, World!"))
|
||||||
|
{
|
||||||
|
MainClass.DebugLog($"Speaking(interrupt: {interrupt}) = {text}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MainClass.ErrorLog($"Failed to output text: {text}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SayWithChecker(string text, bool interrupt)
|
public void SayWithChecker(string text, bool interrupt)
|
||||||
|
|
|
@ -12,9 +12,9 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="AccessibleOutput" Version="1.0.0" />
|
|
||||||
<PackageReference Include="Lib.Harmony" Version="2.2.0" />
|
<PackageReference Include="Lib.Harmony" Version="2.2.0" />
|
||||||
<PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.0.0" />
|
<PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.0.0" />
|
||||||
|
<Reference Include="./TolkDotNet.dll" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
Loading…
Reference in New Issue