* Add weightlessness status effect. * remove system, add new action * Update Content.Shared/GameObjects/Components/Mobs/SharedWeightlessStatusComponent.cs Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com> * Update Content.Shared/GameObjects/Components/Mobs/SharedWeightlessStatusComponent.cs Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com> * Update Content.Shared/GameObjects/Components/Movement/MovementIgnoreGravityComponent.cs Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com> * Update Content.Shared/GameObjects/Components/Movement/MovementIgnoreGravityComponent.cs Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com> * fix paul's typo. does not run. * add client side component * move logic to eventbus * remove client/server components and clean up code * remove useless component, revert human.yml changes. Co-authored-by: scuffedjays <yetanotherscuffed@gmail.com> Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
31 lines
1.1 KiB
C#
31 lines
1.1 KiB
C#
#nullable enable
|
|
using System;
|
|
using Content.Shared.GameObjects.Components.Mobs;
|
|
using Robust.Shared.GameObjects;
|
|
using Robust.Shared.Interfaces.GameObjects;
|
|
using Robust.Shared.Interfaces.Physics;
|
|
using Robust.Shared.IoC;
|
|
using Content.Shared.GameObjects.EntitySystemMessages;
|
|
|
|
namespace Content.Shared.GameObjects.Components.Movement
|
|
{
|
|
[RegisterComponent]
|
|
public sealed class MovementIgnoreGravityComponent : Component
|
|
{
|
|
public override string Name => "MovementIgnoreGravity";
|
|
}
|
|
|
|
public static class GravityExtensions
|
|
{
|
|
public static bool IsWeightless(this IEntity entity, IPhysicsManager? physicsManager = null)
|
|
{
|
|
physicsManager ??= IoCManager.Resolve<IPhysicsManager>();
|
|
|
|
var isWeightless = !entity.HasComponent<MovementIgnoreGravityComponent>() &&
|
|
physicsManager.IsWeightless(entity.Transform.Coordinates);
|
|
entity.EntityManager.EventBus.RaiseEvent(EventSource.Local, new WeightlessChangeMessage(entity,isWeightless));
|
|
return isWeightless;
|
|
}
|
|
}
|
|
}
|