Proximity beeper optimisation (#16507)

This commit is contained in:
metalgearsloth
2023-05-17 23:55:25 +10:00
committed by GitHub
parent f1cd3efcba
commit befb0900cf
2 changed files with 10 additions and 10 deletions

View File

@@ -62,17 +62,14 @@ public sealed class ProximityBeeperSystem : EntitySystem
var xformQuery = GetEntityQuery<TransformComponent>();
var xform = xformQuery.GetComponent(uid);
var comp = EntityManager.ComponentFactory.GetRegistration(component.Component).Type;
var compType = EntityManager.ComponentFactory.GetRegistration(component.Component).Type;
float? closestDistance = null;
foreach (var targetXform in _entityLookup.GetComponentsInRange<TransformComponent>(xform.MapPosition, component.MaximumDistance))
foreach (var comp in _entityLookup.GetComponentsInRange(compType, xform.MapPosition, component.MaximumDistance))
{
// forgive me father, for i have sinned.
var ent = targetXform.Owner;
var ent = comp.Owner;
if (!HasComp(ent, comp))
continue;
var dist = (_transform.GetWorldPosition(xform, xformQuery) - _transform.GetWorldPosition(targetXform, xformQuery)).Length;
var dist = (_transform.GetWorldPosition(xform, xformQuery) - _transform.GetWorldPosition(ent, xformQuery)).Length;
if (dist >= (closestDistance ?? float.MaxValue))
continue;
closestDistance = dist;