mapData.GridCoords = new EntityCoordinates(mapData.Grid, 0, 0);
var plating = tileDefinitionManager[tile];
var platingTile = new Tile(plating.TileId);
- mapData.Grid.Comp.SetTile(mapData.GridCoords, platingTile);
+ Server.System<SharedMapSystem>().SetTile(mapData.Grid.Owner, mapData.Grid.Comp, mapData.GridCoords, platingTile);
mapData.MapCoords = new MapCoordinates(0, 0, mapData.MapId);
- mapData.Tile = mapData.Grid.Comp.GetAllTiles().First();
+ mapData.Tile = Server.System<SharedMapSystem>().GetAllTiles(mapData.Grid.Owner, mapData.Grid.Comp).First();
});
TestMap = mapData;
[Dependency] private readonly IConfigurationManager _conf = default!;
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly IAdminLogManager _adminLogger = default!;
- [Dependency] private readonly MapSystem _mapSystem = default!;
+ [Dependency] private readonly SharedMapSystem _mapSystem = default!;
private readonly Dictionary<NetEntity, HashSet<Vector2i>> _dirtyChunks = new();
private readonly Dictionary<ICommonSession, Dictionary<NetEntity, HashSet<Vector2i>>> _previousSentChunks = new();
return;
// Transfer decals over to the new grid.
- var enumerator = Comp<MapGridComponent>(ev.Grid).GetAllTilesEnumerator();
+ var enumerator = _mapSystem.GetAllTilesEnumerator(ev.Grid, Comp<MapGridComponent>(ev.Grid));
var oldChunkCollection = oldComp.ChunkCollection.ChunkCollection;
var chunkCollection = newComp.ChunkCollection.ChunkCollection;
Dictionary<Vector2i, NeighborFlag> edges = new();
_gridEdges[ev.EntityUid] = edges;
- foreach (var tileRef in grid.GetAllTiles())
+ foreach (var tileRef in _map.GetAllTiles(ev.EntityUid, grid))
{
if (IsEdge(grid, tileRef.GridIndices, out var dir))
edges.Add(tileRef.GridIndices, dir);
private readonly IEntityManager _entMan;
private readonly ExplosionSystem _system;
+ private readonly SharedMapSystem _mapSystem;
public readonly EntityUid VisualEnt;
IEntityManager entMan,
IMapManager mapMan,
EntityUid visualEnt,
- EntityUid? cause)
+ EntityUid? cause,
+ SharedMapSystem mapSystem)
{
VisualEnt = visualEnt;
Cause = cause;
_system = system;
+ _mapSystem = mapSystem;
ExplosionType = explosionType;
_tileSetIntensity = tileSetIntensity;
Epicenter = epicenter;
{
if (list.Count > 0 && _entMan.EntityExists(grid.Owner))
{
- grid.SetTiles(list);
+ _mapSystem.SetTiles(grid.Owner, grid, list);
}
}
_tileUpdateDict.Clear();
EntityManager,
_mapManager,
visualEnt,
- queued.Cause);
+ queued.Cause,
+ _map);
}
private void CameraShake(float range, MapCoordinates epicenter, float totalIntensity)
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly DamageableSystem _damageable = default!;
[Dependency] private readonly SharedTransformSystem _transform = default!;
+ [Dependency] private readonly SharedMapSystem _map = default!;
public override void Update(float frameTime)
{
if (!TryComp<MapGridComponent>(trans.GridUid, out var grid))
continue;
- grid.SetTile(trans.Coordinates, Tile.Empty);
+ _map.SetTile(trans.GridUid.Value, grid, trans.Coordinates, Tile.Empty);
}
}
}
}
- grid.SetTiles(tiles);
+ _mapSystem.SetTiles(gridUid, grid, tiles);
tiles.Clear();
component.LoadedChunks.Remove(chunk);
[Dependency] private readonly VisibilitySystem _visibilitySystem = default!;
[Dependency] private readonly SharedMindSystem _minds = default!;
[Dependency] private readonly SharedTransformSystem _transform = default!;
+ [Dependency] private readonly SharedMapSystem _map = default!;
[Dependency] private readonly IAdminLogManager _adminLogger = default!;
[Dependency] private readonly ExamineSystemShared _examine = default!;
}
// TODO: FOV
- private void SendMessage(EntityUid source, IEnumerable<ICommonSession> viewers, EntityUid pointed, string selfMessage,
- string viewerMessage, string? viewerPointedAtMessage = null)
+ private void SendMessage(
+ EntityUid source,
+ IEnumerable<ICommonSession> viewers,
+ EntityUid pointed,
+ string selfMessage,
+ string viewerMessage,
+ string? viewerPointedAtMessage = null)
{
var netSource = GetNetEntity(source);
if (_mapManager.TryFindGridAt(mapCoordsPointed, out var gridUid, out var grid))
{
- position = $"EntId={gridUid} {grid.WorldToTile(mapCoordsPointed.Position)}";
- tileRef = grid.GetTileRef(grid.WorldToTile(mapCoordsPointed.Position));
+ position = $"EntId={gridUid} {_map.WorldToTile(gridUid, grid, mapCoordsPointed.Position)}";
+ tileRef = _map.GetTileRef(gridUid, grid, _map.WorldToTile(gridUid, grid, mapCoordsPointed.Position));
}
var tileDef = _tileDefinitionManager[tileRef?.Tile.TypeId ?? 0];
public sealed partial class CableSystem
{
[Dependency] private readonly IAdminLogManager _adminLogger = default!;
+ [Dependency] private readonly SharedTransformSystem _transform = default!;
+ [Dependency] private readonly SharedMapSystem _map = default!;
private void InitializeCablePlacer()
{
if (component.CablePrototypeId == null)
return;
- if(!TryComp<MapGridComponent>(args.ClickLocation.GetGridUid(EntityManager), out var grid))
+ if(!TryComp<MapGridComponent>(_transform.GetGrid(args.ClickLocation), out var grid))
return;
+ var gridUid = _transform.GetGrid(args.ClickLocation)!.Value;
var snapPos = grid.TileIndicesFor(args.ClickLocation);
- var tileDef = (ContentTileDefinition) _tileManager[grid.GetTileRef(snapPos).Tile.TypeId];
+ var tileDef = (ContentTileDefinition) _tileManager[_map.GetTileRef(gridUid, grid,snapPos).Tile.TypeId];
if (!tileDef.IsSubFloor || !tileDef.Sturdy)
return;
-using System.Threading.Tasks;
using Content.Server.Administration;
using Content.Shared.Administration;
using Content.Shared.Procedural;
-using Content.Shared.Procedural.DungeonGenerators;
using Robust.Shared.Console;
using Robust.Shared.Map;
using Robust.Shared.Map.Components;
}
var position = new Vector2i(posX, posY);
- var dungeonUid = _mapManager.GetMapEntityId(mapId);
+ var dungeonUid = _maps.GetMapOrInvalid(mapId);
if (!TryComp<MapGridComponent>(dungeonUid, out var dungeonGrid))
{
}
var mapId = new MapId(mapInt);
- var mapUid = _mapManager.GetMapEntityId(mapId);
+ var mapUid = _maps.GetMapOrInvalid(mapId);
if (!_prototype.TryIndex<DungeonRoomPackPrototype>(args[1], out var pack))
{
}
}
- grid.SetTiles(tiles);
+ _maps.SetTiles(mapUid, grid, tiles);
shell.WriteLine(Loc.GetString("cmd-dungen_pack_vis"));
}
}
var mapId = new MapId(mapInt);
- var mapUid = _mapManager.GetMapEntityId(mapId);
+ var mapUid =_maps.GetMapOrInvalid(mapId);
if (!_prototype.TryIndex<DungeonPresetPrototype>(args[1], out var preset))
{
}
}
- grid.SetTiles(tiles);
+ _maps.SetTiles(mapUid, grid, tiles);
shell.WriteLine(Loc.GetString("cmd-dungen_pack_vis"));
}
[Dependency] private readonly SharedContainerSystem _containerSystem = default!;
[Dependency] private readonly SharedPhysicsSystem _physics = default!;
[Dependency] private readonly SharedTransformSystem _xformSystem = default!;
+ [Dependency] private readonly SharedMapSystem _mapSystem = default!;
[Dependency] private readonly TagSystem _tagSystem = default!;
#endregion Dependencies
var ev = new TilesConsumedByEventHorizonEvent(tiles, gridId, grid, hungry, eventHorizon);
RaiseLocalEvent(hungry, ref ev);
- grid.SetTiles(tiles);
+ _mapSystem.SetTiles(gridId, grid, tiles);
}
/// <summary>
var xform = Transform(uid);
if (TryComp<MapGridComponent>(xform.GridUid, out var grid)
- && HasFloorCover(grid, grid.TileIndicesFor(xform.Coordinates)))
+ && HasFloorCover(xform.GridUid.Value, grid, Map.TileIndicesFor(xform.GridUid.Value, grid, xform.Coordinates)))
{
args.Cancel();
}
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly ITileDefinitionManager _tileDefinition = default!;
[Dependency] private readonly TileSystem _tiles = default!;
+ [Dependency] private readonly SharedMapSystem _map = default!;
/// <inheritdoc />
public override void Initialize()
private void OnBlobFloorPlanBuilderStartup(EntityUid uid, BlobFloorPlanBuilderComponent component,
ComponentStartup args)
{
- PlaceFloorplanTiles(component, Comp<MapGridComponent>(uid));
+ PlaceFloorplanTiles(uid, component, Comp<MapGridComponent>(uid));
}
- private void PlaceFloorplanTiles(BlobFloorPlanBuilderComponent comp, MapGridComponent grid)
+ private void PlaceFloorplanTiles(EntityUid gridUid, BlobFloorPlanBuilderComponent comp, MapGridComponent grid)
{
// NO MORE THAN TWO ALLOCATIONS THANK YOU VERY MUCH.
// TODO: Just put these on a field instead then?
}
}
- grid.SetTiles(taken.Select(x => (x.Key, x.Value)).ToList());
+ _map.SetTiles(gridUid, grid, taken.Select(x => (x.Key, x.Value)).ToList());
}
}
{
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly ITileDefinitionManager _tileDefinition = default!;
+ [Dependency] private readonly SharedMapSystem _map = default!;
/// <inheritdoc />
public override void Initialize()
{
var placeables = new List<string?>(4);
var grid = Comp<MapGridComponent>(uid);
- var enumerator = grid.GetAllTilesEnumerator();
+ var enumerator = _map.GetAllTilesEnumerator(uid, grid);
while (enumerator.MoveNext(out var tile))
{
var coords = grid.GridTileToLocal(tile.Value.GridIndices);
[Dependency] private readonly SharedGravitySystem _gravity = default!;
[Dependency] private readonly SharedMoverController _mover = default!;
[Dependency] private readonly SharedPhysicsSystem _physics = default!;
+ [Dependency] private readonly SharedMapSystem _map = default!;
private EntityQuery<TileFrictionModifierComponent> _frictionQuery;
private EntityQuery<TransformComponent> _xformQuery;
: DefaultFriction;
}
- var tile = grid.GetTileRef(xform.Coordinates);
+ var tile = _map.GetTileRef(xform.GridUid.Value, grid, xform.Coordinates);
// If it's a map but on an empty tile then just assume it has gravity.
if (tile.Tile.IsEmpty &&
[Dependency] private readonly SharedAmbientSoundSystem _ambient = default!;
[Dependency] private readonly SharedAudioSystem _audioSystem = default!;
[Dependency] protected readonly SharedPopupSystem Popup = default!;
+ [Dependency] private readonly SharedMapSystem _map = default!;
[Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!;
public override void Initialize()
return;
}
- var tile = grid.GetTileRef(xform.Coordinates);
+ var tile = _map.GetTileRef(xform.GridUid.Value, grid, xform.Coordinates);
// Handle maps being grids (we'll still emit the sound).
if (xform.GridUid != xform.MapUid && tile.IsSpace(_tileDefMan))
{
[Dependency] private readonly ITileDefinitionManager _tileDefinitionManager = default!;
[Dependency] private readonly SharedAmbientSoundSystem _ambientSoundSystem = default!;
+ [Dependency] protected readonly SharedMapSystem Map = default!;
[Dependency] protected readonly SharedAppearanceSystem Appearance = default!;
public override void Initialize()
if (args.NewTile.Tile.IsEmpty)
return; // Anything that was here will be unanchored anyways.
- UpdateTile(Comp<MapGridComponent>(args.NewTile.GridUid), args.NewTile.GridIndices);
+ UpdateTile(args.NewTile.GridUid, Comp<MapGridComponent>(args.NewTile.GridUid), args.NewTile.GridIndices);
}
/// <summary>
return;
if (xform.Anchored && TryComp<MapGridComponent>(xform.GridUid, out var grid))
- component.IsUnderCover = HasFloorCover(grid, grid.TileIndicesFor(xform.Coordinates));
+ component.IsUnderCover = HasFloorCover(xform.GridUid.Value, grid, Map.TileIndicesFor(xform.GridUid.Value, grid, xform.Coordinates));
else
component.IsUnderCover = false;
UpdateAppearance(uid, component);
}
- public bool HasFloorCover(MapGridComponent grid, Vector2i position)
+ public bool HasFloorCover(EntityUid gridUid, MapGridComponent grid, Vector2i position)
{
// TODO Redo this function. Currently wires on an asteroid are always "below the floor"
- var tileDef = (ContentTileDefinition) _tileDefinitionManager[grid.GetTileRef(position).Tile.TypeId];
+ var tileDef = (ContentTileDefinition) _tileDefinitionManager[Map.GetTileRef(gridUid, grid, position).Tile.TypeId];
return !tileDef.IsSubFloor;
}
- private void UpdateTile(MapGridComponent grid, Vector2i position)
+ private void UpdateTile(EntityUid gridUid, MapGridComponent grid, Vector2i position)
{
- var covered = HasFloorCover(grid, position);
+ var covered = HasFloorCover(gridUid, grid, position);
- foreach (var uid in grid.GetAnchoredEntities(position))
+ foreach (var uid in Map.GetAnchoredEntities(gridUid, grid, position))
{
if (!TryComp(uid, out SubFloorHideComponent? hideComp))
continue;
[Dependency] private readonly SharedTransformSystem _transform = default!;
[Dependency] private readonly TileSystem _tile = default!;
[Dependency] private readonly SharedPhysicsSystem _physics = default!;
+ [Dependency] private readonly SharedMapSystem _map = default!;
private static readonly Vector2 CheckRange = new(1f, 1f);
return;
}
- var tile = mapGrid.GetTileRef(location);
+ var tile = _map.GetTileRef(gridUid, mapGrid, location);
var baseTurf = (ContentTileDefinition) _tileDefinitionManager[tile.Tile.TypeId];
if (HasBaseTurf(currentTileDefinition, baseTurf.ID))
var random = new System.Random((int) _timing.CurTick.Value);
var variant = _tile.PickVariant((ContentTileDefinition) _tileDefinitionManager[tileId], random);
- mapGrid.SetTile(location.Offset(new Vector2(offset, offset)), new Tile(tileId, 0, variant));
+ _map.SetTile(gridUid, mapGrid,location.Offset(new Vector2(offset, offset)), new Tile(tileId, 0, variant));
_audio.PlayPredicted(placeSound, location, user);
}