From 4587b64796bd8e9cb846307e2c47bb3ff72e7b43 Mon Sep 17 00:00:00 2001 From: WilliamECrew <70368805+WilliamECrew@users.noreply.github.com> Date: Sun, 5 Jun 2022 17:34:44 -0700 Subject: [PATCH] Spread items when dumping contents out of a bag (#8678) Co-authored-by: Kara --- Content.Server/Storage/EntitySystems/DumpableSystem.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Content.Server/Storage/EntitySystems/DumpableSystem.cs b/Content.Server/Storage/EntitySystems/DumpableSystem.cs index 7797cd0667..5390322efb 100644 --- a/Content.Server/Storage/EntitySystems/DumpableSystem.cs +++ b/Content.Server/Storage/EntitySystems/DumpableSystem.cs @@ -8,6 +8,7 @@ using Content.Server.Disposal.Unit.EntitySystems; using Content.Server.DoAfter; using Content.Shared.Placeable; using Robust.Shared.Containers; +using Robust.Shared.Random; namespace Content.Server.Storage.EntitySystems { @@ -15,6 +16,7 @@ namespace Content.Server.Storage.EntitySystems { [Dependency] private readonly DoAfterSystem _doAfterSystem = default!; [Dependency] private readonly DisposalUnitSystem _disposalUnitSystem = default!; + [Dependency] private readonly IRobustRandom _random = default!; public override void Initialize() { @@ -146,14 +148,17 @@ namespace Content.Server.Storage.EntitySystems foreach (var entity in dumpQueue) { - Transform(entity).AttachParentToContainerOrGrid(EntityManager); + var transform = Transform(entity); + transform.AttachParentToContainerOrGrid(EntityManager); + transform.LocalPosition = transform.LocalPosition + _random.NextVector2Box() / 2; + transform.LocalRotation = _random.NextAngle(); } if (HasComp(args.Target)) { foreach (var entity in dumpQueue) { - Transform(entity).LocalPosition = Transform(args.Target.Value).LocalPosition; + Transform(entity).LocalPosition = Transform(args.Target.Value).LocalPosition + _random.NextVector2Box() / 4; } return; }