]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
DoAfter and other bugfixes (#14669)
authorLeon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Wed, 15 Mar 2023 02:05:53 +0000 (15:05 +1300)
committerGitHub <noreply@github.com>
Wed, 15 Mar 2023 02:05:53 +0000 (13:05 +1100)
Content.Server/Climbing/ClimbSystem.cs
Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs
Content.Server/Mech/Systems/MechSystem.cs
Content.Server/Resist/ResistLockerSystem.cs
Content.Server/Tiles/FloorTileSystem.cs
Content.Server/Tools/Systems/WeldableSystem.cs

index 1908b2b17f83f59058c8f77ad1743052cb807724..c416906a8ff4bf62b20fd2ef70219191fcf8c280 100644 (file)
@@ -123,7 +123,8 @@ public sealed class ClimbSystem : SharedClimbSystem
             BreakOnDamage = true,
             BreakOnStun = true,
             RaiseOnUser = user == entityToMove,
-            RaiseOnTarget = user != entityToMove
+            RaiseOnTarget = user != entityToMove,
+            RaiseOnUsed = false,
         };
 
         _doAfterSystem.DoAfter(args, ev);
index 84f109e74a43c1d6598276465c768f75c18d3f85..a26b4c877a805dd3a64f8d28a8cb788fb2d5df4e 100644 (file)
@@ -496,6 +496,9 @@ namespace Content.Server.Disposal.Unit.EntitySystems
                 BreakOnTargetMove = true,
                 BreakOnUserMove = true,
                 NeedHand = false,
+                RaiseOnTarget = false,
+                RaiseOnUser = false,
+                RaiseOnUsed = true,
             };
 
             _doAfterSystem.DoAfter(doAfterArgs);
index b23fb221065da18221ed8fc573b98687036a3650..90a929aaba8c99cad23a93bf1b4f277bab679f6a 100644 (file)
@@ -89,7 +89,10 @@ public sealed class MechSystem : SharedMechSystem
             var doAfterEventArgs = new DoAfterEventArgs(args.User, component.BatteryRemovalDelay, target: uid, used: args.Target)
             {
                 BreakOnTargetMove = true,
-                BreakOnUserMove = true
+                BreakOnUserMove = true,
+                RaiseOnTarget = true,
+                RaiseOnUsed = false,
+                RaiseOnUser = false,
             };
 
             _doAfter.DoAfter(doAfterEventArgs, removeBattery);
@@ -168,6 +171,9 @@ public sealed class MechSystem : SharedMechSystem
                     {
                         BreakOnUserMove = true,
                         BreakOnStun = true,
+                        RaiseOnTarget = true,
+                        RaiseOnUsed = false,
+                        RaiseOnUser = false,
                     };
 
                     _doAfter.DoAfter(doAfterEventArgs, mechEntryEvent);
@@ -200,7 +206,10 @@ public sealed class MechSystem : SharedMechSystem
                     {
                         BreakOnUserMove = true,
                         BreakOnTargetMove = true,
-                        BreakOnStun = true
+                        BreakOnStun = true,
+                        RaiseOnTarget = true,
+                        RaiseOnUsed = false,
+                        RaiseOnUser = false,
                     };
 
                     _doAfter.DoAfter(doAfterEventArgs, mechExitEvent);
index c096d529f452ee08ecea12f4da3399a5bdbdd60b..78da7c012a8b384b320eebe989066fcf822da8b2 100644 (file)
@@ -22,7 +22,7 @@ public sealed class ResistLockerSystem : EntitySystem
     {
         base.Initialize();
         SubscribeLocalEvent<ResistLockerComponent, ContainerRelayMovementEntityEvent>(OnRelayMovement);
-        SubscribeLocalEvent<ResistLockerComponent, DoAfterEvent>(OnDoAfter);
+        SubscribeLocalEvent<ResistLockerComponent, DoAfterEvent<LockerDoAfterData>>(OnDoAfter);
         SubscribeLocalEvent<ResistLockerComponent, EntRemovedFromContainerMessage>(OnRemoved);
     }
 
@@ -58,7 +58,7 @@ public sealed class ResistLockerSystem : EntitySystem
 
         resistLockerComponent.IsResisting = true;
         _popupSystem.PopupEntity(Loc.GetString("resist-locker-component-start-resisting"), user, user, PopupType.Large);
-        _doAfterSystem.DoAfter(doAfterEventArgs);
+        _doAfterSystem.DoAfter(doAfterEventArgs, new LockerDoAfterData());
     }
 
     private void OnRemoved(EntityUid uid, ResistLockerComponent component, EntRemovedFromContainerMessage args)
@@ -67,7 +67,7 @@ public sealed class ResistLockerSystem : EntitySystem
         component.CancelToken = null;
     }
 
-    private void OnDoAfter(EntityUid uid, ResistLockerComponent component, DoAfterEvent args)
+    private void OnDoAfter(EntityUid uid, ResistLockerComponent component, DoAfterEvent<LockerDoAfterData> args)
     {
         if (args.Cancelled)
         {
@@ -96,4 +96,8 @@ public sealed class ResistLockerSystem : EntitySystem
         component.CancelToken = null;
         args.Handled = true;
     }
+
+    private struct LockerDoAfterData
+    {
+    }
 }
index c43832f7ed22a47ee5eea9948e0b8d65e4e57118..fc6603c42eaa7a0d7dc927c66f57e46d46732879 100644 (file)
@@ -31,7 +31,7 @@ namespace Content.Server.Tiles
 
         private void OnAfterInteract(EntityUid uid, FloorTileComponent component, AfterInteractEvent args)
         {
-            if (!args.CanReach)
+            if (!args.CanReach || args.Handled)
                 return;
 
             if (!TryComp<StackComponent>(uid, out var stack))
@@ -72,6 +72,8 @@ namespace Content.Server.Tiles
                             continue;
 
                         PlaceAt(mapGrid, location, currentTileDefinition.TileId, component.PlaceTileSound);
+                        args.Handled = true;
+                        return;
                     }
                 }
                 else if (HasBaseTurf(currentTileDefinition, ContentTileDefinition.SpaceID))
@@ -81,6 +83,8 @@ namespace Content.Server.Tiles
                     gridXform.WorldPosition = locationMap.Position;
                     location = new EntityCoordinates(mapGrid.Owner, Vector2.Zero);
                     PlaceAt(mapGrid, location, _tileDefinitionManager[component.OutputTiles[0]].TileId, component.PlaceTileSound, mapGrid.TileSize / 2f);
+                    args.Handled = true;
+                    return;
                 }
             }
         }
index 994a4c5e8fa2fa0c69ade9868743a877769cd314..780cab43689461f8e0914db7b7d42681a05452aa 100644 (file)
@@ -69,7 +69,7 @@ public sealed class WeldableSystem : EntitySystem
         if (!CanWeld(uid, tool, user, component))
             return false;
 
-        var toolEvData = new ToolEventData(new WeldFinishedEvent(user, tool), targetEntity: uid);
+        var toolEvData = new ToolEventData(new WeldFinishedEvent(user, tool), cancelledEv: new WeldCancelledEvent(),targetEntity: uid);
         component.BeingWelded = _toolSystem.UseTool(tool, user, uid, component.WeldingTime.Seconds, new[] { component.WeldingQuality }, toolEvData, fuel: component.FuelConsumption);
 
         // Log attempt