Un-revert #26994
This commit is contained in:
@@ -10,9 +10,8 @@ namespace Content.IntegrationTests.Pair;
|
||||
public sealed class TestMapData
|
||||
{
|
||||
public EntityUid MapUid { get; set; }
|
||||
public EntityUid GridUid { get; set; }
|
||||
public MapId MapId { get; set; }
|
||||
public MapGridComponent MapGrid { get; set; } = default!;
|
||||
public Entity<MapGridComponent> Grid;
|
||||
public MapId MapId;
|
||||
public EntityCoordinates GridCoords { get; set; }
|
||||
public MapCoordinates MapCoords { get; set; }
|
||||
public TileRef Tile { get; set; }
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#nullable enable
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Map;
|
||||
@@ -14,36 +15,37 @@ public sealed partial class TestPair
|
||||
/// <summary>
|
||||
/// Creates a map, a grid, and a tile, and gives back references to them.
|
||||
/// </summary>
|
||||
public async Task<TestMapData> CreateTestMap()
|
||||
[MemberNotNull(nameof(TestMap))]
|
||||
public async Task<TestMapData> CreateTestMap(bool initialized = true, string tile = "Plating")
|
||||
{
|
||||
var mapData = new TestMapData();
|
||||
TestMap = mapData;
|
||||
await Server.WaitIdleAsync();
|
||||
var tileDefinitionManager = Server.ResolveDependency<ITileDefinitionManager>();
|
||||
|
||||
var mapData = new TestMapData();
|
||||
TestMap = mapData;
|
||||
await Server.WaitPost(() =>
|
||||
{
|
||||
mapData.MapId = Server.MapMan.CreateMap();
|
||||
mapData.MapUid = Server.MapMan.GetMapEntityId(mapData.MapId);
|
||||
var mapGrid = Server.MapMan.CreateGridEntity(mapData.MapId);
|
||||
mapData.MapGrid = mapGrid;
|
||||
mapData.GridUid = mapGrid.Owner; // Fixing this requires an engine PR.
|
||||
mapData.GridCoords = new EntityCoordinates(mapData.GridUid, 0, 0);
|
||||
var plating = tileDefinitionManager["Plating"];
|
||||
mapData.MapUid = Server.System<SharedMapSystem>().CreateMap(out mapData.MapId, runMapInit: initialized);
|
||||
mapData.Grid = Server.MapMan.CreateGridEntity(mapData.MapId);
|
||||
mapData.GridCoords = new EntityCoordinates(mapData.Grid, 0, 0);
|
||||
var plating = tileDefinitionManager[tile];
|
||||
var platingTile = new Tile(plating.TileId);
|
||||
mapData.MapGrid.SetTile(mapData.GridCoords, platingTile);
|
||||
mapData.Grid.Comp.SetTile(mapData.GridCoords, platingTile);
|
||||
mapData.MapCoords = new MapCoordinates(0, 0, mapData.MapId);
|
||||
mapData.Tile = mapData.MapGrid.GetAllTiles().First();
|
||||
mapData.Tile = mapData.Grid.Comp.GetAllTiles().First();
|
||||
});
|
||||
|
||||
TestMap = mapData;
|
||||
if (!Settings.Connected)
|
||||
return mapData;
|
||||
|
||||
await RunTicksSync(10);
|
||||
mapData.CMapUid = ToClientUid(mapData.MapUid);
|
||||
mapData.CGridUid = ToClientUid(mapData.GridUid);
|
||||
mapData.CGridUid = ToClientUid(mapData.Grid);
|
||||
mapData.CGridCoords = new EntityCoordinates(mapData.CGridUid, 0, 0);
|
||||
|
||||
TestMap = mapData;
|
||||
return mapData;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,8 +32,8 @@ public sealed class AddTests
|
||||
|
||||
var guid = Guid.NewGuid();
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
var coordinates = testMap.GridCoords;
|
||||
await pair.CreateTestMap();
|
||||
var coordinates = pair.TestMap.GridCoords;
|
||||
await server.WaitPost(() =>
|
||||
{
|
||||
var entity = sEntities.SpawnEntity(null, coordinates);
|
||||
|
||||
@@ -212,7 +212,7 @@ namespace Content.IntegrationTests.Tests.DeviceNetwork
|
||||
DeviceNetworkComponent networkComponent1 = null;
|
||||
DeviceNetworkComponent networkComponent2 = null;
|
||||
WiredNetworkComponent wiredNetworkComponent = null;
|
||||
var grid = testMap.MapGrid;
|
||||
var grid = testMap.Grid.Comp;
|
||||
|
||||
var testValue = "test";
|
||||
var payload = new NetworkPayload
|
||||
|
||||
@@ -354,41 +354,18 @@ namespace Content.IntegrationTests.Tests
|
||||
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var server = pair.Server;
|
||||
|
||||
var mapManager = server.ResolveDependency<IMapManager>();
|
||||
var entityManager = server.ResolveDependency<IEntityManager>();
|
||||
var componentFactory = server.ResolveDependency<IComponentFactory>();
|
||||
var tileDefinitionManager = server.ResolveDependency<ITileDefinitionManager>();
|
||||
var mapSystem = entityManager.System<SharedMapSystem>();
|
||||
var logmill = server.ResolveDependency<ILogManager>().GetSawmill("EntityTest");
|
||||
|
||||
Entity<MapGridComponent> grid = default!;
|
||||
|
||||
await server.WaitPost(() =>
|
||||
{
|
||||
// Create a one tile grid to stave off the grid 0 monsters
|
||||
var mapId = mapManager.CreateMap();
|
||||
|
||||
mapManager.AddUninitializedMap(mapId);
|
||||
|
||||
grid = mapManager.CreateGridEntity(mapId);
|
||||
|
||||
var tileDefinition = tileDefinitionManager["Plating"];
|
||||
var tile = new Tile(tileDefinition.TileId);
|
||||
var coordinates = new EntityCoordinates(grid.Owner, Vector2.Zero);
|
||||
|
||||
mapSystem.SetTile(grid.Owner, grid.Comp!, coordinates, tile);
|
||||
|
||||
mapManager.DoMapInitialize(mapId);
|
||||
});
|
||||
|
||||
await pair.CreateTestMap();
|
||||
await server.WaitRunTicks(5);
|
||||
var testLocation = pair.TestMap.GridCoords;
|
||||
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
var testLocation = new EntityCoordinates(grid.Owner, Vector2.Zero);
|
||||
|
||||
foreach (var type in componentFactory.AllRegisteredTypes)
|
||||
{
|
||||
|
||||
@@ -46,17 +46,14 @@ namespace Content.IntegrationTests.Tests.Fluids
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
var grid = testMap.Grid.Comp;
|
||||
|
||||
var entitySystemManager = server.ResolveDependency<IEntitySystemManager>();
|
||||
var spillSystem = entitySystemManager.GetEntitySystem<PuddleSystem>();
|
||||
|
||||
MapGridComponent grid = null;
|
||||
|
||||
// Remove all tiles
|
||||
await server.WaitPost(() =>
|
||||
{
|
||||
grid = testMap.MapGrid;
|
||||
|
||||
foreach (var tile in grid.GetAllTiles())
|
||||
{
|
||||
grid.SetTile(tile.GridIndices, Tile.Empty);
|
||||
|
||||
@@ -989,7 +989,7 @@ public abstract partial class InteractionTest
|
||||
/// </summary>
|
||||
protected async Task AddGravity(EntityUid? uid = null)
|
||||
{
|
||||
var target = uid ?? MapData.GridUid;
|
||||
var target = uid ?? MapData.Grid;
|
||||
await Server.WaitPost(() =>
|
||||
{
|
||||
var gravity = SEntMan.EnsureComponent<GravityComponent>(target);
|
||||
|
||||
@@ -184,7 +184,7 @@ public abstract partial class InteractionTest
|
||||
await Pair.CreateTestMap();
|
||||
PlayerCoords = SEntMan.GetNetCoordinates(MapData.GridCoords.Offset(new Vector2(0.5f, 0.5f)).WithEntityId(MapData.MapUid, Transform, SEntMan));
|
||||
TargetCoords = SEntMan.GetNetCoordinates(MapData.GridCoords.Offset(new Vector2(1.5f, 0.5f)).WithEntityId(MapData.MapUid, Transform, SEntMan));
|
||||
await SetTile(Plating, grid: MapData.MapGrid);
|
||||
await SetTile(Plating, grid: MapData.Grid.Comp);
|
||||
|
||||
// Get player data
|
||||
var sPlayerMan = Server.ResolveDependency<Robust.Server.Player.IPlayerManager>();
|
||||
|
||||
@@ -31,7 +31,7 @@ public abstract class MovementTest : InteractionTest
|
||||
|
||||
for (var i = -Tiles; i <= Tiles; i++)
|
||||
{
|
||||
await SetTile(Plating, SEntMan.GetNetCoordinates(pCoords.Offset(new Vector2(i, 0))), MapData.MapGrid);
|
||||
await SetTile(Plating, SEntMan.GetNetCoordinates(pCoords.Offset(new Vector2(i, 0))), MapData.Grid.Comp);
|
||||
}
|
||||
AssertGridCount(1);
|
||||
|
||||
|
||||
@@ -38,31 +38,15 @@ public sealed class PrototypeSaveTest
|
||||
var mapManager = server.ResolveDependency<IMapManager>();
|
||||
var entityMan = server.ResolveDependency<IEntityManager>();
|
||||
var prototypeMan = server.ResolveDependency<IPrototypeManager>();
|
||||
var tileDefinitionManager = server.ResolveDependency<ITileDefinitionManager>();
|
||||
var seriMan = server.ResolveDependency<ISerializationManager>();
|
||||
var compFact = server.ResolveDependency<IComponentFactory>();
|
||||
|
||||
var prototypes = new List<EntityPrototype>();
|
||||
MapGridComponent grid = default!;
|
||||
EntityUid uid;
|
||||
MapId mapId = default;
|
||||
|
||||
//Build up test environment
|
||||
await server.WaitPost(() =>
|
||||
{
|
||||
// Create a one tile grid to stave off the grid 0 monsters
|
||||
mapId = mapManager.CreateMap();
|
||||
|
||||
mapManager.AddUninitializedMap(mapId);
|
||||
|
||||
grid = mapManager.CreateGrid(mapId);
|
||||
|
||||
var tileDefinition = tileDefinitionManager["FloorSteel"]; // Wires n such disable ambiance while under the floor
|
||||
var tile = new Tile(tileDefinition.TileId);
|
||||
var coordinates = grid.Owner.ToCoordinates();
|
||||
|
||||
grid.SetTile(coordinates, tile);
|
||||
});
|
||||
await pair.CreateTestMap(false, "FloorSteel"); // Wires n such disable ambiance while under the floor
|
||||
var mapId = pair.TestMap.MapId;
|
||||
var grid = pair.TestMap.Grid;
|
||||
|
||||
await server.WaitRunTicks(5);
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ public sealed class DockTest : ContentUnitTest
|
||||
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
entManager.DeleteEntity(map.GridUid);
|
||||
entManager.DeleteEntity(map.Grid);
|
||||
var grid1 = mapManager.CreateGridEntity(mapId);
|
||||
var grid2 = mapManager.CreateGridEntity(mapId);
|
||||
var grid1Ent = grid1.Owner;
|
||||
@@ -104,7 +104,7 @@ public sealed class DockTest : ContentUnitTest
|
||||
// Spawn shuttle and affirm no valid docks.
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
entManager.DeleteEntity(map.GridUid);
|
||||
entManager.DeleteEntity(map.Grid);
|
||||
Assert.That(entManager.System<MapLoaderSystem>().TryLoad(otherMap.MapId, "/Maps/Shuttles/emergency.yml", out var rootUids));
|
||||
shuttle = rootUids[0];
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ public sealed class TileConstructionTests : InteractionTest
|
||||
// Remove grid
|
||||
await SetTile(null);
|
||||
await SetTile(null, PlayerCoords);
|
||||
Assert.That(MapData.MapGrid.Deleted);
|
||||
Assert.That(MapData.Grid.Comp.Deleted);
|
||||
AssertGridCount(0);
|
||||
|
||||
// Place Lattice
|
||||
@@ -70,7 +70,7 @@ public sealed class TileConstructionTests : InteractionTest
|
||||
// Remove grid
|
||||
await SetTile(null);
|
||||
await SetTile(null, PlayerCoords);
|
||||
Assert.That(MapData.MapGrid.Deleted);
|
||||
Assert.That(MapData.Grid.Comp.Deleted);
|
||||
AssertGridCount(0);
|
||||
|
||||
// Space -> Lattice
|
||||
|
||||
@@ -24,6 +24,7 @@ using Robust.Shared.Audio.Systems;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.Enums;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Map.Components;
|
||||
using Robust.Shared.Player;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
@@ -180,7 +181,7 @@ public sealed class PiratesRuleSystem : GameRuleSystem<PiratesRuleComponent>
|
||||
|
||||
var aabbs = EntityQuery<StationDataComponent>().SelectMany(x =>
|
||||
x.Grids.Select(x =>
|
||||
xformQuery.GetComponent(x).WorldMatrix.TransformBox(_mapManager.GetGridComp(x).LocalAABB)))
|
||||
xformQuery.GetComponent(x).WorldMatrix.TransformBox(Comp<MapGridComponent>(x).LocalAABB)))
|
||||
.ToArray();
|
||||
|
||||
var aabb = aabbs[0];
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
// ReSharper disable once RedundantUsingDirective
|
||||
// Used to warn the player in big red letters in debug mode
|
||||
|
||||
using System.Linq;
|
||||
using Content.Server.Administration;
|
||||
using Content.Server.GameTicking;
|
||||
using Content.Shared.Administration;
|
||||
using Content.Shared.CCVar;
|
||||
using Robust.Server.Player;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Server.Maps;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.Console;
|
||||
using Robust.Shared.ContentPack;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Server.Mapping
|
||||
{
|
||||
@@ -19,6 +16,8 @@ namespace Content.Server.Mapping
|
||||
sealed class MappingCommand : IConsoleCommand
|
||||
{
|
||||
[Dependency] private readonly IEntityManager _entities = default!;
|
||||
[Dependency] private readonly IMapManager _map = default!;
|
||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||
|
||||
public string Command => "mapping";
|
||||
public string Description => Loc.GetString("cmd-mapping-desc");
|
||||
@@ -57,13 +56,13 @@ namespace Content.Server.Mapping
|
||||
shell.WriteError(Loc.GetString("cmd-mapping-warning"));
|
||||
#endif
|
||||
|
||||
var mapManager = IoCManager.Resolve<IMapManager>();
|
||||
MapId mapId;
|
||||
string? toLoad = null;
|
||||
var mapSys = _entities.System<SharedMapSystem>();
|
||||
|
||||
// Get the map ID to use
|
||||
if (args.Length is 1 or 2)
|
||||
{
|
||||
|
||||
if (!int.TryParse(args[0], out var intMapId))
|
||||
{
|
||||
shell.WriteError(Loc.GetString("cmd-mapping-failure-integer", ("arg", args[0])));
|
||||
@@ -79,35 +78,33 @@ namespace Content.Server.Mapping
|
||||
return;
|
||||
}
|
||||
|
||||
if (mapManager.MapExists(mapId))
|
||||
if (_map.MapExists(mapId))
|
||||
{
|
||||
shell.WriteError(Loc.GetString("cmd-mapping-exists", ("mapId", mapId)));
|
||||
return;
|
||||
}
|
||||
|
||||
// either load a map or create a new one.
|
||||
if (args.Length <= 1)
|
||||
{
|
||||
mapSys.CreateMap(mapId, runMapInit: false);
|
||||
}
|
||||
else
|
||||
{
|
||||
var loadOptions = new MapLoadOptions {StoreMapUids = true};
|
||||
_entities.System<MapLoaderSystem>().TryLoad(mapId, args[1], out _, loadOptions);
|
||||
}
|
||||
|
||||
// was the map actually created or did it fail somehow?
|
||||
if (!_map.MapExists(mapId))
|
||||
{
|
||||
shell.WriteError(Loc.GetString("cmd-mapping-error"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mapId = mapManager.NextMapId();
|
||||
}
|
||||
|
||||
string? toLoad = null;
|
||||
// either load a map or create a new one.
|
||||
if (args.Length <= 1)
|
||||
{
|
||||
shell.ExecuteCommand($"addmap {mapId} false");
|
||||
}
|
||||
else
|
||||
{
|
||||
toLoad = CommandParsing.Escape(args[1]);
|
||||
shell.ExecuteCommand($"loadmap {mapId} \"{toLoad}\" 0 0 0 true");
|
||||
}
|
||||
|
||||
// was the map actually created?
|
||||
if (!mapManager.MapExists(mapId))
|
||||
{
|
||||
shell.WriteError(Loc.GetString("cmd-mapping-error"));
|
||||
return;
|
||||
mapSys.CreateMap(out mapId, runMapInit: false);
|
||||
}
|
||||
|
||||
// map successfully created. run misc helpful mapping commands
|
||||
@@ -117,17 +114,15 @@ namespace Content.Server.Mapping
|
||||
shell.ExecuteCommand("aghost");
|
||||
}
|
||||
|
||||
var cfg = IoCManager.Resolve<IConfigurationManager>();
|
||||
|
||||
// don't interrupt mapping with events or auto-shuttle
|
||||
shell.ExecuteCommand("sudo cvar events.enabled false");
|
||||
shell.ExecuteCommand("sudo cvar shuttle.auto_call_time 0");
|
||||
|
||||
if (cfg.GetCVar(CCVars.AutosaveEnabled))
|
||||
if (_cfg.GetCVar(CCVars.AutosaveEnabled))
|
||||
shell.ExecuteCommand($"toggleautosave {mapId} {toLoad ?? "NEWMAP"}");
|
||||
shell.ExecuteCommand($"tp 0 0 {mapId}");
|
||||
shell.RemoteExecuteCommand("mappingclientsidesetup");
|
||||
mapManager.SetMapPaused(mapId, true);
|
||||
_map.SetMapPaused(mapId, true);
|
||||
|
||||
if (args.Length == 2)
|
||||
shell.WriteLine(Loc.GetString("cmd-mapping-success-load",("mapId",mapId),("path", args[1])));
|
||||
|
||||
@@ -164,6 +164,7 @@ public sealed partial class SalvageSystem
|
||||
_dungeon,
|
||||
_metaData,
|
||||
_transform,
|
||||
_mapSystem,
|
||||
station,
|
||||
coordinatesDisk,
|
||||
missionParams,
|
||||
|
||||
@@ -40,7 +40,6 @@ namespace Content.Server.Salvage
|
||||
{
|
||||
[Dependency] private readonly IChatManager _chat = default!;
|
||||
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
|
||||
[Dependency] private readonly IEntityManager _entManager = default!;
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
[Dependency] private readonly ILogManager _logManager = default!;
|
||||
[Dependency] private readonly IMapManager _mapManager = default!;
|
||||
@@ -56,6 +55,7 @@ namespace Content.Server.Salvage
|
||||
[Dependency] private readonly RadioSystem _radioSystem = default!;
|
||||
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
||||
[Dependency] private readonly SharedTransformSystem _transform = default!;
|
||||
[Dependency] private readonly SharedMapSystem _mapSystem = default!;
|
||||
[Dependency] private readonly ShuttleSystem _shuttle = default!;
|
||||
[Dependency] private readonly ShuttleConsoleSystem _shuttleConsoles = default!;
|
||||
[Dependency] private readonly StationSystem _station = default!;
|
||||
|
||||
@@ -50,6 +50,7 @@ public sealed class SpawnSalvageMissionJob : Job<bool>
|
||||
private readonly DungeonSystem _dungeon;
|
||||
private readonly MetaDataSystem _metaData;
|
||||
private readonly SharedTransformSystem _xforms;
|
||||
private readonly SharedMapSystem _map;
|
||||
|
||||
public readonly EntityUid Station;
|
||||
public readonly EntityUid? CoordinatesDisk;
|
||||
@@ -69,6 +70,7 @@ public sealed class SpawnSalvageMissionJob : Job<bool>
|
||||
DungeonSystem dungeon,
|
||||
MetaDataSystem metaData,
|
||||
SharedTransformSystem xform,
|
||||
SharedMapSystem map,
|
||||
EntityUid station,
|
||||
EntityUid? coordinatesDisk,
|
||||
SalvageMissionParams missionParams,
|
||||
@@ -83,6 +85,7 @@ public sealed class SpawnSalvageMissionJob : Job<bool>
|
||||
_dungeon = dungeon;
|
||||
_metaData = metaData;
|
||||
_xforms = xform;
|
||||
_map = map;
|
||||
Station = station;
|
||||
CoordinatesDisk = coordinatesDisk;
|
||||
_missionParams = missionParams;
|
||||
@@ -95,9 +98,7 @@ public sealed class SpawnSalvageMissionJob : Job<bool>
|
||||
protected override async Task<bool> Process()
|
||||
{
|
||||
_sawmill.Debug("salvage", $"Spawning salvage mission with seed {_missionParams.Seed}");
|
||||
var mapId = _mapManager.CreateMap();
|
||||
var mapUid = _mapManager.GetMapEntityId(mapId);
|
||||
_mapManager.AddUninitializedMap(mapId);
|
||||
var mapUid = _map.CreateMap(out var mapId, runMapInit: false);
|
||||
MetaDataComponent? metadata = null;
|
||||
var grid = _entManager.EnsureComponent<MapGridComponent>(mapUid);
|
||||
var random = new Random(_missionParams.Seed);
|
||||
|
||||
Reference in New Issue
Block a user