@@ -73,17 +73,18 @@ namespace Content.Server.RCD.Systems
|
||||
return;
|
||||
// Try to fix it (i.e. if clicking on space)
|
||||
// Note: Ideally there'd be a better way, but there isn't right now.
|
||||
var gridID = clickLocationMod.GetGridId(EntityManager);
|
||||
if (!gridID.IsValid())
|
||||
var gridIdOpt = clickLocationMod.GetGridUid(EntityManager);
|
||||
if (!(gridIdOpt is EntityUid gridId) || !gridId.IsValid())
|
||||
{
|
||||
clickLocationMod = clickLocationMod.AlignWithClosestGridTile();
|
||||
gridID = clickLocationMod.GetGridId(EntityManager);
|
||||
gridIdOpt = clickLocationMod.GetGridUid(EntityManager);
|
||||
// Check if fixing it failed / get final grid ID
|
||||
if (!(gridIdOpt is EntityUid gridId2) || !gridId2.IsValid())
|
||||
return;
|
||||
gridId = gridId2;
|
||||
}
|
||||
// Check if fixing it failed / get final grid ID
|
||||
if (!gridID.IsValid())
|
||||
return;
|
||||
|
||||
var mapGrid = _mapManager.GetGrid(gridID);
|
||||
var mapGrid = _mapManager.GetGrid(gridId);
|
||||
var tile = mapGrid.GetTileRef(clickLocationMod);
|
||||
var snapPos = mapGrid.TileIndicesFor(clickLocationMod);
|
||||
|
||||
@@ -114,14 +115,14 @@ namespace Content.Server.RCD.Systems
|
||||
//Floor mode just needs the tile to be a space tile (subFloor)
|
||||
case RcdMode.Floors:
|
||||
mapGrid.SetTile(snapPos, new Tile(_tileDefinitionManager["FloorSteel"].TileId));
|
||||
_adminLogger.Add(LogType.RCD, LogImpact.High, $"{ToPrettyString(args.User):user} used RCD to set grid: {tile.GridIndex} {snapPos} to FloorSteel");
|
||||
_adminLogger.Add(LogType.RCD, LogImpact.High, $"{ToPrettyString(args.User):user} used RCD to set grid: {tile.GridUid} {snapPos} to FloorSteel");
|
||||
break;
|
||||
//We don't want to place a space tile on something that's already a space tile. Let's do the inverse of the last check.
|
||||
case RcdMode.Deconstruct:
|
||||
if (!tile.IsBlockedTurf(true)) //Delete the turf
|
||||
{
|
||||
mapGrid.SetTile(snapPos, Tile.Empty);
|
||||
_adminLogger.Add(LogType.RCD, LogImpact.High, $"{ToPrettyString(args.User):user} used RCD to set grid: {tile.GridIndex} tile: {snapPos} to space");
|
||||
_adminLogger.Add(LogType.RCD, LogImpact.High, $"{ToPrettyString(args.User):user} used RCD to set grid: {tile.GridUid} tile: {snapPos} to space");
|
||||
}
|
||||
else //Delete what the user targeted
|
||||
{
|
||||
@@ -137,12 +138,12 @@ namespace Content.Server.RCD.Systems
|
||||
case RcdMode.Walls:
|
||||
var ent = EntityManager.SpawnEntity("WallSolid", mapGrid.GridTileToLocal(snapPos));
|
||||
Transform(ent).LocalRotation = Angle.Zero; // Walls always need to point south.
|
||||
_adminLogger.Add(LogType.RCD, LogImpact.High, $"{ToPrettyString(args.User):user} used RCD to spawn {ToPrettyString(ent)} at {snapPos} on grid {mapGrid.Index}");
|
||||
_adminLogger.Add(LogType.RCD, LogImpact.High, $"{ToPrettyString(args.User):user} used RCD to spawn {ToPrettyString(ent)} at {snapPos} on grid {mapGrid.GridEntityId}");
|
||||
break;
|
||||
case RcdMode.Airlock:
|
||||
var airlock = EntityManager.SpawnEntity("Airlock", mapGrid.GridTileToLocal(snapPos));
|
||||
Transform(airlock).LocalRotation = Transform(rcd.Owner).LocalRotation; //Now apply icon smoothing.
|
||||
_adminLogger.Add(LogType.RCD, LogImpact.High, $"{ToPrettyString(args.User):user} used RCD to spawn {ToPrettyString(airlock)} at {snapPos} on grid {mapGrid.Index}");
|
||||
_adminLogger.Add(LogType.RCD, LogImpact.High, $"{ToPrettyString(args.User):user} used RCD to spawn {ToPrettyString(airlock)} at {snapPos} on grid {mapGrid.GridEntityId}");
|
||||
break;
|
||||
default:
|
||||
args.Handled = true;
|
||||
|
||||
Reference in New Issue
Block a user