]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Cutting food now moves the food a little bit. (#31166)
authorbeck-thompson <107373427+beck-thompson@users.noreply.github.com>
Sun, 18 Aug 2024 21:18:20 +0000 (14:18 -0700)
committerGitHub <noreply@github.com>
Sun, 18 Aug 2024 21:18:20 +0000 (00:18 +0300)
First commit

Content.Server/Nutrition/EntitySystems/SliceableFoodSystem.cs

index a865a2212141208c31742cd5e2d95031f01bcd88..318a53a0b714976fcdda00483a0d49582708faa1 100644 (file)
@@ -10,6 +10,10 @@ using Content.Shared.Interaction;
 using Robust.Server.GameObjects;
 using Robust.Shared.Audio;
 using Robust.Shared.Audio.Systems;
+using Robust.Shared.Random;
+using Robust.Shared.Containers;
+using Robust.Shared.Physics.Components;
+using Robust.Shared.Physics.Systems;
 
 namespace Content.Server.Nutrition.EntitySystems;
 
@@ -19,7 +23,9 @@ public sealed class SliceableFoodSystem : EntitySystem
     [Dependency] private readonly SharedAudioSystem _audio = default!;
     [Dependency] private readonly TransformSystem _transform = default!;
     [Dependency] private readonly DoAfterSystem _doAfter = default!;
-
+    [Dependency] private readonly IRobustRandom _random = default!;
+    [Dependency] private readonly SharedContainerSystem _container = default!;
+    [Dependency] private readonly SharedPhysicsSystem _physics = default!;
     public override void Initialize()
     {
         base.Initialize();
@@ -114,6 +120,13 @@ public sealed class SliceableFoodSystem : EntitySystem
         _transform.DropNextTo(sliceUid, (uid, transform));
         _transform.SetLocalRotation(sliceUid, 0);
 
+        if (!_container.IsEntityOrParentInContainer(sliceUid))
+        {
+            var randVect = _random.NextVector2(2.0f, 2.5f);
+            if (TryComp<PhysicsComponent>(sliceUid, out var physics))
+                _physics.SetLinearVelocity(sliceUid, randVect, body: physics);
+        }
+
         return sliceUid;
     }