CentComm Map Updates (#34475)

* Bandage fix denied animations playing on devices without them

* CentComm blast door prototype

* CentComm button

* CentComm window shutters

* CC Updates

* Save as grid

* Remove an extra detective figurine

I like them better in the interrogation room

* Remove paramed locker, let pumps shut off

* Fix wrong HOP locker prototype
This commit is contained in:
War Pigeon
2025-01-18 23:32:33 -06:00
committed by GitHub
parent a2df7719b1
commit b471c1094d
5 changed files with 910 additions and 841 deletions

View File

@@ -1,13 +1,13 @@
using Content.Server.Administration.Logs;
using Content.Shared.Interaction;
using Content.Shared.Doors.Components;
using Content.Shared.Access.Components;
using Content.Server.Doors.Systems;
using Content.Server.Power.EntitySystems;
using Content.Shared.Access.Components;
using Content.Shared.Database;
using Content.Shared.Doors.Components;
using Content.Shared.Examine;
using Content.Shared.Remotes.EntitySystems;
using Content.Shared.Interaction;
using Content.Shared.Remotes.Components;
using Content.Shared.Remotes.EntitySystems;
namespace Content.Shared.Remotes
{
@@ -17,6 +17,7 @@ namespace Content.Shared.Remotes
[Dependency] private readonly AirlockSystem _airlock = default!;
[Dependency] private readonly DoorSystem _doorSystem = default!;
[Dependency] private readonly ExamineSystemShared _examine = default!;
public override void Initialize()
{
base.Initialize();
@@ -31,9 +32,12 @@ namespace Content.Shared.Remotes
if (args.Handled
|| args.Target == null
|| !TryComp<DoorComponent>(args.Target, out var doorComp) // If it isn't a door we don't use it
// Only able to control doors if they are within your vision and within your max range.
// Not affected by mobs or machines anymore.
|| !_examine.InRangeUnOccluded(args.User, args.Target.Value, SharedInteractionSystem.MaxRaycastRange, null))
// Only able to control doors if they are within your vision and within your max range.
// Not affected by mobs or machines anymore.
|| !_examine.InRangeUnOccluded(args.User,
args.Target.Value,
SharedInteractionSystem.MaxRaycastRange,
null))
{
return;
@@ -50,7 +54,8 @@ namespace Content.Shared.Remotes
if (TryComp<AccessReaderComponent>(args.Target, out var accessComponent)
&& !_doorSystem.HasAccess(args.Target.Value, args.Used, doorComp, accessComponent))
{
_doorSystem.Deny(args.Target.Value, doorComp, args.User);
if (isAirlock)
_doorSystem.Deny(args.Target.Value, doorComp, args.User);
Popup.PopupEntity(Loc.GetString("door-remote-denied"), args.User, args.User);
return;
}
@@ -59,7 +64,9 @@ namespace Content.Shared.Remotes
{
case OperatingMode.OpenClose:
if (_doorSystem.TryToggleDoor(args.Target.Value, doorComp, args.Used))
_adminLogger.Add(LogType.Action, LogImpact.Medium, $"{ToPrettyString(args.User):player} used {ToPrettyString(args.Used)} on {ToPrettyString(args.Target.Value)}: {doorComp.State}");
_adminLogger.Add(LogType.Action,
LogImpact.Medium,
$"{ToPrettyString(args.User):player} used {ToPrettyString(args.Used)} on {ToPrettyString(args.Target.Value)}: {doorComp.State}");
break;
case OperatingMode.ToggleBolts:
if (TryComp<DoorBoltComponent>(args.Target, out var boltsComp))
@@ -67,17 +74,22 @@ namespace Content.Shared.Remotes
if (!boltsComp.BoltWireCut)
{
_doorSystem.SetBoltsDown((args.Target.Value, boltsComp), !boltsComp.BoltsDown, args.Used);
_adminLogger.Add(LogType.Action, LogImpact.Medium, $"{ToPrettyString(args.User):player} used {ToPrettyString(args.Used)} on {ToPrettyString(args.Target.Value)} to {(boltsComp.BoltsDown ? "" : "un")}bolt it");
_adminLogger.Add(LogType.Action,
LogImpact.Medium,
$"{ToPrettyString(args.User):player} used {ToPrettyString(args.Used)} on {ToPrettyString(args.Target.Value)} to {(boltsComp.BoltsDown ? "" : "un")}bolt it");
}
}
break;
case OperatingMode.ToggleEmergencyAccess:
if (airlockComp != null)
{
_airlock.SetEmergencyAccess((args.Target.Value, airlockComp), !airlockComp.EmergencyAccess);
_adminLogger.Add(LogType.Action, LogImpact.Medium,
_adminLogger.Add(LogType.Action,
LogImpact.Medium,
$"{ToPrettyString(args.User):player} used {ToPrettyString(args.Used)} on {ToPrettyString(args.Target.Value)} to set emergency access {(airlockComp.EmergencyAccess ? "on" : "off")}");
}
break;
default:
throw new InvalidOperationException(