Fix some gravity anomaly perf issues (#14502)
This commit is contained in:
@@ -26,10 +26,12 @@ public abstract class SharedGravityAnomalySystem : EntitySystem
|
|||||||
var range = component.MaxThrowRange * args.Severity;
|
var range = component.MaxThrowRange * args.Severity;
|
||||||
var strength = component.MaxThrowStrength * args.Severity;
|
var strength = component.MaxThrowStrength * args.Severity;
|
||||||
var lookup = _lookup.GetEntitiesInRange(uid, range, LookupFlags.Dynamic | LookupFlags.Sundries);
|
var lookup = _lookup.GetEntitiesInRange(uid, range, LookupFlags.Dynamic | LookupFlags.Sundries);
|
||||||
|
var xformQuery = GetEntityQuery<TransformComponent>();
|
||||||
|
var worldPos = _xform.GetWorldPosition(xform, xformQuery);
|
||||||
|
|
||||||
foreach (var ent in lookup)
|
foreach (var ent in lookup)
|
||||||
{
|
{
|
||||||
var tempXform = Transform(ent);
|
var foo = _xform.GetWorldPosition(ent, xformQuery) - worldPos;
|
||||||
var foo = tempXform.MapPosition.Position - xform.MapPosition.Position;
|
|
||||||
_throwing.TryThrow(ent, foo * 10, strength, uid, 0);
|
_throwing.TryThrow(ent, foo * 10, strength, uid, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -48,11 +50,11 @@ public abstract class SharedGravityAnomalySystem : EntitySystem
|
|||||||
var range = component.MaxThrowRange * 2;
|
var range = component.MaxThrowRange * 2;
|
||||||
var strength = component.MaxThrowStrength * 2;
|
var strength = component.MaxThrowStrength * 2;
|
||||||
var lookup = _lookup.GetEntitiesInRange(uid, range, LookupFlags.Dynamic | LookupFlags.Sundries);
|
var lookup = _lookup.GetEntitiesInRange(uid, range, LookupFlags.Dynamic | LookupFlags.Sundries);
|
||||||
|
var xformQuery = GetEntityQuery<TransformComponent>();
|
||||||
|
|
||||||
foreach (var ent in lookup)
|
foreach (var ent in lookup)
|
||||||
{
|
{
|
||||||
var tempXform = Transform(ent);
|
var foo = _xform.GetWorldPosition(ent, xformQuery) - worldPos;
|
||||||
|
|
||||||
var foo = tempXform.MapPosition.Position - xform.MapPosition.Position;
|
|
||||||
_throwing.TryThrow(ent, foo * 5, strength, uid, 0);
|
_throwing.TryThrow(ent, foo * 5, strength, uid, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user