diff --git a/Content.Shared/CombatMode/CombatModeComponent.cs b/Content.Shared/CombatMode/CombatModeComponent.cs index 124a682d5c..8e8ffbc53b 100644 --- a/Content.Shared/CombatMode/CombatModeComponent.cs +++ b/Content.Shared/CombatMode/CombatModeComponent.cs @@ -48,5 +48,19 @@ public sealed partial class CombatModeComponent : Component /// [DataField, AutoNetworkedField] public bool ToggleMouseRotator = true; + + // WD EDIT START + /// + /// If true, sets to 1 degree and + /// to false when the owner enters combatmode. This is currently being tested as of 06.12.24, + /// so a simple bool switch should suffice. + /// Leaving AutoNetworking just in case shitmins need to disable it for someone. Will only take effect when re-enabling combat mode. + /// + /// + /// No effect if is false. + /// + [DataField, AutoNetworkedField] + public bool SmoothRotation = true; + // WD EDIT END } } diff --git a/Content.Shared/CombatMode/SharedCombatModeSystem.cs b/Content.Shared/CombatMode/SharedCombatModeSystem.cs index 60d1362bb0..60b31a00a2 100644 --- a/Content.Shared/CombatMode/SharedCombatModeSystem.cs +++ b/Content.Shared/CombatMode/SharedCombatModeSystem.cs @@ -92,7 +92,14 @@ private void SetMouseRotatorComponents(EntityUid uid, bool value) { if (value) { - EnsureComp(uid); + var rot = EnsureComp(uid); + // WD EDIT START + if (TryComp(uid, out var comp) && comp.SmoothRotation) // no idea under which (intended) circumstances this can fail (if any), so i'll avoid Comp<>(). + { + rot.AngleTolerance = Angle.FromDegrees(1); // arbitrary + rot.Simple4DirMode = false; + } + // WD EDIT END EnsureComp(uid); } else diff --git a/Content.Shared/MouseRotator/MouseRotatorComponent.cs b/Content.Shared/MouseRotator/MouseRotatorComponent.cs index 2844b3cb8b..39b82a0405 100644 --- a/Content.Shared/MouseRotator/MouseRotatorComponent.cs +++ b/Content.Shared/MouseRotator/MouseRotatorComponent.cs @@ -1,4 +1,4 @@ -using System.Numerics; +using System.Numerics; using Robust.Shared.GameStates; using Robust.Shared.Serialization;