diff --git a/Content.IntegrationTests/PoolManager.cs b/Content.IntegrationTests/PoolManager.cs index 192dd52096..9d7bf45af7 100644 --- a/Content.IntegrationTests/PoolManager.cs +++ b/Content.IntegrationTests/PoolManager.cs @@ -227,12 +227,9 @@ public static class PoolManager pair = GrabOptimalPair(poolSettings); if (pair != null) { - var mapManager = pair.Server.ResolveDependency(); - var mainGrid = GetMainGrid(mapManager); var canSkip = pair.Settings.CanFastRecycle(poolSettings); - await TestContext.Out.WriteLineAsync($"canSkip: {canSkip}, maingrid:{mainGrid != null}"); - if (!canSkip || mainGrid == null) + if (!canSkip) { await TestContext.Out.WriteLineAsync($"Cleaning existing pair"); await CleanPooledPair(poolSettings, pair); @@ -411,39 +408,34 @@ public static class PoolManager return pair; } - public static TileRef GetMainTile(IMapManager manager) + public static async Task CreateTestMap(PairTracker pairTracker) { - foreach (var grid in manager.GetAllGrids()) + var server = pairTracker.Pair.Server; + var settings = pairTracker.Pair.Settings; + if (settings.NoServer) throw new Exception("Cannot setup test map without server"); + var mapData = new TestMapData { - if (manager.GridExists(grid.GridEntityId)) - { - foreach (var tile in grid.GetAllTiles()) - { - if(tile.IsSpace())continue; - if(tile.IsBlockedTurf(false))continue; - return tile; - } - } + + }; + await server.WaitPost(() => + { + var mapManager = IoCManager.Resolve(); + mapData.MapId = mapManager.CreateMap(); + mapData.MapGrid = mapManager.CreateGrid(mapData.MapId); + mapData.GridCoords = new EntityCoordinates(mapData.MapGrid.GridEntityId, 0, 0); + var tileDefinitionManager = IoCManager.Resolve(); + var plating = tileDefinitionManager["plating"]; + var platingTile = new Tile(plating.TileId); + mapData.MapGrid.SetTile(mapData.GridCoords, platingTile); + mapData.MapCoords = new MapCoordinates(0, 0, mapData.MapId); + mapData.Tile = mapData.MapGrid.GetAllTiles().First(); + }); + if (!settings.Disconnected) + { + await RunTicksSync(pairTracker.Pair, 10); } - throw new Exception("Failed to find empty tile"); - } - - public static EntityCoordinates GetMainEntityCoordinates(IMapManager manager) - { - var gridId = GetMainGrid(manager).GridEntityId; - return new EntityCoordinates(gridId, -0.5f, -0.5f); - } - - public static IMapGrid GetMainGrid(IMapManager manager) - { - foreach (var grid in manager.GetAllGrids()) - { - if (manager.GridExists(grid.GridEntityId)) - return grid; - } - - return null; + return mapData; } public static async Task RunTicksSync(Pair pair, int ticks) @@ -598,6 +590,15 @@ public sealed class PoolSettings } } +public sealed class TestMapData +{ + public MapId MapId { get; set; } + public IMapGrid MapGrid { get; set; } + public EntityCoordinates GridCoords { get; set; } + public MapCoordinates MapCoords { get; set; } + public TileRef Tile { get; set; } +} + public sealed class Pair { public int PairId { get; init; } diff --git a/Content.IntegrationTests/Tests/Administration/Logs/AddTests.cs b/Content.IntegrationTests/Tests/Administration/Logs/AddTests.cs index e9575985c9..59322d9fc1 100644 --- a/Content.IntegrationTests/Tests/Administration/Logs/AddTests.cs +++ b/Content.IntegrationTests/Tests/Administration/Logs/AddTests.cs @@ -34,9 +34,10 @@ public sealed class AddTests var guid = Guid.NewGuid(); + var testMap = await PoolManager.CreateTestMap(pairTracker); + var coordinates = testMap.GridCoords; await server.WaitPost(() => { - var coordinates = PoolManager.GetMainEntityCoordinates(sMaps); var entity = sEntities.SpawnEntity(null, coordinates); sAdminLogSystem.Add(LogType.Unknown, $"{entity:Entity} test log: {guid}"); @@ -83,9 +84,10 @@ public sealed class AddTests var guid = Guid.NewGuid(); + var testMap = await PoolManager.CreateTestMap(pairTracker); + var coordinates = testMap.GridCoords; await server.WaitPost(() => { - var coordinates = PoolManager.GetMainEntityCoordinates(sMaps); var entity = sEntities.SpawnEntity(null, coordinates); sAdminLogSystem.Add(LogType.Unknown, $"{entity} test log: {guid}"); @@ -141,9 +143,10 @@ public sealed class AddTests var sAdminLogSystem = server.ResolveDependency(); + var testMap = await PoolManager.CreateTestMap(pairTracker); + var coordinates = testMap.GridCoords; await server.WaitPost(() => { - var coordinates = PoolManager.GetMainEntityCoordinates(sMaps); var entity = sEntities.SpawnEntity(null, coordinates); for (var i = 0; i < amount; i++) diff --git a/Content.IntegrationTests/Tests/Administration/Logs/FilterTests.cs b/Content.IntegrationTests/Tests/Administration/Logs/FilterTests.cs index 310a35b72c..f67817ac65 100644 --- a/Content.IntegrationTests/Tests/Administration/Logs/FilterTests.cs +++ b/Content.IntegrationTests/Tests/Administration/Logs/FilterTests.cs @@ -23,17 +23,17 @@ public sealed class FilterTests var server = pairTracker.Pair.Server; var sEntities = server.ResolveDependency(); - var sMaps = server.ResolveDependency(); var sAdminLogSystem = server.ResolveDependency(); var commonGuid = Guid.NewGuid(); var firstGuid = Guid.NewGuid(); var secondGuid = Guid.NewGuid(); + var testMap = await PoolManager.CreateTestMap(pairTracker); + var coordinates = testMap.GridCoords; await server.WaitPost(() => { - var coordinates = PoolManager.GetMainEntityCoordinates(sMaps); var entity = sEntities.SpawnEntity(null, coordinates); sAdminLogSystem.Add(LogType.Unknown, $"{entity:Entity} test log: {commonGuid} {firstGuid}"); @@ -43,7 +43,6 @@ public sealed class FilterTests await server.WaitPost(() => { - var coordinates = PoolManager.GetMainEntityCoordinates(sMaps); var entity = sEntities.SpawnEntity(null, coordinates); sAdminLogSystem.Add(LogType.Unknown, $"{entity:Entity} test log: {commonGuid} {secondGuid}"); diff --git a/Content.IntegrationTests/Tests/Buckle/BuckleTest.cs b/Content.IntegrationTests/Tests/Buckle/BuckleTest.cs index 6f1e877368..749ac7ef93 100644 --- a/Content.IntegrationTests/Tests/Buckle/BuckleTest.cs +++ b/Content.IntegrationTests/Tests/Buckle/BuckleTest.cs @@ -54,6 +54,9 @@ namespace Content.IntegrationTests.Tests.Buckle await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{ExtraPrototypes = Prototypes}); var server = pairTracker.Pair.Server; + var testMap = await PoolManager.CreateTestMap(pairTracker); + var coordinates = testMap.GridCoords; + EntityUid human = default; EntityUid chair = default; BuckleComponent buckle = null; @@ -67,8 +70,6 @@ namespace Content.IntegrationTests.Tests.Buckle var actionBlocker = EntitySystem.Get(); var standingState = EntitySystem.Get(); - var coordinates = PoolManager.GetMainEntityCoordinates(mapManager); - human = entityManager.SpawnEntity(BuckleDummyId, coordinates); chair = entityManager.SpawnEntity(StrapDummyId, coordinates); @@ -217,6 +218,9 @@ namespace Content.IntegrationTests.Tests.Buckle await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true, ExtraPrototypes = Prototypes}); var server = pairTracker.Pair.Server; + var testMap = await PoolManager.CreateTestMap(pairTracker); + var coordinates = testMap.GridCoords; + EntityUid human = default; BuckleComponent buckle = null; HandsComponent hands = null; @@ -226,11 +230,8 @@ namespace Content.IntegrationTests.Tests.Buckle await server.WaitAssertion(() => { - var mapManager = IoCManager.Resolve(); var entityManager = IoCManager.Resolve(); - var coordinates = PoolManager.GetMainEntityCoordinates(mapManager); - human = entityManager.SpawnEntity(BuckleDummyId, coordinates); var chair = entityManager.SpawnEntity(StrapDummyId, coordinates); @@ -301,6 +302,9 @@ namespace Content.IntegrationTests.Tests.Buckle await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true, ExtraPrototypes = Prototypes}); var server = pairTracker.Pair.Server; + var testMap = await PoolManager.CreateTestMap(pairTracker); + var coordinates = testMap.GridCoords; + EntityUid human = default; EntityUid chair = default; BuckleComponent buckle = null; @@ -310,8 +314,6 @@ namespace Content.IntegrationTests.Tests.Buckle var mapManager = IoCManager.Resolve(); var entityManager = IoCManager.Resolve(); - var coordinates = PoolManager.GetMainEntityCoordinates(mapManager); - human = entityManager.SpawnEntity(BuckleDummyId, coordinates); chair = entityManager.SpawnEntity(StrapDummyId, coordinates); diff --git a/Content.IntegrationTests/Tests/Chemistry/SolutionSystemTests.cs b/Content.IntegrationTests/Tests/Chemistry/SolutionSystemTests.cs index 7e93741999..d4eacbfb4d 100644 --- a/Content.IntegrationTests/Tests/Chemistry/SolutionSystemTests.cs +++ b/Content.IntegrationTests/Tests/Chemistry/SolutionSystemTests.cs @@ -32,8 +32,8 @@ public sealed class SolutionSystemTests var server = pairTracker.Pair.Server; var entityManager = server.ResolveDependency(); - var mapManager = server.ResolveDependency(); - var coordinates = PoolManager.GetMainEntityCoordinates(mapManager); + var testMap = await PoolManager.CreateTestMap(pairTracker); + var coordinates = testMap.GridCoords; EntityUid beaker; @@ -70,9 +70,10 @@ public sealed class SolutionSystemTests await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true, ExtraPrototypes = Prototypes}); var server = pairTracker.Pair.Server; + var testMap = await PoolManager.CreateTestMap(pairTracker); + var entityManager = server.ResolveDependency(); - var mapManager = server.ResolveDependency(); - var coordinates = PoolManager.GetMainEntityCoordinates(mapManager); + var coordinates = testMap.GridCoords; EntityUid beaker; @@ -108,9 +109,10 @@ public sealed class SolutionSystemTests await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true, ExtraPrototypes = Prototypes}); var server = pairTracker.Pair.Server; + var entityManager = server.ResolveDependency(); - var mapManager = server.ResolveDependency(); - var coordinates = PoolManager.GetMainEntityCoordinates(mapManager); + var testMap = await PoolManager.CreateTestMap(pairTracker); + var coordinates = testMap.GridCoords; EntityUid beaker; @@ -156,8 +158,8 @@ public sealed class SolutionSystemTests var server = pairTracker.Pair.Server; var entityManager = server.ResolveDependency(); - var mapManager = server.ResolveDependency(); - var coordinates = PoolManager.GetMainEntityCoordinates(mapManager); + var testMap = await PoolManager.CreateTestMap(pairTracker); + var coordinates = testMap.GridCoords; EntityUid beaker; diff --git a/Content.IntegrationTests/Tests/Chemistry/TryAllReactionsTest.cs b/Content.IntegrationTests/Tests/Chemistry/TryAllReactionsTest.cs index ccd3013837..2bbbcd6ee9 100644 --- a/Content.IntegrationTests/Tests/Chemistry/TryAllReactionsTest.cs +++ b/Content.IntegrationTests/Tests/Chemistry/TryAllReactionsTest.cs @@ -32,8 +32,8 @@ namespace Content.IntegrationTests.Tests.Chemistry var entityManager = server.ResolveDependency(); var prototypeManager = server.ResolveDependency(); - var mapManager = server.ResolveDependency(); - var coordinates = PoolManager.GetMainEntityCoordinates(mapManager); + var testMap = await PoolManager.CreateTestMap(pairTracker); + var coordinates = testMap.GridCoords; foreach (var reactionPrototype in prototypeManager.EnumeratePrototypes()) { diff --git a/Content.IntegrationTests/Tests/ClickableTest.cs b/Content.IntegrationTests/Tests/ClickableTest.cs index 1b5bd2949e..83cabc7282 100644 --- a/Content.IntegrationTests/Tests/ClickableTest.cs +++ b/Content.IntegrationTests/Tests/ClickableTest.cs @@ -54,11 +54,11 @@ namespace Content.IntegrationTests.Tests var clientEntManager = client.ResolveDependency(); var serverEntManager = server.ResolveDependency(); var eyeManager = client.ResolveDependency(); - var mapManager = server.ResolveDependency(); + var testMap = await PoolManager.CreateTestMap(pairTracker); await server.WaitPost(() => { - var ent = serverEntManager.SpawnEntity(prototype, PoolManager.GetMainEntityCoordinates(mapManager)); + var ent = serverEntManager.SpawnEntity(prototype, testMap.GridCoords); serverEntManager.GetComponent(ent).WorldRotation = angle; serverEntManager.GetComponent(ent).Scale = (scale, scale); entity = ent; diff --git a/Content.IntegrationTests/Tests/Destructible/DestructibleDamageGroupTest.cs b/Content.IntegrationTests/Tests/Destructible/DestructibleDamageGroupTest.cs index 225dbec0c8..ff157aff89 100644 --- a/Content.IntegrationTests/Tests/Destructible/DestructibleDamageGroupTest.cs +++ b/Content.IntegrationTests/Tests/Destructible/DestructibleDamageGroupTest.cs @@ -23,8 +23,9 @@ namespace Content.IntegrationTests.Tests.Destructible await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true, ExtraPrototypes = Prototypes}); var server = pairTracker.Pair.Server; + var testMap = await PoolManager.CreateTestMap(pairTracker); + var sEntityManager = server.ResolveDependency(); - var sMapManager = server.ResolveDependency(); var sPrototypeManager = server.ResolveDependency(); var sEntitySystemManager = server.ResolveDependency(); @@ -35,7 +36,7 @@ namespace Content.IntegrationTests.Tests.Destructible await server.WaitPost(() => { - var coordinates = PoolManager.GetMainEntityCoordinates(sMapManager); + var coordinates = testMap.GridCoords; sDestructibleEntity = sEntityManager.SpawnEntity(DestructibleDamageGroupEntityId, coordinates); sDamageableComponent = IoCManager.Resolve().GetComponent(sDestructibleEntity); diff --git a/Content.IntegrationTests/Tests/Destructible/DestructibleDamageTypeTest.cs b/Content.IntegrationTests/Tests/Destructible/DestructibleDamageTypeTest.cs index d6db6980bc..ac670fdc64 100644 --- a/Content.IntegrationTests/Tests/Destructible/DestructibleDamageTypeTest.cs +++ b/Content.IntegrationTests/Tests/Destructible/DestructibleDamageTypeTest.cs @@ -22,8 +22,9 @@ namespace Content.IntegrationTests.Tests.Destructible await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true, ExtraPrototypes = Prototypes}); var server = pairTracker.Pair.Server; + var testMap = await PoolManager.CreateTestMap(pairTracker); + var sEntityManager = server.ResolveDependency(); - var sMapManager = server.ResolveDependency(); var sEntitySystemManager = server.ResolveDependency(); EntityUid sDestructibleEntity = default; @@ -33,7 +34,7 @@ namespace Content.IntegrationTests.Tests.Destructible await server.WaitPost(() => { - var coordinates = PoolManager.GetMainEntityCoordinates(sMapManager); + var coordinates = testMap.GridCoords; sDestructibleEntity = sEntityManager.SpawnEntity(DestructibleDamageTypeEntityId, coordinates); sDamageableComponent = IoCManager.Resolve().GetComponent(sDestructibleEntity); diff --git a/Content.IntegrationTests/Tests/Destructible/DestructibleDestructionTest.cs b/Content.IntegrationTests/Tests/Destructible/DestructibleDestructionTest.cs index 246d829e92..90dc6f4cf3 100644 --- a/Content.IntegrationTests/Tests/Destructible/DestructibleDestructionTest.cs +++ b/Content.IntegrationTests/Tests/Destructible/DestructibleDestructionTest.cs @@ -21,8 +21,9 @@ namespace Content.IntegrationTests.Tests.Destructible await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true, ExtraPrototypes = Prototypes}); var server = pairTracker.Pair.Server; + var testMap = await PoolManager.CreateTestMap(pairTracker); + var sEntityManager = server.ResolveDependency(); - var sMapManager = server.ResolveDependency(); var sPrototypeManager = server.ResolveDependency(); var sEntitySystemManager = server.ResolveDependency(); @@ -31,7 +32,7 @@ namespace Content.IntegrationTests.Tests.Destructible await server.WaitPost(() => { - var coordinates = PoolManager.GetMainEntityCoordinates(sMapManager); + var coordinates = testMap.GridCoords; sDestructibleEntity = sEntityManager.SpawnEntity(DestructibleDestructionEntityId, coordinates); sTestThresholdListenerSystem = sEntitySystemManager.GetEntitySystem(); diff --git a/Content.IntegrationTests/Tests/Destructible/DestructibleThresholdActivationTest.cs b/Content.IntegrationTests/Tests/Destructible/DestructibleThresholdActivationTest.cs index cf1bffca48..082292ff2a 100644 --- a/Content.IntegrationTests/Tests/Destructible/DestructibleThresholdActivationTest.cs +++ b/Content.IntegrationTests/Tests/Destructible/DestructibleThresholdActivationTest.cs @@ -28,10 +28,11 @@ namespace Content.IntegrationTests.Tests.Destructible var server = pairTracker.Pair.Server; var sEntityManager = server.ResolveDependency(); - var sMapManager = server.ResolveDependency(); var sPrototypeManager = server.ResolveDependency(); var sEntitySystemManager = server.ResolveDependency(); + var testMap = await PoolManager.CreateTestMap(pairTracker); + EntityUid sDestructibleEntity = default; DamageableComponent sDamageableComponent = null; DestructibleComponent sDestructibleComponent = null; @@ -40,7 +41,7 @@ namespace Content.IntegrationTests.Tests.Destructible await server.WaitPost(() => { - var coordinates = PoolManager.GetMainEntityCoordinates(sMapManager); + var coordinates = testMap.GridCoords; sDestructibleEntity = sEntityManager.SpawnEntity(DestructibleEntityId, coordinates); sDamageableComponent = IoCManager.Resolve().GetComponent(sDestructibleEntity); diff --git a/Content.IntegrationTests/Tests/Disposal/DisposalUnitTest.cs b/Content.IntegrationTests/Tests/Disposal/DisposalUnitTest.cs index 114b90cfe0..aaa86ac2ed 100644 --- a/Content.IntegrationTests/Tests/Disposal/DisposalUnitTest.cs +++ b/Content.IntegrationTests/Tests/Disposal/DisposalUnitTest.cs @@ -130,19 +130,20 @@ namespace Content.IntegrationTests.Tests.Disposal await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true, ExtraPrototypes = Prototypes}); var server = pairTracker.Pair.Server; + var testMap = await PoolManager.CreateTestMap(pairTracker); + EntityUid human = default!; EntityUid wrench = default!; EntityUid disposalUnit = default!; EntityUid disposalTrunk = default!; DisposalUnitComponent unit = default!; - var mapManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); await server.WaitAssertion(() => { // Spawn the entities - var coordinates = PoolManager.GetMainEntityCoordinates(mapManager); + var coordinates = testMap.GridCoords; human = entityManager.SpawnEntity("HumanDummy", coordinates); wrench = entityManager.SpawnEntity("WrenchDummy", coordinates); disposalUnit = entityManager.SpawnEntity("DisposalUnitDummy", coordinates); diff --git a/Content.IntegrationTests/Tests/Fluids/PuddleTest.cs b/Content.IntegrationTests/Tests/Fluids/PuddleTest.cs index 217954df0f..68eff0ccd9 100644 --- a/Content.IntegrationTests/Tests/Fluids/PuddleTest.cs +++ b/Content.IntegrationTests/Tests/Fluids/PuddleTest.cs @@ -22,14 +22,15 @@ namespace Content.IntegrationTests.Tests.Fluids await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true}); var server = pairTracker.Pair.Server; - var mapManager = server.ResolveDependency(); + var testMap = await PoolManager.CreateTestMap(pairTracker); + var entitySystemManager = server.ResolveDependency(); var spillSystem = entitySystemManager.GetEntitySystem(); await server.WaitAssertion(() => { var solution = new Solution("Water", FixedPoint2.New(20)); - var tile = PoolManager.GetMainTile(mapManager); + var tile = testMap.Tile; var gridUid = tile.GridUid; var (x, y) = tile.GridIndices; var coordinates = new EntityCoordinates(gridUid, x, y); @@ -48,7 +49,8 @@ namespace Content.IntegrationTests.Tests.Fluids await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true}); var server = pairTracker.Pair.Server; - var mapManager = server.ResolveDependency(); + var testMap = await PoolManager.CreateTestMap(pairTracker); + var entitySystemManager = server.ResolveDependency(); var spillSystem = entitySystemManager.GetEntitySystem(); @@ -57,7 +59,7 @@ namespace Content.IntegrationTests.Tests.Fluids // Remove all tiles await server.WaitPost(() => { - grid = PoolManager.GetMainGrid(mapManager); + grid = testMap.MapGrid; foreach (var tile in grid.GetAllTiles()) { diff --git a/Content.IntegrationTests/Tests/Gravity/WeightlessStatusTests.cs b/Content.IntegrationTests/Tests/Gravity/WeightlessStatusTests.cs index 9ff9c8ed90..fd4fb903eb 100644 --- a/Content.IntegrationTests/Tests/Gravity/WeightlessStatusTests.cs +++ b/Content.IntegrationTests/Tests/Gravity/WeightlessStatusTests.cs @@ -5,6 +5,7 @@ using Content.Shared.Alert; using Content.Shared.Coordinates; using NUnit.Framework; using Robust.Shared.GameObjects; +using Robust.Shared.IoC; using Robust.Shared.Map; namespace Content.IntegrationTests.Tests.Gravity @@ -43,10 +44,11 @@ namespace Content.IntegrationTests.Tests.Gravity EntityUid human = default; + var testMap = await PoolManager.CreateTestMap(pairTracker); + await server.WaitAssertion(() => { - var coordinates = PoolManager.GetMainEntityCoordinates(mapManager); - human = entityManager.SpawnEntity("HumanDummy", coordinates); + human = entityManager.SpawnEntity("HumanDummy", testMap.GridCoords); Assert.True(entityManager.TryGetComponent(human, out AlertsComponent alerts)); }); diff --git a/Content.IntegrationTests/Tests/GravityGridTest.cs b/Content.IntegrationTests/Tests/GravityGridTest.cs index 53c7ae2ca8..c09e9d4d61 100644 --- a/Content.IntegrationTests/Tests/GravityGridTest.cs +++ b/Content.IntegrationTests/Tests/GravityGridTest.cs @@ -33,6 +33,8 @@ namespace Content.IntegrationTests.Tests await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true, ExtraPrototypes = Prototypes}); var server = pairTracker.Pair.Server; + var testMap = await PoolManager.CreateTestMap(pairTracker); + EntityUid generator = default; var entityMan = server.ResolveDependency(); @@ -44,7 +46,7 @@ namespace Content.IntegrationTests.Tests { var mapMan = IoCManager.Resolve(); - var mapId = PoolManager.GetMainGrid(mapMan).ParentMapId; + var mapId = testMap.MapId; grid1 = mapMan.CreateGrid(mapId); grid2 = mapMan.CreateGrid(mapId); diff --git a/Content.IntegrationTests/Tests/Utility/EntitySystemExtensionsTest.cs b/Content.IntegrationTests/Tests/Utility/EntitySystemExtensionsTest.cs index eb432c4c81..95d326f2d4 100644 --- a/Content.IntegrationTests/Tests/Utility/EntitySystemExtensionsTest.cs +++ b/Content.IntegrationTests/Tests/Utility/EntitySystemExtensionsTest.cs @@ -37,25 +37,21 @@ namespace Content.IntegrationTests.Tests.Utility await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true, ExtraPrototypes = Prototypes}); var server = pairTracker.Pair.Server; - var sMapManager = server.ResolveDependency(); + var testMap = await PoolManager.CreateTestMap(pairTracker); + var mapCoordinates = testMap.MapCoords; + var entityCoordinates = testMap.GridCoords; + var sEntityManager = server.ResolveDependency(); var broady = server.ResolveDependency().GetEntitySystem(); await server.WaitAssertion(() => { - var grid = PoolManager.GetMainGrid(sMapManager); - var gridEnt = grid.GridEntityId; - var gridPos = IoCManager.Resolve().GetComponent(gridEnt).WorldPosition; - var entityCoordinates = PoolManager.GetMainEntityCoordinates(sMapManager); // Nothing blocking it, only entity is the grid Assert.NotNull(sEntityManager.SpawnIfUnobstructed(null, entityCoordinates, CollisionGroup.Impassable)); Assert.True(sEntityManager.TrySpawnIfUnobstructed(null, entityCoordinates, CollisionGroup.Impassable, out var entity)); Assert.NotNull(entity); - var mapId = PoolManager.GetMainGrid(sMapManager).ParentMapId; - var mapCoordinates = new MapCoordinates(gridPos.X, gridPos.Y, mapId); - // Nothing blocking it, only entity is the grid Assert.NotNull(sEntityManager.SpawnIfUnobstructed(null, mapCoordinates, CollisionGroup.Impassable)); Assert.True(sEntityManager.TrySpawnIfUnobstructed(null, mapCoordinates, CollisionGroup.Impassable, out entity)); diff --git a/Content.IntegrationTests/Tests/Utility/EntityWhitelistTest.cs b/Content.IntegrationTests/Tests/Utility/EntityWhitelistTest.cs index 2003ecb336..04b4d32cb1 100644 --- a/Content.IntegrationTests/Tests/Utility/EntityWhitelistTest.cs +++ b/Content.IntegrationTests/Tests/Utility/EntityWhitelistTest.cs @@ -63,14 +63,13 @@ namespace Content.IntegrationTests.Tests.Utility await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true, ExtraPrototypes = Prototypes}); var server = pairTracker.Pair.Server; - var mapManager = server.ResolveDependency(); + var testMap = await PoolManager.CreateTestMap(pairTracker); + var mapCoordinates = testMap.MapCoords; + var sEntities = server.ResolveDependency(); await server.WaitAssertion(() => { - var mapId = PoolManager.GetMainGrid(mapManager).ParentMapId; - var mapCoordinates = new MapCoordinates(0, 0, mapId); - var validComponent = sEntities.SpawnEntity("ValidComponentDummy", mapCoordinates); var validTag = sEntities.SpawnEntity("ValidTagDummy", mapCoordinates); diff --git a/Content.Server/StationEvents/Events/StationEvent.cs b/Content.Server/StationEvents/Events/StationEvent.cs index 427d67a0f7..e379aa9881 100644 --- a/Content.Server/StationEvents/Events/StationEvent.cs +++ b/Content.Server/StationEvents/Events/StationEvent.cs @@ -210,6 +210,12 @@ namespace Content.Server.StationEvents.Events entityManager.EntitySysManager.Resolve(ref stationSystem); targetCoords = EntityCoordinates.Invalid; + if (stationSystem.Stations.Count == 0) + { + targetStation = EntityUid.Invalid; + targetGrid = EntityUid.Invalid; + return false; + } targetStation = robustRandom.Pick(stationSystem.Stations); var possibleTargets = entityManager.GetComponent(targetStation).Grids; if (possibleTargets.Count == 0)