From f2e9ed0b73cf301250686ea33bf9c2b3055022c4 Mon Sep 17 00:00:00 2001 From: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Date: Thu, 4 Jan 2024 23:11:09 -0500 Subject: [PATCH] NetSyncEnabled fixes (#4811) * NetSyncEnabled fixes * A --- Robust.Client/Player/PlayerManager.cs | 5 ++++- Robust.Shared/GameObjects/EntityManager.Components.cs | 6 ++---- Robust.Shared/Player/SharedPlayerManager.cs | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Robust.Client/Player/PlayerManager.cs b/Robust.Client/Player/PlayerManager.cs index 682b433ce..211748508 100644 --- a/Robust.Client/Player/PlayerManager.cs +++ b/Robust.Client/Player/PlayerManager.cs @@ -162,11 +162,14 @@ namespace Robust.Client.Player return true; } - if (!EntManager.EnsureComponent(uid.Value, out EyeComponent eye)) + if (!EntManager.HasComponent(uid.Value)) { if (_client.RunLevel != ClientRunLevel.SinglePlayerGame) Sawmill.Warning($"Attaching local player to an entity {EntManager.ToPrettyString(uid)} without an eye. This eye will not be netsynced and may cause issues."); + var eye = (EyeComponent) Factory.GetComponent(typeof(EyeComponent)); + eye.Owner = uid.Value; eye.NetSyncEnabled = false; + EntManager.AddComponent(uid.Value, eye); } Sawmill.Info($"Attaching local player to {EntManager.ToPrettyString(uid)}."); diff --git a/Robust.Shared/GameObjects/EntityManager.Components.cs b/Robust.Shared/GameObjects/EntityManager.Components.cs index d9c569e94..0d6357557 100644 --- a/Robust.Shared/GameObjects/EntityManager.Components.cs +++ b/Robust.Shared/GameObjects/EntityManager.Components.cs @@ -318,10 +318,8 @@ namespace Robust.Shared.GameObjects metadata ??= MetaQuery.GetComponentInternal(uid); metadata.NetComponents.Add(netId, component); } - else - { - component.Networked = false; - } + + component.Networked = reg.NetID != null; var eventArgs = new AddedComponentEventArgs(new ComponentEventArgs(component, uid), reg); ComponentAdded?.Invoke(eventArgs); diff --git a/Robust.Shared/Player/SharedPlayerManager.cs b/Robust.Shared/Player/SharedPlayerManager.cs index 92f14fd4c..54ab6686f 100644 --- a/Robust.Shared/Player/SharedPlayerManager.cs +++ b/Robust.Shared/Player/SharedPlayerManager.cs @@ -12,6 +12,7 @@ namespace Robust.Shared.Player; internal abstract partial class SharedPlayerManager : ISharedPlayerManager { [Dependency] protected readonly IEntityManager EntManager = default!; + [Dependency] protected readonly IComponentFactory Factory = default!; [Dependency] protected readonly ILogManager LogMan = default!; [Dependency] protected readonly IGameTiming Timing = default!; [Dependency] private readonly INetManager _netMan = default!;