Remove IRelayMoveInput (#4663)
* Remove IRelayMoveInput This interface gets called every time a movement key is pressed so it gets called a lot. * Remove RelayMovementEntityMessage Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>
This commit is contained in:
@@ -1,9 +0,0 @@
|
||||
using Robust.Shared.Players;
|
||||
|
||||
namespace Content.Shared.Movement.Components
|
||||
{
|
||||
public interface IRelayMoveInput
|
||||
{
|
||||
void MoveInputPressed(ICommonSession session);
|
||||
}
|
||||
}
|
||||
@@ -41,7 +41,7 @@ namespace Content.Shared.Movement.EntitySystems
|
||||
base.Shutdown();
|
||||
}
|
||||
|
||||
private static void HandleDirChange(ICommonSession? session, Direction dir, ushort subTick, bool state)
|
||||
private void HandleDirChange(ICommonSession? session, Direction dir, ushort subTick, bool state)
|
||||
{
|
||||
if (!TryGetAttachedComponent<IMoverComponent>(session, out var moverComp))
|
||||
return;
|
||||
@@ -50,19 +50,13 @@ namespace Content.Shared.Movement.EntitySystems
|
||||
|
||||
if (owner != null && session != null)
|
||||
{
|
||||
foreach (var comp in owner.GetAllComponents<IRelayMoveInput>().ToArray())
|
||||
{
|
||||
comp.MoveInputPressed(session);
|
||||
}
|
||||
EntityManager.EventBus.RaiseLocalEvent(owner.Uid, new RelayMoveInputEvent(session));
|
||||
|
||||
// For stuff like "Moving out of locker" or the likes
|
||||
if (owner.IsInContainer() &&
|
||||
(!owner.TryGetComponent(out IMobStateComponent? mobState) ||
|
||||
mobState.IsAlive()))
|
||||
{
|
||||
var relayEntityMoveMessage = new RelayMovementEntityMessage(owner);
|
||||
owner.Transform.Parent!.Owner.SendMessage(owner.Transform, relayEntityMoveMessage);
|
||||
|
||||
var relayMoveEvent = new RelayMovementEntityEvent(owner);
|
||||
owner.EntityManager.EventBus.RaiseLocalEvent(owner.Transform.ParentUid, relayMoveEvent);
|
||||
}
|
||||
@@ -114,7 +108,7 @@ namespace Content.Shared.Movement.EntitySystems
|
||||
return false;
|
||||
}
|
||||
|
||||
HandleDirChange(session, _dir, message.SubTick, full.State == BoundKeyState.Down);
|
||||
Get<SharedMoverSystem>().HandleDirChange(session, _dir, message.SubTick, full.State == BoundKeyState.Down);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -133,4 +127,14 @@ namespace Content.Shared.Movement.EntitySystems
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class RelayMoveInputEvent : EntityEventArgs
|
||||
{
|
||||
public ICommonSession Session { get; }
|
||||
|
||||
public RelayMoveInputEvent(ICommonSession session)
|
||||
{
|
||||
Session = session;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
14
Content.Shared/Movement/RelayMovementEntityEvent.cs
Normal file
14
Content.Shared/Movement/RelayMovementEntityEvent.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using Robust.Shared.GameObjects;
|
||||
|
||||
namespace Content.Shared.Movement
|
||||
{
|
||||
public sealed class RelayMovementEntityEvent : EntityEventArgs
|
||||
{
|
||||
public IEntity Entity { get; }
|
||||
|
||||
public RelayMovementEntityEvent(IEntity entity)
|
||||
{
|
||||
Entity = entity;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
using System;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.GameObjects;
|
||||
|
||||
namespace Content.Shared.Movement
|
||||
{
|
||||
[Obsolete("Component Messages are deprecated, use Entity Events instead.")]
|
||||
public class RelayMovementEntityMessage : ComponentMessage
|
||||
{
|
||||
[PublicAPI]
|
||||
public readonly IEntity Entity;
|
||||
|
||||
public RelayMovementEntityMessage(IEntity entity)
|
||||
{
|
||||
Entity = entity;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class RelayMovementEntityEvent : EntityEventArgs
|
||||
{
|
||||
public IEntity Entity { get; }
|
||||
|
||||
public RelayMovementEntityEvent(IEntity entity)
|
||||
{
|
||||
Entity = entity;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using Content.Shared.ActionBlocker;
|
||||
using Content.Shared.Alert;
|
||||
using Content.Shared.Movement;
|
||||
using Content.Shared.Movement.Components;
|
||||
using Content.Shared.Physics.Pull;
|
||||
using Robust.Shared.Containers;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -17,7 +13,7 @@ using Robust.Shared.Serialization;
|
||||
namespace Content.Shared.Pulling.Components
|
||||
{
|
||||
[NetworkedComponent()]
|
||||
public abstract class SharedPullableComponent : Component, IRelayMoveInput
|
||||
public abstract class SharedPullableComponent : Component
|
||||
{
|
||||
public override string Name => "Pullable";
|
||||
|
||||
@@ -348,14 +344,6 @@ namespace Content.Shared.Pulling.Components
|
||||
|
||||
base.OnRemove();
|
||||
}
|
||||
|
||||
// TODO: Need a component bus relay so all entities can use this and not just players
|
||||
void IRelayMoveInput.MoveInputPressed(ICommonSession session)
|
||||
{
|
||||
var entity = session.AttachedEntity;
|
||||
if (entity == null || !EntitySystem.Get<ActionBlockerSystem>().CanMove(entity)) return;
|
||||
TryStopPull();
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
|
||||
26
Content.Shared/Pulling/Systems/SharedPullableSystem.cs
Normal file
26
Content.Shared/Pulling/Systems/SharedPullableSystem.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using Content.Shared.ActionBlocker;
|
||||
using Content.Shared.Movement.EntitySystems;
|
||||
using Content.Shared.Pulling.Components;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.IoC;
|
||||
|
||||
namespace Content.Shared.Pulling.Systems
|
||||
{
|
||||
public class SharedPullableSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly ActionBlockerSystem _blocker = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<SharedPullableComponent, RelayMoveInputEvent>(OnRelayMoveInput);
|
||||
}
|
||||
|
||||
private void OnRelayMoveInput(EntityUid uid, SharedPullableComponent component, RelayMoveInputEvent args)
|
||||
{
|
||||
var entity = args.Session.AttachedEntity;
|
||||
if (entity == null || !_blocker.CanMove(entity)) return;
|
||||
component.TryStopPull();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user