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);
}
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<SalvageMagnetComponent, TransformComponent>(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<SalvageMapPrototype> 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<string>(CCVars.SalvageForced);