From de8f7cfc9dcee7c43efd4707a63beef9b0dc8164 Mon Sep 17 00:00:00 2001 From: kosticia Date: Sat, 30 Aug 2025 16:00:57 +0300 Subject: [PATCH 1/2] unpredict --- Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs b/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs index 9a0b48e65b34d..128c99fd9ed3f 100644 --- a/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs +++ b/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs @@ -3,6 +3,7 @@ using Content.Shared.Whitelist; using Robust.Shared.Physics.Components; using Robust.Shared.Timing; +using Robust.Shared.Network; namespace Content.Shared.Storage.EntitySystems; @@ -17,6 +18,7 @@ public sealed class MagnetPickupSystem : EntitySystem [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly SharedStorageSystem _storage = default!; [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; + [Dependency] private readonly INetManager _net = default!; private static readonly TimeSpan ScanDelay = TimeSpan.FromSeconds(1); @@ -38,6 +40,10 @@ private void OnMagnetMapInit(EntityUid uid, MagnetPickupComponent component, Map public override void Update(float frameTime) { base.Update(frameTime); + + if (_net.IsClient) + return; + var query = EntityQueryEnumerator(); var currentTime = _timing.CurTime; From d45d05e08ec918e2d27182655944b8a476f54ba2 Mon Sep 17 00:00:00 2001 From: kosticia Date: Sat, 30 Aug 2025 19:05:55 +0300 Subject: [PATCH 2/2] predict --- Content.Shared/Storage/Components/MagnetPickupComponent.cs | 6 +++++- Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs | 7 +------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Content.Shared/Storage/Components/MagnetPickupComponent.cs b/Content.Shared/Storage/Components/MagnetPickupComponent.cs index 90b7e83d638e8..72a9c810774ea 100644 --- a/Content.Shared/Storage/Components/MagnetPickupComponent.cs +++ b/Content.Shared/Storage/Components/MagnetPickupComponent.cs @@ -1,15 +1,19 @@ using Content.Shared.Inventory; +using Robust.Shared.GameStates; namespace Content.Shared.Storage.Components; /// /// Applies an ongoing pickup area around the attached entity. /// -[RegisterComponent, AutoGenerateComponentPause] +[RegisterComponent, NetworkedComponent] +[AutoGenerateComponentState] +[AutoGenerateComponentPause] public sealed partial class MagnetPickupComponent : Component { [ViewVariables(VVAccess.ReadWrite), DataField("nextScan")] [AutoPausedField] + [AutoNetworkedField] public TimeSpan NextScan = TimeSpan.Zero; /// diff --git a/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs b/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs index 128c99fd9ed3f..27a15c87a6a6d 100644 --- a/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs +++ b/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs @@ -3,7 +3,6 @@ using Content.Shared.Whitelist; using Robust.Shared.Physics.Components; using Robust.Shared.Timing; -using Robust.Shared.Network; namespace Content.Shared.Storage.EntitySystems; @@ -18,7 +17,6 @@ public sealed class MagnetPickupSystem : EntitySystem [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly SharedStorageSystem _storage = default!; [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; - [Dependency] private readonly INetManager _net = default!; private static readonly TimeSpan ScanDelay = TimeSpan.FromSeconds(1); @@ -40,10 +38,6 @@ private void OnMagnetMapInit(EntityUid uid, MagnetPickupComponent component, Map public override void Update(float frameTime) { base.Update(frameTime); - - if (_net.IsClient) - return; - var query = EntityQueryEnumerator(); var currentTime = _timing.CurTime; @@ -53,6 +47,7 @@ public override void Update(float frameTime) continue; comp.NextScan += ScanDelay; + Dirty(uid, comp); if (!_inventory.TryGetContainingSlot((uid, xform, meta), out var slotDef)) continue;