Files
ss14-wl/Content.Shared/Movement/Components/ActiveInputMoverComponent.cs
Perry Fraser 79f58a0314 Don't process paused MoverControllers (#39444)
* refactor: make MoverController use more queries

* perf: don't process paused MoverControllers

* perf: track active input movers via events

* Revert "place stored changeling identities next to each other (#39452)"

This reverts commit 9b5d2ff11b.

* perf: keep around the seen movers hashset

* fix: don't reintroduce wild wild west ordering

* style: use virtual method

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* docs: better ActiveInputMoverComponent motiviation

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* fix: pass through known comp

* fix: properly order relay movers for real

* perf: use proxy Transform() and inline it

Actually this might be a slight performance improvement since it avoids

the dictionary lookup until the case that its body status is on ground.

* style: switch an event handler to Entity<T>

* fix: just-in-case track for relay loops

* merg conflix

* borger

* whitespace moment

* whoops

* empty

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-12-20 19:24:04 +00:00

28 lines
1.0 KiB
C#

using Content.Shared.Movement.Systems;
namespace Content.Shared.Movement.Components;
/// <summary>
/// Marker component for entities that are being processed by MoverController.
/// </summary>
/// <remarks>
/// The idea here is to keep track via event subscriptions which mover
/// controllers actually need to be processed. Instead of having this be a
/// boolean field on the <see cref="InputMoverComponent"/>, we instead track it
/// as a separate component which is much faster to query all at once.
/// </remarks>
/// <seealso cref="InputMoverComponent"/>
/// <seealso cref="SharedMoverController.UpdateMoverStatus"/>
[RegisterComponent, Access(typeof(SharedMoverController))]
public sealed partial class ActiveInputMoverComponent : Component
{
/// <summary>
/// Cached version of <see cref="MovementRelayTargetComponent.Source"/>.
/// </summary>
/// <remarks>
/// This <i>must not</i> form a loop of EntityUids.
/// </remarks>
[DataField, ViewVariables]
public EntityUid? RelayedFrom;
};