From afe9f3ae85076a028c19202278b0f78664556a48 Mon Sep 17 00:00:00 2001 From: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> Date: Sat, 29 Jun 2024 21:34:06 -0700 Subject: [PATCH] Fix ItemMapper whitelist mispredict when inserting or removing items (#29461) * Fix ItemMapper whitelist mispredict when inserting or removing items Makes the ItemMapper MapLayerData available on client so that the client can predict whether an inserted/removed item changes the visibility of a sprite layer. * review --------- Co-authored-by: metalgearsloth --- Content.Shared/Storage/Components/SharedMapLayerData.cs | 8 ++++---- .../Storage/EntitySystems/SharedItemMapperSystem.cs | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Content.Shared/Storage/Components/SharedMapLayerData.cs b/Content.Shared/Storage/Components/SharedMapLayerData.cs index 6d2f4a7eaf..da176759f7 100644 --- a/Content.Shared/Storage/Components/SharedMapLayerData.cs +++ b/Content.Shared/Storage/Components/SharedMapLayerData.cs @@ -17,21 +17,21 @@ namespace Content.Shared.Storage.Components { public string Layer = string.Empty; - [DataField("whitelist", required: true, serverOnly: true)] - public EntityWhitelist ServerWhitelist { get; set; } = new(); + [DataField(required: true)] + public EntityWhitelist? Whitelist { get; set; } /// /// Minimal amount of entities that are valid for whitelist. /// If it's smaller than minimal amount, layer will be hidden. /// - [DataField("minCount")] + [DataField] public int MinCount = 1; /// /// Max amount of entities that are valid for whitelist. /// If it's bigger than max amount, layer will be hidden. /// - [DataField("maxCount")] + [DataField] public int MaxCount = int.MaxValue; } diff --git a/Content.Shared/Storage/EntitySystems/SharedItemMapperSystem.cs b/Content.Shared/Storage/EntitySystems/SharedItemMapperSystem.cs index 2557f8100c..cfa082a9ee 100644 --- a/Content.Shared/Storage/EntitySystems/SharedItemMapperSystem.cs +++ b/Content.Shared/Storage/EntitySystems/SharedItemMapperSystem.cs @@ -95,7 +95,7 @@ namespace Content.Shared.Storage.EntitySystems var list = new List(); foreach (var mapLayerData in itemMapper.MapLayers.Values) { - var count = containedLayers.Count(ent => _whitelistSystem.IsWhitelistPass(mapLayerData.ServerWhitelist, ent)); + var count = containedLayers.Count(ent => _whitelistSystem.IsWhitelistPass(mapLayerData.Whitelist, ent)); if (count >= mapLayerData.MinCount && count <= mapLayerData.MaxCount) { list.Add(mapLayerData.Layer); -- 2.51.2