Don't relay blocking anymore.
using Content.Shared.Interaction.Components;
using Content.Shared.Interaction.Events;
using Content.Shared.Item;
+using Content.Shared.Movement.Components;
using Content.Shared.Movement.Events;
namespace Content.Shared.Interaction;
/// </summary>
public partial class SharedInteractionSystem
{
- public void InitializeBlocking()
+ private void InitializeBlocking()
{
SubscribeLocalEvent<BlockMovementComponent, UpdateCanMoveEvent>(OnMoveAttempt);
SubscribeLocalEvent<BlockMovementComponent, UseAttemptEvent>(CancelEvent);
private void OnMoveAttempt(EntityUid uid, BlockMovementComponent component, UpdateCanMoveEvent args)
{
- if (component.LifeStage > ComponentLifeStage.Running)
+ // If we're relaying then don't cancel.
+ if (HasComp<RelayInputMoverComponent>(uid))
return;
args.Cancel(); // no more scurrying around
+using Content.Shared.ActionBlocker;
using Content.Shared.Movement.Components;
namespace Content.Shared.Movement.Systems;
targetComp.Source = uid;
Dirty(uid, component);
Dirty(relayEntity, targetComp);
+ _blocker.UpdateCanMove(uid);
}
private void OnRelayShutdown(Entity<RelayInputMoverComponent> entity, ref ComponentShutdown args)
if (TryComp(entity.Comp.RelayEntity, out MovementRelayTargetComponent? target) && target.LifeStage <= ComponentLifeStage.Running)
RemComp(entity.Comp.RelayEntity, target);
+
+ _blocker.UpdateCanMove(entity.Owner);
}
private void OnTargetRelayShutdown(Entity<MovementRelayTargetComponent> entity, ref ComponentShutdown args)
using System.Diagnostics.CodeAnalysis;
using System.Net;
using System.Numerics;
+using Content.Shared.ActionBlocker;
using Content.Shared.Bed.Sleep;
using Content.Shared.CCVar;
using Content.Shared.Friction;
[Dependency] private readonly IConfigurationManager _configManager = default!;
[Dependency] protected readonly IGameTiming Timing = default!;
[Dependency] private readonly ITileDefinitionManager _tileDefinitionManager = default!;
+ [Dependency] private readonly ActionBlockerSystem _blocker = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly InventorySystem _inventory = default!;
[Dependency] private readonly MobStateSystem _mobState = default!;
public override void UpdateAfterSolve(bool prediction, float frameTime)
{
base.UpdateAfterSolve(prediction, frameTime);
-
- var query = AllEntityQuery<InputMoverComponent, PhysicsComponent>();
-
- while (query.MoveNext(out var uid, out var _, out var physics))
- {
- //PhysicsSystem.SetLinearVelocity(uid, Vector2.Zero, body: physics);
- }
-
UsedMobMovement.Clear();
}