]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Allow opening doors mid-deny animation, if you have the access (#24969)
authorKot <1192090+koteq@users.noreply.github.com>
Mon, 5 Feb 2024 23:31:21 +0000 (03:31 +0400)
committerGitHub <noreply@github.com>
Mon, 5 Feb 2024 23:31:21 +0000 (18:31 -0500)
Allow opening doors mid-deny animation, if you have access ofc

Content.Server/DeviceLinking/Systems/DoorSignalControlSystem.cs
Content.Server/Doors/Systems/DoorSystem.cs
Content.Shared/Doors/Systems/SharedDoorSystem.cs

index 56a754a756266554145f3d0ee8d3d24d5fe7a5bf..90623dbae377870ac4e09d914a1dcb753646c23a 100644 (file)
@@ -59,8 +59,7 @@ namespace Content.Server.DeviceLinking.Systems
             {
                 if (state == SignalState.High || state == SignalState.Momentary)
                 {
-                    if (door.State is DoorState.Closed or DoorState.Open)
-                        _doorSystem.TryToggleDoor(uid, door);
+                    _doorSystem.TryToggleDoor(uid, door);
                 }
             }
             else if (args.Port == component.InBolt)
index fffc0a4e1faf8ab693046f0282979b256cde30cb..d59ea5962295b8a39688cd8e8101b339b31e0c48 100644 (file)
@@ -136,13 +136,13 @@ public sealed class DoorSystem : SharedDoorSystem
         if (!door.BumpOpen)
             return;
 
-        if (door.State != DoorState.Closed)
+        if (door.State is not (DoorState.Closed or DoorState.Denying))
             return;
 
         var otherUid = args.OtherEntity;
 
         if (Tags.HasTag(otherUid, "DoorBumpOpener"))
-            TryOpen(uid, door, otherUid);
+            TryOpen(uid, door, otherUid, quiet: door.State == DoorState.Denying);
     }
     private void OnEmagged(EntityUid uid, DoorComponent door, ref GotEmaggedEvent args)
     {
index 954c22df382a73324f4db6ee8bfad4e034c9eb94..53d79cada7ac6a562e878e54bc893258aec88ba9 100644 (file)
@@ -212,9 +212,9 @@ public abstract class SharedDoorSystem : EntitySystem
         if (!Resolve(uid, ref door))
             return false;
 
-        if (door.State == DoorState.Closed)
+        if (door.State is DoorState.Closed or DoorState.Denying)
         {
-            return TryOpen(uid, door, user, predicted);
+            return TryOpen(uid, door, user, predicted, quiet: door.State == DoorState.Denying);
         }
         else if (door.State == DoorState.Open)
         {