huge refactor

This commit is contained in:
Boki 2026-03-02 23:45:12 -05:00
parent e5ebe05571
commit a8341e8232
29 changed files with 3184 additions and 340 deletions

View file

@ -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;