mirror of
https://github.com/BubbaGumpShrump/AutoTrackR2.git
synced 2025-06-19 04:59:07 +00:00
Fix locations
This commit is contained in:
parent
90d24b4d9b
commit
39409d4ea3
9 changed files with 55 additions and 22 deletions
|
@ -131,13 +131,15 @@ public partial class HomePage : UserControl
|
||||||
};
|
};
|
||||||
|
|
||||||
// Ship
|
// Ship
|
||||||
TrackREventDispatcher.JumpDriveStateChangedEvent += (shipName) =>
|
TrackREventDispatcher.JumpDriveStateChangedEvent += (data) =>
|
||||||
{
|
{
|
||||||
Dispatcher.Invoke(() =>
|
Dispatcher.Invoke(() =>
|
||||||
{
|
{
|
||||||
PlayerShipTextBox.Text = LocalPlayerData.CurrentGameMode == GameMode.PersistentUniverse ? shipName : "Unknown";
|
PlayerShipTextBox.Text = data.ShipName;
|
||||||
|
Console.WriteLine(data.ShipName);
|
||||||
AdjustFontSize(PlayerShipTextBox);
|
AdjustFontSize(PlayerShipTextBox);
|
||||||
LocalPlayerData.PlayerShip = shipName;
|
LocalPlayerData.PlayerShip = data.ShipName;
|
||||||
|
LocalPlayerData.LastSeenVehicleLocation = data.Location;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -170,6 +172,7 @@ public partial class HomePage : UserControl
|
||||||
{
|
{
|
||||||
EnemyPilot = actorDeathData.VictimPilot,
|
EnemyPilot = actorDeathData.VictimPilot,
|
||||||
EnemyShip = actorDeathData.VictimShip,
|
EnemyShip = actorDeathData.VictimShip,
|
||||||
|
Location = LocalPlayerData.LastSeenVehicleLocation,
|
||||||
OrgAffiliation = playerData?.OrgName,
|
OrgAffiliation = playerData?.OrgName,
|
||||||
Weapon = actorDeathData.Weapon,
|
Weapon = actorDeathData.Weapon,
|
||||||
Ship = LocalPlayerData.PlayerShip ?? "Unknown",
|
Ship = LocalPlayerData.PlayerShip ?? "Unknown",
|
||||||
|
|
|
@ -14,5 +14,5 @@ public static class LocalPlayerData
|
||||||
public static string? PlayerShip;
|
public static string? PlayerShip;
|
||||||
public static string? GameVersion;
|
public static string? GameVersion;
|
||||||
public static GameMode CurrentGameMode;
|
public static GameMode CurrentGameMode;
|
||||||
public static string? LastSeenVehicleLocation;
|
public static string? LastSeenVehicleLocation = "Unknown";
|
||||||
}
|
}
|
|
@ -2,6 +2,12 @@
|
||||||
|
|
||||||
namespace AutoTrackR2.LogEventHandlers;
|
namespace AutoTrackR2.LogEventHandlers;
|
||||||
|
|
||||||
|
public struct JumpDriveStateChangedData
|
||||||
|
{
|
||||||
|
public string ShipName { get; set; }
|
||||||
|
public string Location { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class JumpDriveStateChangedEvent : ILogEventHandler
|
public class JumpDriveStateChangedEvent : ILogEventHandler
|
||||||
{
|
{
|
||||||
public Regex Pattern { get; }
|
public Regex Pattern { get; }
|
||||||
|
@ -9,7 +15,7 @@ public class JumpDriveStateChangedEvent : ILogEventHandler
|
||||||
|
|
||||||
public JumpDriveStateChangedEvent()
|
public JumpDriveStateChangedEvent()
|
||||||
{
|
{
|
||||||
Pattern = new Regex(@"<Jump Drive State Changed>.*.adam: (?<ShipName>.*.) in");
|
Pattern = new Regex(@"<Jump Drive State Changed>.*.adam: (?<ShipName>.*.) in zone (?<Location>.*.)\)");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Handle(LogEntry entry)
|
public void Handle(LogEntry entry)
|
||||||
|
@ -17,11 +23,20 @@ public class JumpDriveStateChangedEvent : ILogEventHandler
|
||||||
if (entry.Message is null) return;
|
if (entry.Message is null) return;
|
||||||
var match = Pattern.Match(entry.Message);
|
var match = Pattern.Match(entry.Message);
|
||||||
if (!match.Success) return;
|
if (!match.Success) return;
|
||||||
|
|
||||||
|
var data = new JumpDriveStateChangedData
|
||||||
|
{
|
||||||
|
Location = match.Groups["Location"].Value
|
||||||
|
};
|
||||||
|
|
||||||
match = _cleanUpPattern.Match(match.Groups["ShipName"].Value);
|
match = _cleanUpPattern.Match(match.Groups["ShipName"].Value);
|
||||||
if (match.Success)
|
if (match.Success)
|
||||||
{
|
{
|
||||||
TrackREventDispatcher.OnJumpDriveStateChangedEvent(match.Groups[1].Value);;
|
data.ShipName = match.Groups[1].Value;
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrEmpty(data.ShipName) && !string.IsNullOrEmpty(data.Location))
|
||||||
|
{
|
||||||
|
TrackREventDispatcher.OnJumpDriveStateChangedEvent(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -9,7 +9,7 @@ public class RequestJumpFailedEvent : ILogEventHandler
|
||||||
|
|
||||||
public RequestJumpFailedEvent()
|
public RequestJumpFailedEvent()
|
||||||
{
|
{
|
||||||
Pattern = new Regex(@"<Request Jump Failed>.*.adam: (?<ShipName>.*.) in");
|
Pattern = new Regex(@"<Request Jump Failed>.*.adam: (?<ShipName>.*.) in zone (?<Location>.*.)\)");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Handle(LogEntry entry)
|
public void Handle(LogEntry entry)
|
||||||
|
@ -18,10 +18,20 @@ public class RequestJumpFailedEvent : ILogEventHandler
|
||||||
var match = Pattern.Match(entry.Message);
|
var match = Pattern.Match(entry.Message);
|
||||||
if (!match.Success) return;
|
if (!match.Success) return;
|
||||||
|
|
||||||
|
var data = new JumpDriveStateChangedData
|
||||||
|
{
|
||||||
|
Location = match.Groups["Location"].Value
|
||||||
|
};
|
||||||
|
|
||||||
match = _cleanUpPattern.Match(match.Groups["ShipName"].Value);
|
match = _cleanUpPattern.Match(match.Groups["ShipName"].Value);
|
||||||
if (match.Success)
|
if (match.Success)
|
||||||
{
|
{
|
||||||
TrackREventDispatcher.OnJumpDriveStateChangedEvent(match.Groups[1].Value);;
|
data.ShipName = match.Groups[1].Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(data.ShipName) && !string.IsNullOrEmpty(data.Location))
|
||||||
|
{
|
||||||
|
TrackREventDispatcher.OnJumpDriveStateChangedEvent(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -21,14 +21,16 @@ public class VehicleDestructionEvent : ILogEventHandler
|
||||||
public Regex Pattern { get; }
|
public Regex Pattern { get; }
|
||||||
public VehicleDestructionEvent()
|
public VehicleDestructionEvent()
|
||||||
{
|
{
|
||||||
Pattern = new Regex("""
|
const string patternStr = """
|
||||||
"<(?<timestamp>[^>]+)> \[Notice\] <Vehicle Destruction> CVehicle::OnAdvanceDestroyLevel: " +
|
<(?<timestamp>[^>]+)> \[Notice\] <Vehicle Destruction> CVehicle::OnAdvanceDestroyLevel:
|
||||||
"Vehicle '(?<vehicle>[^']+)' \[\d+\] in zone '(?<vehicle_zone>[^']+)' " +
|
Vehicle '(?<vehicle>[^']+)' \[\d+\] in zone '(?<vehicle_zone>[^']+)'
|
||||||
"\[pos x: (?<pos_x>[-\d\.]+), y: (?<pos_y>[-\d\.]+), z: (?<pos_z>[-\d\.]+) " +
|
\[pos x: (?<pos_x>[-\d\.]+), y: (?<pos_y>[-\d\.]+), z: (?<pos_z>[-\d\.]+)
|
||||||
"vel x: [^,]+, y: [^,]+, z: [^\]]+\] driven by '(?<driver>[^']+)' \[\d+\] " +
|
vel x: [^,]+, y: [^,]+, z: [^\]]+\] driven by '(?<driver>[^']+)' \[\d+\]
|
||||||
"advanced from destroy level (?<destroy_level_from>\d+) to (?<destroy_level_to>\d+) " +
|
advanced from destroy level (?<destroy_level_from>\d+) to (?<destroy_level_to>\d+)
|
||||||
"caused by '(?<caused_by>[^']+)' \[\d+\] with '(?<damage_type>[^']+)'"
|
caused by '(?<caused_by>[^']+)' \[\d+\] with '(?<damage_type>[^']+)'
|
||||||
""");
|
""";
|
||||||
|
|
||||||
|
Pattern = new Regex(Regex.Replace(patternStr, @"\t|\n|\r", ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Handle(LogEntry entry)
|
public void Handle(LogEntry entry)
|
||||||
|
|
|
@ -42,7 +42,8 @@ public class LogHandler
|
||||||
new InPersistentUniverseEvent(),
|
new InPersistentUniverseEvent(),
|
||||||
new GameVersionEvent(),
|
new GameVersionEvent(),
|
||||||
new JumpDriveStateChangedEvent(),
|
new JumpDriveStateChangedEvent(),
|
||||||
new RequestJumpFailedEvent()
|
new RequestJumpFailedEvent(),
|
||||||
|
new VehicleDestructionEvent()
|
||||||
];
|
];
|
||||||
|
|
||||||
public LogHandler(string? logPath)
|
public LogHandler(string? logPath)
|
||||||
|
|
|
@ -49,9 +49,9 @@ public static class TrackREventDispatcher
|
||||||
|
|
||||||
// Jump Drive state has changed
|
// Jump Drive state has changed
|
||||||
// Todo: Add proper data for this event. Right now only ship name is used.
|
// Todo: Add proper data for this event. Right now only ship name is used.
|
||||||
public static event Action<string>? JumpDriveStateChangedEvent;
|
public static event Action<JumpDriveStateChangedData>? JumpDriveStateChangedEvent;
|
||||||
public static void OnJumpDriveStateChangedEvent(string shipName)
|
public static void OnJumpDriveStateChangedEvent(JumpDriveStateChangedData data)
|
||||||
{
|
{
|
||||||
JumpDriveStateChangedEvent?.Invoke(shipName);
|
JumpDriveStateChangedEvent?.Invoke(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -19,6 +19,7 @@ public struct KillData
|
||||||
public string? Enlisted;
|
public string? Enlisted;
|
||||||
public string? RecordNumber;
|
public string? RecordNumber;
|
||||||
public string? OrgAffiliation;
|
public string? OrgAffiliation;
|
||||||
|
public string? Location;
|
||||||
public string? Player;
|
public string? Player;
|
||||||
public string? Weapon;
|
public string? Weapon;
|
||||||
public string? Ship;
|
public string? Ship;
|
||||||
|
|
|
@ -94,7 +94,7 @@ public static class WebHandler
|
||||||
loadout_ship = killData.Ship,
|
loadout_ship = killData.Ship,
|
||||||
game_version = killData.GameVersion,
|
game_version = killData.GameVersion,
|
||||||
trackr_version = killData.TrackRver,
|
trackr_version = killData.TrackRver,
|
||||||
location = "Unknown",
|
location = killData.Location,
|
||||||
time = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
|
time = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -123,6 +123,7 @@ public static class WebHandler
|
||||||
Console.WriteLine($"API URL: {ConfigManager.ApiUrl}register-kill");
|
Console.WriteLine($"API URL: {ConfigManager.ApiUrl}register-kill");
|
||||||
Console.WriteLine($"Victim: {apiKillData.victim}");
|
Console.WriteLine($"Victim: {apiKillData.victim}");
|
||||||
Console.WriteLine($"Victim Ship: {apiKillData.victim_ship}");
|
Console.WriteLine($"Victim Ship: {apiKillData.victim_ship}");
|
||||||
|
Console.WriteLine($"Location: {apiKillData.location}");
|
||||||
Console.WriteLine($"Weapon: {apiKillData.weapon}");
|
Console.WriteLine($"Weapon: {apiKillData.weapon}");
|
||||||
Console.WriteLine($"Method: {apiKillData.method}");
|
Console.WriteLine($"Method: {apiKillData.method}");
|
||||||
Console.WriteLine($"Game Mode: {apiKillData.gamemode}");
|
Console.WriteLine($"Game Mode: {apiKillData.gamemode}");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue