Made radar loop and testing path finder
parent
ac9957954e
commit
88e56419c9
|
@ -11,9 +11,11 @@ namespace stardew_access.Game
|
||||||
private List<Vector2> closed;
|
private List<Vector2> closed;
|
||||||
private List<Furniture> furnitures;
|
private List<Furniture> furnitures;
|
||||||
public List<string> exclusions;
|
public List<string> exclusions;
|
||||||
|
public bool isRunning;
|
||||||
|
|
||||||
public Radar()
|
public Radar()
|
||||||
{
|
{
|
||||||
|
isRunning = false;
|
||||||
closed = new List<Vector2>();
|
closed = new List<Vector2>();
|
||||||
furnitures = new List<Furniture>();
|
furnitures = new List<Furniture>();
|
||||||
exclusions = new List<string>();
|
exclusions = new List<string>();
|
||||||
|
@ -32,18 +34,18 @@ namespace stardew_access.Game
|
||||||
exclusions.Add("flooring");
|
exclusions.Add("flooring");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run()
|
public async void run()
|
||||||
{
|
{
|
||||||
Stopwatch sw = new Stopwatch();
|
isRunning = true;
|
||||||
sw.Start();
|
|
||||||
Vector2 currPosition = Game1.player.getTileLocation();
|
Vector2 currPosition = Game1.player.getTileLocation();
|
||||||
int limit = 5;
|
int limit = 5;
|
||||||
|
|
||||||
closed.Clear();
|
closed.Clear();
|
||||||
furnitures.Clear();
|
furnitures.Clear();
|
||||||
findTile(currPosition, currPosition, limit);
|
findTile(currPosition, currPosition, limit);
|
||||||
sw.Stop();
|
|
||||||
MainClass.monitor.Log($"Time taken:{sw.ElapsedMilliseconds}ms", StardewModdingAPI.LogLevel.Debug);
|
await Task.Delay(3000);
|
||||||
|
isRunning = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void findTile(Vector2 position, Vector2 center, int limit)
|
public void findTile(Vector2 position, Vector2 center, int limit)
|
||||||
|
@ -78,7 +80,7 @@ namespace stardew_access.Game
|
||||||
string? obj = ReadTile.getObjectNameAtTile((int)position.X, (int)position.Y);
|
string? obj = ReadTile.getObjectNameAtTile((int)position.X, (int)position.Y);
|
||||||
StardewValley.Object @object = Game1.currentLocation.getObjectAtTile((int)position.X, (int)position.Y);
|
StardewValley.Object @object = Game1.currentLocation.getObjectAtTile((int)position.X, (int)position.Y);
|
||||||
|
|
||||||
if (@object is Furniture)
|
if (@object is Furniture && !exclusions.Contains("furniture"))
|
||||||
{
|
{
|
||||||
if (!furnitures.Contains(@object as Furniture))
|
if (!furnitures.Contains(@object as Furniture))
|
||||||
{
|
{
|
||||||
|
@ -149,11 +151,6 @@ namespace stardew_access.Game
|
||||||
Game1.currentLocation.localSoundAt("sa_poi", position);
|
Game1.currentLocation.localSoundAt("sa_poi", position);
|
||||||
MainClass.monitor.Log($"LEAF:{terrain}\tX:{position.X}\tY:{position.Y}", StardewModdingAPI.LogLevel.Debug);
|
MainClass.monitor.Log($"LEAF:{terrain}\tX:{position.X}\tY:{position.Y}", StardewModdingAPI.LogLevel.Debug);
|
||||||
}
|
}
|
||||||
else if(!exclusions.Contains(terrain.ToLower()))
|
|
||||||
{
|
|
||||||
Game1.currentLocation.localSoundAt("sa_poi", position);
|
|
||||||
MainClass.monitor.Log($"TERRAIN:{tr}\tX:{position.X}\tY:{position.Y}", StardewModdingAPI.LogLevel.Debug);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,11 +17,11 @@ namespace stardew_access
|
||||||
public class MainClass : Mod
|
public class MainClass : Mod
|
||||||
{
|
{
|
||||||
private Harmony? harmony;
|
private Harmony? harmony;
|
||||||
private static bool readTile = true, snapMouse = true, isNarratingHudMessage = false;
|
private static bool readTile = true, snapMouse = true, isNarratingHudMessage = false, radar = false;
|
||||||
public static IMonitor? monitor;
|
public static IMonitor? monitor;
|
||||||
AutoHotkeyEngine ahk;
|
AutoHotkeyEngine ahk;
|
||||||
public static string hudMessageQueryKey = "";
|
public static string hudMessageQueryKey = "";
|
||||||
public static Radar radar;
|
public static Radar radarFeature;
|
||||||
|
|
||||||
/*********
|
/*********
|
||||||
** Public methods
|
** Public methods
|
||||||
|
@ -55,7 +55,7 @@ namespace stardew_access
|
||||||
|
|
||||||
harmony = new Harmony(ModManifest.UniqueID); // Init harmony
|
harmony = new Harmony(ModManifest.UniqueID); // Init harmony
|
||||||
|
|
||||||
radar = new Radar();
|
radarFeature = new Radar();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -236,6 +236,20 @@ namespace stardew_access
|
||||||
monitor.Log("Snap Mouse is " + (snapMouse ? "on" : "off"), LogLevel.Info);
|
monitor.Log("Snap Mouse is " + (snapMouse ? "on" : "off"), LogLevel.Info);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
helper.ConsoleCommands.Add("radar", "Toggle radar feature", (string arg1, string[] arg2) =>
|
||||||
|
{
|
||||||
|
radar = !radar;
|
||||||
|
|
||||||
|
monitor.Log("Radar " + (snapMouse ? "on" : "off"), LogLevel.Info);
|
||||||
|
});
|
||||||
|
|
||||||
|
helper.ConsoleCommands.Add("r_in", "Include an object to radar", (string arg1, string[] arg2) =>
|
||||||
|
{
|
||||||
|
radar = !radar;
|
||||||
|
|
||||||
|
monitor.Log("Radar " + (snapMouse ? "on" : "off"), LogLevel.Info);
|
||||||
|
});
|
||||||
|
|
||||||
helper.ConsoleCommands.Add("ref_sr", "Refresh screen reader", (string arg1, string[] arg2) =>
|
helper.ConsoleCommands.Add("ref_sr", "Refresh screen reader", (string arg1, string[] arg2) =>
|
||||||
{
|
{
|
||||||
ScreenReader.initializeScreenReader();
|
ScreenReader.initializeScreenReader();
|
||||||
|
@ -272,7 +286,7 @@ namespace stardew_access
|
||||||
collidingCueDef.instanceLimit = 1;
|
collidingCueDef.instanceLimit = 1;
|
||||||
collidingCueDef.limitBehavior = CueDefinition.LimitBehavior.ReplaceOldest;
|
collidingCueDef.limitBehavior = CueDefinition.LimitBehavior.ReplaceOldest;
|
||||||
SoundEffect collidingAudio;
|
SoundEffect collidingAudio;
|
||||||
string collidingFilePath = Path.Combine(Path.Combine(this.Helper.DirectoryPath), "sounds/colliding.ogg");
|
string collidingFilePath = Path.Combine(Path.Combine(this.Helper.DirectoryPath), "sounds/colliding.wav");
|
||||||
using (FileStream stream = new(collidingFilePath, FileMode.Open))
|
using (FileStream stream = new(collidingFilePath, FileMode.Open))
|
||||||
{
|
{
|
||||||
collidingAudio = SoundEffect.FromStream(stream);
|
collidingAudio = SoundEffect.FromStream(stream);
|
||||||
|
@ -284,7 +298,7 @@ namespace stardew_access
|
||||||
CueDefinition poiCueDef = new CueDefinition();
|
CueDefinition poiCueDef = new CueDefinition();
|
||||||
poiCueDef.name = "sa_poi";
|
poiCueDef.name = "sa_poi";
|
||||||
SoundEffect poiAudio;
|
SoundEffect poiAudio;
|
||||||
string poiFilePath = Path.Combine(Path.Combine(this.Helper.DirectoryPath), "sounds/sound1.ogg");
|
string poiFilePath = Path.Combine(Path.Combine(this.Helper.DirectoryPath), "sounds/sound1.wav");
|
||||||
using (FileStream stream = new(poiFilePath, FileMode.Open))
|
using (FileStream stream = new(poiFilePath, FileMode.Open))
|
||||||
{
|
{
|
||||||
poiAudio = SoundEffect.FromStream(stream);
|
poiAudio = SoundEffect.FromStream(stream);
|
||||||
|
@ -321,6 +335,9 @@ namespace stardew_access
|
||||||
if(!ReadTile.isReadingTile && readTile)
|
if(!ReadTile.isReadingTile && readTile)
|
||||||
ReadTile.run();
|
ReadTile.run();
|
||||||
|
|
||||||
|
if(!radarFeature.isRunning && radar)
|
||||||
|
radarFeature.run();
|
||||||
|
|
||||||
if (!isNarratingHudMessage)
|
if (!isNarratingHudMessage)
|
||||||
{
|
{
|
||||||
narrateHudMessages();
|
narrateHudMessages();
|
||||||
|
@ -369,7 +386,8 @@ namespace stardew_access
|
||||||
// Manual read tile
|
// Manual read tile
|
||||||
if (Equals(e.Button, SButton.B))
|
if (Equals(e.Button, SButton.B))
|
||||||
{
|
{
|
||||||
radar.run();
|
Game1.player.controller = new PathFindController(Game1.player, Game1.currentLocation, new Point(49,13), 2);
|
||||||
|
monitor.Log($"{Game1.player.controller.pathToEndPoint==null}", LogLevel.Debug); // true if path not found
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue