From 55e63d21f1074e0cdeeca84897bfad0b398c1f0b Mon Sep 17 00:00:00 2001 From: Moony Date: Fri, 22 Apr 2022 20:28:22 -0500 Subject: [PATCH] Fix a really lame bug with salvage and multiple magnets. (#7710) --- Content.Server/Salvage/SalvageSystem.cs | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/Content.Server/Salvage/SalvageSystem.cs b/Content.Server/Salvage/SalvageSystem.cs index 383ebe5d8f..4041af91c4 100644 --- a/Content.Server/Salvage/SalvageSystem.cs +++ b/Content.Server/Salvage/SalvageSystem.cs @@ -205,21 +205,17 @@ namespace Content.Server.Salvage EntityManager.QueueDeleteEntity(salvage); } - private bool TryGetSalvagePlacementLocation(out MapCoordinates coords, out Angle angle) + private void TryGetSalvagePlacementLocation(SalvageMagnetComponent component, out MapCoordinates coords, out Angle angle) { coords = MapCoordinates.Nullspace; angle = Angle.Zero; - foreach (var (smc, tsc) in EntityManager.EntityQuery(true)) + var tsc = Transform(component.Owner); + coords = new EntityCoordinates(component.Owner, component.Offset).ToMap(EntityManager); + var grid = tsc.GridID; + if (_mapManager.TryGetGrid(grid, out var magnetGrid)) { - coords = new EntityCoordinates(smc.Owner, smc.Offset).ToMap(EntityManager); - var grid = tsc.GridID; - if (_mapManager.TryGetGrid(grid, out var magnetGrid)) - { - angle = magnetGrid.WorldRotation; - } - return true; + angle = magnetGrid.WorldRotation; } - return false; } private IEnumerable GetAllSalvageMaps() => @@ -227,12 +223,7 @@ namespace Content.Server.Salvage private bool SpawnSalvage(SalvageMagnetComponent component) { - if (!TryGetSalvagePlacementLocation(out var spl, out var spAngle)) - { - Report("salvage-system-announcement-spawn-magnet-lost"); - return false; - } - + TryGetSalvagePlacementLocation(component, out var spl, out var spAngle); SalvageMapPrototype? map = null; var forcedSalvage = _configurationManager.GetCVar(CCVars.SalvageForced);