IW4M-Admin/Plugins/LiveRadar/RadarEvent.cs

66 lines
2.1 KiB
C#
Raw Normal View History

using Data.Models;
using SharedLibraryCore;
2019-06-30 14:37:59 -04:00
using System;
using System.Linq;
2022-01-26 11:32:16 -05:00
// ReSharper disable CompareOfFloatsByEqualityOperator
2019-06-30 14:37:59 -04:00
namespace LiveRadar
{
public class RadarEvent
{
public string Name { get; set; }
public long Guid { get; set; }
public Vector3 Location { get; set; }
public Vector3 ViewAngles { get; set; }
public string Team { get; set; }
public int Kills { get; set; }
public int Deaths { get; set; }
public int Score { get; set; }
2019-07-05 21:53:03 -04:00
public int PlayTime { get; set; }
2019-06-30 14:37:59 -04:00
public string Weapon { get; set; }
public int Health { get; set; }
public bool IsAlive { get; set; }
public Vector3 RadianAngles => new Vector3(ViewAngles.X.ToRadians(), ViewAngles.Y.ToRadians(), ViewAngles.Z.ToRadians());
2019-07-02 18:30:05 -04:00
public int Id => GetHashCode();
2022-01-26 11:32:16 -05:00
#pragma warning disable CS0659
2019-07-02 18:30:05 -04:00
public override bool Equals(object obj)
2022-01-26 11:32:16 -05:00
#pragma warning restore CS0659
2019-07-02 18:30:05 -04:00
{
if (obj is RadarEvent re)
{
return re.ViewAngles.X == ViewAngles.X &&
re.ViewAngles.Y == ViewAngles.Y &&
re.ViewAngles.Z == ViewAngles.Z &&
re.Location.X == Location.X &&
re.Location.Y == Location.Y &&
re.Location.Z == Location.Z;
}
return false;
}
2019-06-30 14:37:59 -04:00
public static RadarEvent Parse(string input, long generatedBotGuid)
2019-06-30 14:37:59 -04:00
{
2019-07-05 21:53:03 -04:00
var items = input.Split(';').Skip(1).ToList();
2019-06-30 14:37:59 -04:00
var parsedEvent = new RadarEvent()
{
Guid = generatedBotGuid,
2019-06-30 14:37:59 -04:00
Location = Vector3.Parse(items[1]),
2019-07-02 18:30:05 -04:00
ViewAngles = Vector3.Parse(items[2]).FixIW4Angles(),
2019-06-30 14:37:59 -04:00
Team = items[3],
Kills = int.Parse(items[4]),
Deaths = int.Parse(items[5]),
Score = int.Parse(items[6]),
Weapon = items[7],
Health = int.Parse(items[8]),
2019-07-05 21:53:03 -04:00
IsAlive = items[9] == "1",
PlayTime = Convert.ToInt32(items[10])
2019-06-30 14:37:59 -04:00
};
return parsedEvent;
}
}
}