huge refactor
This commit is contained in:
parent
e5ebe05571
commit
a8341e8232
29 changed files with 3184 additions and 340 deletions
|
|
@ -3,8 +3,6 @@ using System.Numerics;
|
|||
using Roboto.Memory;
|
||||
using Roboto.Core;
|
||||
using Serilog;
|
||||
using MemEntity = Roboto.Memory.Entity;
|
||||
using MemEntityType = Roboto.Memory.EntityType;
|
||||
|
||||
namespace Roboto.Data;
|
||||
|
||||
|
|
@ -288,7 +286,7 @@ public sealed class MemoryPoller : IDisposable
|
|||
{
|
||||
if (e.Address == snap.LocalPlayerPtr) continue;
|
||||
|
||||
var es = MapEntity(e, playerPos);
|
||||
var es = EntityMapper.MapEntity(e, playerPos);
|
||||
allEntities.Add(es);
|
||||
|
||||
if (es.Category == EntityCategory.Monster && es.IsAlive)
|
||||
|
|
@ -315,54 +313,6 @@ public sealed class MemoryPoller : IDisposable
|
|||
return state;
|
||||
}
|
||||
|
||||
private static EntitySnapshot MapEntity(MemEntity e, Vector2 playerPos)
|
||||
{
|
||||
var pos = e.HasPosition ? new Vector2(e.X, e.Y) : Vector2.Zero;
|
||||
var dist = e.HasPosition ? Vector2.Distance(pos, playerPos) : float.MaxValue;
|
||||
|
||||
return new EntitySnapshot
|
||||
{
|
||||
Id = e.Id,
|
||||
Path = e.Path,
|
||||
Category = MapCategory(e.Type),
|
||||
ThreatLevel = MapThreatLevel(e),
|
||||
Position = pos,
|
||||
DistanceToPlayer = dist,
|
||||
IsAlive = e.IsAlive || !e.HasVitals,
|
||||
LifeCurrent = e.LifeCurrent,
|
||||
LifeTotal = e.LifeTotal,
|
||||
IsTargetable = e.IsTargetable,
|
||||
Components = e.Components,
|
||||
};
|
||||
}
|
||||
|
||||
private static EntityCategory MapCategory(MemEntityType type) => type switch
|
||||
{
|
||||
MemEntityType.Player => EntityCategory.Player,
|
||||
MemEntityType.Monster => EntityCategory.Monster,
|
||||
MemEntityType.Npc => EntityCategory.Npc,
|
||||
MemEntityType.WorldItem => EntityCategory.WorldItem,
|
||||
MemEntityType.Chest => EntityCategory.Chest,
|
||||
MemEntityType.Portal or MemEntityType.TownPortal => EntityCategory.Portal,
|
||||
MemEntityType.AreaTransition => EntityCategory.AreaTransition,
|
||||
MemEntityType.Effect => EntityCategory.Effect,
|
||||
MemEntityType.Terrain => EntityCategory.Terrain,
|
||||
_ => EntityCategory.MiscObject,
|
||||
};
|
||||
|
||||
private static MonsterThreatLevel MapThreatLevel(MemEntity e)
|
||||
{
|
||||
if (e.Type != MemEntityType.Monster) return MonsterThreatLevel.None;
|
||||
return e.Rarity switch
|
||||
{
|
||||
MonsterRarity.White => MonsterThreatLevel.Normal,
|
||||
MonsterRarity.Magic => MonsterThreatLevel.Magic,
|
||||
MonsterRarity.Rare => MonsterThreatLevel.Rare,
|
||||
MonsterRarity.Unique => MonsterThreatLevel.Unique,
|
||||
_ => MonsterThreatLevel.Normal,
|
||||
};
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (_disposed) return;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue