-using System.Diagnostics.CodeAnalysis;
-using System.Linq;
using Content.Server.Body.Components;
using Content.Server.GameTicking;
using Content.Server.Humanoid;
using Content.Server.Kitchen.Components;
-using Content.Server.Mind;
using Content.Shared.Body.Components;
-using Content.Shared.Body.Organ;
using Content.Shared.Body.Part;
using Content.Shared.Body.Systems;
using Content.Shared.Humanoid;
using Content.Shared.Mind;
using Content.Shared.Mobs.Systems;
using Content.Shared.Movement.Events;
-using Content.Shared.Random.Helpers;
using Robust.Shared.Audio;
-using Robust.Shared.Containers;
-using Robust.Shared.Map;
using Robust.Shared.Player;
+using Robust.Shared.Random;
using Robust.Shared.Timing;
-using Robust.Shared.Utility;
+using System.Numerics;
namespace Content.Server.Body.Systems;
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
[Dependency] private readonly SharedMindSystem _mindSystem = default!;
+ [Dependency] private readonly IRobustRandom _random = default!;
public override void Initialize()
{
_audio.Play(body.GibSound, filter, coordinates, true, audio);
- var containers = GetBodyContainers(bodyId, body: body).ToList();
-
- foreach (var container in containers)
+ foreach (var entity in gibs)
{
- foreach (var entity in container.ContainedEntities)
+ if (deleteItems)
+ {
+ QueueDel(entity);
+ }
+ else
{
- if (deleteItems)
- {
- QueueDel(entity);
- }
- else
- {
- container.Remove(entity, EntityManager, force: true);
- SharedTransform.SetCoordinates(entity,coordinates);
- entity.RandomOffset(0.25f);
- }
+ SharedTransform.SetCoordinates(entity, coordinates.Offset(_random.NextVector2(.3f)));
}
}
RaiseLocalEvent(bodyId, new BeingGibbedEvent(gibs));
-using System.Linq;
+using System.Linq;
using System.Numerics;
using Content.Shared.Body.Components;
using Content.Shared.Body.Organ;
// Child -> Parent connection.
var cameFrom = new Dictionary<string, string>();
+ cameFrom[rootSlot] = rootSlot;
// Maps slot to its relevant entity.
var cameFromEntities = new Dictionary<string, EntityUid>();
cameFromEntities[rootSlot] = rootPartId;