diff --git a/Content.Shared/Follower/Components/FollowedComponent.cs b/Content.Shared/Follower/Components/FollowedComponent.cs index 6a3acead70..d8b2dd4d7f 100644 --- a/Content.Shared/Follower/Components/FollowedComponent.cs +++ b/Content.Shared/Follower/Components/FollowedComponent.cs @@ -1,13 +1,16 @@ using System.Collections.Generic; using Robust.Shared.Analyzers; using Robust.Shared.GameObjects; +using Robust.Shared.GameStates; namespace Content.Shared.Follower.Components; +// TODO properly network this and followercomp. /// /// Attached to entities that are currently being followed by a ghost. /// [RegisterComponent, Friend(typeof(FollowerSystem))] +[NetworkedComponent] public sealed class FollowedComponent : Component { public HashSet Following = new(); diff --git a/Content.Shared/Follower/Components/FollowerComponent.cs b/Content.Shared/Follower/Components/FollowerComponent.cs index 60174be561..9eddb86986 100644 --- a/Content.Shared/Follower/Components/FollowerComponent.cs +++ b/Content.Shared/Follower/Components/FollowerComponent.cs @@ -1,10 +1,12 @@ using Robust.Shared.Analyzers; using Robust.Shared.GameObjects; +using Robust.Shared.GameStates; namespace Content.Shared.Follower.Components; [RegisterComponent] [Friend(typeof(FollowerSystem))] +[NetworkedComponent] public sealed class FollowerComponent : Component { public EntityUid Following; diff --git a/Content.Shared/Follower/FollowerSystem.cs b/Content.Shared/Follower/FollowerSystem.cs index c7ae5d4e1d..0d358aac00 100644 --- a/Content.Shared/Follower/FollowerSystem.cs +++ b/Content.Shared/Follower/FollowerSystem.cs @@ -63,11 +63,16 @@ public sealed class FollowerSystem : EntitySystem /// The entity to be followed public void StartFollowingEntity(EntityUid follower, EntityUid entity) { + // No recursion for you + if (Transform(entity).ParentUid == follower) + return; + var followerComp = EnsureComp(follower); followerComp.Following = entity; var followedComp = EnsureComp(entity); - followedComp.Following.Add(follower); + if (!followedComp.Following.Add(follower)) + return; var xform = Transform(follower); xform.AttachParent(entity);