using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using Robust.Shared.GameObjects;
using Robust.Shared.Map.Components;
namespace Robust.Shared.Map;
///
/// Arguments for when a map is created or deleted locally ore remotely.
///
public sealed class MapEventArgs : EventArgs
{
///
/// Creates a new instance of this class.
///
public MapEventArgs(MapId map)
{
Map = map;
}
///
/// Map that is being modified.
///
public MapId Map { get; }
}
internal partial class MapManager
{
///
public virtual void DeleteMap(MapId mapId)
{
_mapSystem.DeleteMap(mapId);
}
///
public MapId CreateMap(MapId? mapId = null)
{
if (mapId != null)
{
_mapSystem.CreateMap(mapId.Value);
return mapId.Value;
}
_mapSystem.CreateMap(out var map);
return map;
}
///
public bool MapExists([NotNullWhen(true)] MapId? mapId)
{
return _mapSystem.MapExists(mapId);
}
///
public EntityUid GetMapEntityId(MapId mapId)
{
return _mapSystem.GetMapOrInvalid(mapId);
}
///
/// Replaces GetMapEntity()'s throw-on-failure semantics.
///
public EntityUid GetMapEntityIdOrThrow(MapId mapId)
{
return _mapSystem.GetMap(mapId);
}
public bool TryGetMap([NotNullWhen(true)] MapId? mapId, [NotNullWhen(true)] out EntityUid? uid)
{
return _mapSystem.TryGetMap(mapId, out uid);
}
///
public IEnumerable GetAllMapIds()
{
return _mapSystem.GetAllMapIds();
}
///
public bool IsMap(EntityUid uid)
{
return EntityManager.HasComponent(uid);
}
}