Add IEntity.IsWeightless extension method (#2255)
Checking manually every time wasn't that cool
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
#nullable enable
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Interfaces.GameObjects;
|
||||
using Robust.Shared.Interfaces.Physics;
|
||||
using Robust.Shared.IoC;
|
||||
|
||||
namespace Content.Shared.GameObjects.Components.Movement
|
||||
{
|
||||
@@ -7,4 +11,15 @@ namespace Content.Shared.GameObjects.Components.Movement
|
||||
{
|
||||
public override string Name => "MovementIgnoreGravity";
|
||||
}
|
||||
|
||||
public static class GravityExtensions
|
||||
{
|
||||
public static bool IsWeightless(this IEntity entity, IPhysicsManager? physicsManager = null)
|
||||
{
|
||||
physicsManager ??= IoCManager.Resolve<IPhysicsManager>();
|
||||
|
||||
return !entity.HasComponent<MovementIgnoreGravityComponent>() &&
|
||||
physicsManager.IsWeightless(entity.Transform.Coordinates);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,8 +56,7 @@ namespace Content.Shared.GameObjects.EntitySystems
|
||||
{
|
||||
physics.EnsureController<MoverController>();
|
||||
|
||||
var weightless = !transform.Owner.HasComponent<MovementIgnoreGravityComponent>() &&
|
||||
_physicsManager.IsWeightless(transform.Coordinates);
|
||||
var weightless = !transform.Owner.IsWeightless();
|
||||
|
||||
if (weightless)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user