CatStation/Content.Shared/Item/HeldSpeedModifierComponent.cs
Princess Cheeseballs d25c783183
Better API for Weightless Movement Modifiers (#38773)
* Make IsWeightless event based

* Extremely stupid bugfix how did I not catch this

* Ancient forbidden bugfix

* Merge conflicts?

* Fix merge conflicts

* Push

* fix

* AAAAAAAAAAAAA

* AAAAAAAAAAAAAAAA 2

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-07-15 02:41:43 +00:00

40 lines
1.4 KiB
C#

using Content.Shared.Clothing;
using Robust.Shared.GameStates;
namespace Content.Shared.Item;
/// <summary>
/// This is used for items that change your speed when they are held.
/// </summary>
/// <remarks>
/// This is separate from <see cref="ClothingSpeedModifierComponent"/> because things like boots increase/decrease speed when worn, but
/// shouldn't do that when just held in hand.
/// </remarks>
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
[Access(typeof(HeldSpeedModifierSystem))]
public sealed partial class HeldSpeedModifierComponent : Component
{
/// <summary>
/// A multiplier applied to the walk speed.
/// </summary>
[DataField] [ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
public float WalkModifier = 1.0f;
/// <summary>
/// A multiplier applied to the sprint speed.
/// </summary>
[DataField] [ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
public float SprintModifier = 1.0f;
/// <summary>
/// A multiplier applied to weightless acceleration
/// </summary>
[DataField]
public float WeightlessAcceleration = 1.0f;
/// <summary>
/// If true, values from <see cref="ClothingSpeedModifierComponent"/> will attempted to be used before the ones in this component.
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
public bool MirrorClothingModifier = true;
}