Nerf emitsoundoncollide (#16602)

This commit is contained in:
metalgearsloth
2023-05-20 02:04:26 +10:00
committed by GitHub
parent 373435c006
commit d6adf9880d
4 changed files with 17 additions and 6 deletions

View File

@@ -24,6 +24,7 @@ public sealed class GravityWellSystem : SharedGravityWellSystem
[Dependency] private readonly IViewVariablesManager _vvManager = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly SharedPhysicsSystem _physics = default!;
[Dependency] private readonly SharedTransformSystem _transform = default!;
#endregion Dependencies
/// <summary>
@@ -181,9 +182,12 @@ public sealed class GravityWellSystem : SharedGravityWellSystem
var epicenter = mapPos.Position;
var minRange2 = MathF.Max(minRange * minRange, MinGravPulseRange); // Cache square value for speed. Also apply a sane minimum value to the minimum value so that div/0s don't happen.
var bodyQuery = GetEntityQuery<PhysicsComponent>();
var xformQuery = GetEntityQuery<TransformComponent>();
foreach(var entity in _lookup.GetEntitiesInRange(mapPos.MapId, epicenter, maxRange, flags: LookupFlags.Dynamic | LookupFlags.Sundries))
{
if (!TryComp<PhysicsComponent>(entity, out var physics)
if (!bodyQuery.TryGetComponent(entity, out var physics)
|| physics.BodyType == BodyType.Static)
{
continue;
@@ -192,7 +196,7 @@ public sealed class GravityWellSystem : SharedGravityWellSystem
if(!CanGravPulseAffect(entity))
continue;
var displacement = epicenter - Transform(entity).WorldPosition;
var displacement = epicenter - _transform.GetWorldPosition(entity, xformQuery);
var distance2 = displacement.LengthSquared;
if (distance2 < minRange2)
continue;