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