Fix a really lame bug with salvage and multiple magnets. (#7710)

This commit is contained in:
Moony
2022-04-22 20:28:22 -05:00
committed by GitHub
parent 87f941b0e3
commit 55e63d21f1

View File

@@ -205,21 +205,17 @@ namespace Content.Server.Salvage
EntityManager.QueueDeleteEntity(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; coords = MapCoordinates.Nullspace;
angle = Angle.Zero; angle = Angle.Zero;
foreach (var (smc, tsc) in EntityManager.EntityQuery<SalvageMagnetComponent, TransformComponent>(true)) var tsc = Transform(component.Owner);
{ coords = new EntityCoordinates(component.Owner, component.Offset).ToMap(EntityManager);
coords = new EntityCoordinates(smc.Owner, smc.Offset).ToMap(EntityManager);
var grid = tsc.GridID; var grid = tsc.GridID;
if (_mapManager.TryGetGrid(grid, out var magnetGrid)) if (_mapManager.TryGetGrid(grid, out var magnetGrid))
{ {
angle = magnetGrid.WorldRotation; angle = magnetGrid.WorldRotation;
} }
return true;
}
return false;
} }
private IEnumerable<SalvageMapPrototype> GetAllSalvageMaps() => private IEnumerable<SalvageMapPrototype> GetAllSalvageMaps() =>
@@ -227,12 +223,7 @@ namespace Content.Server.Salvage
private bool SpawnSalvage(SalvageMagnetComponent component) private bool SpawnSalvage(SalvageMagnetComponent component)
{ {
if (!TryGetSalvagePlacementLocation(out var spl, out var spAngle)) TryGetSalvagePlacementLocation(component, out var spl, out var spAngle);
{
Report("salvage-system-announcement-spawn-magnet-lost");
return false;
}
SalvageMapPrototype? map = null; SalvageMapPrototype? map = null;
var forcedSalvage = _configurationManager.GetCVar<string>(CCVars.SalvageForced); var forcedSalvage = _configurationManager.GetCVar<string>(CCVars.SalvageForced);