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);
|
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);
|
||||||
|
|||||||
Reference in New Issue
Block a user