Fix a really lame bug with salvage and multiple magnets. (#7710)
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user