From 0718b0f04090ef263d149f77c8b122d818b501b2 Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Sat, 1 Oct 2022 21:36:44 -0400 Subject: [PATCH] add whitelist support for slow contacts (#11647) --- Content.Shared/Movement/Components/SlowContactsComponent.cs | 4 ++++ Content.Shared/Movement/Systems/SlowContactsSystem.cs | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Content.Shared/Movement/Components/SlowContactsComponent.cs b/Content.Shared/Movement/Components/SlowContactsComponent.cs index 5175fe95df..0ce4696e56 100644 --- a/Content.Shared/Movement/Components/SlowContactsComponent.cs +++ b/Content.Shared/Movement/Components/SlowContactsComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Whitelist; using Robust.Shared.GameStates; using Robust.Shared.Serialization; @@ -11,6 +12,9 @@ public sealed class SlowContactsComponent : Component [ViewVariables, DataField("sprintSpeedModifier")] public float SprintSpeedModifier { get; set; } = 1.0f; + + [DataField("ignoreWhitelist")] + public EntityWhitelist? IgnoreWhitelist; } [Serializable, NetSerializable] diff --git a/Content.Shared/Movement/Systems/SlowContactsSystem.cs b/Content.Shared/Movement/Systems/SlowContactsSystem.cs index 44c7bcabb4..c1e9863b76 100644 --- a/Content.Shared/Movement/Systems/SlowContactsSystem.cs +++ b/Content.Shared/Movement/Systems/SlowContactsSystem.cs @@ -1,7 +1,6 @@ using Content.Shared.Movement.Components; using Robust.Shared.GameStates; using Robust.Shared.Physics.Components; -using Robust.Shared.Physics.Dynamics; using Robust.Shared.Physics.Events; using Robust.Shared.Physics.Systems; @@ -76,6 +75,9 @@ public sealed class SlowContactsSystem : EntitySystem if (!TryComp(ent, out var slowContactsComponent)) continue; + if (slowContactsComponent.IgnoreWhitelist != null && slowContactsComponent.IgnoreWhitelist.IsValid(ent)) + continue; + walkSpeed = Math.Min(walkSpeed, slowContactsComponent.WalkSpeedModifier); sprintSpeed = Math.Min(sprintSpeed, slowContactsComponent.SprintSpeedModifier); remove = false;