]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix conveyors to allow doors to close over top (#22117)
authorRepo <47093363+Titian3@users.noreply.github.com>
Mon, 4 Dec 2023 23:07:48 +0000 (12:07 +1300)
committerGitHub <noreply@github.com>
Mon, 4 Dec 2023 23:07:48 +0000 (16:07 -0700)
Content.Shared/Doors/Systems/SharedDoorSystem.cs
Content.Shared/Physics/CollisionGroup.cs
Resources/Prototypes/Entities/Structures/conveyor.yml

index 85bb399b4805f8872ff7f363f1e6d53279f75d7b..74ce120cd06899c74a09fc16f0e0a9389d66225a 100644 (file)
@@ -460,6 +460,10 @@ public abstract class SharedDoorSystem : EntitySystem
             //If the colliding entity is a slippable item ignore it by the airlock
             if (otherPhysics.CollisionLayer == (int)CollisionGroup.SlipLayer && otherPhysics.CollisionMask == (int)CollisionGroup.ItemMask)
                 continue;
+            
+            //For when doors need to close over conveyor belts
+            if (otherPhysics.CollisionLayer == (int) CollisionGroup.ConveyorMask)
+                continue;
 
             if ((physics.CollisionMask & otherPhysics.CollisionLayer) == 0 && (otherPhysics.CollisionMask & physics.CollisionLayer) == 0)
                 continue;
index bde057320626ca29322885a18c89f835e9e878b8..1c10fefd5dc128ccb2a23069953844e7e6622ac1 100644 (file)
@@ -22,6 +22,7 @@ public enum CollisionGroup
     GhostImpassable    = 1 << 5, // 32 Things impassible by ghosts/observers, ie blessed tiles or forcefields
     BulletImpassable   = 1 << 6, // 64 Can be hit by bullets
     InteractImpassable = 1 << 7, // 128 Blocks interaction/InRangeUnobstructed
+    DoorPassable       = 1 << 8, // 256 Allows door to close over top, Like blast doors over conveyors for disposals rooms/cargo.
 
     MapGrid = MapGridHelpers.CollisionGroup, // Map grids, like shuttles. This is the actual grid itself, not the walls or other entities connected to the grid.
 
@@ -45,6 +46,7 @@ public enum CollisionGroup
     // Machines, computers
     MachineMask = Impassable | MidImpassable | LowImpassable,
     MachineLayer = Opaque | MidImpassable | LowImpassable | BulletImpassable,
+    ConveyorMask = Impassable | MidImpassable | LowImpassable | DoorPassable,
 
     // Tables that SmallMobs can go under
     TableMask = Impassable | MidImpassable,
index fe641fddfd5b8c910822e2bec736c13c7d96a08b..4dc879b0f6a38a98170c77712c47abe71b08c0b4 100644 (file)
@@ -32,6 +32,7 @@
         - Impassable
         - MidImpassable
         - LowImpassable
+        - DoorPassable
         hard: False
   - type: Conveyor
   - type: DeviceLinkSink