Fix fulton parenting (#19662)
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
using System.Numerics;
|
||||
using Content.Shared.Salvage.Fulton;
|
||||
using Robust.Shared.Containers;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Server.Salvage;
|
||||
@@ -9,6 +8,7 @@ namespace Content.Server.Salvage;
|
||||
public sealed class FultonSystem : SharedFultonSystem
|
||||
{
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
[Dependency] private readonly SharedContainerSystem _container = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -50,12 +50,14 @@ public sealed class FultonSystem : SharedFultonSystem
|
||||
|
||||
private void Fulton(EntityUid uid, FultonedComponent component)
|
||||
{
|
||||
if (!Deleted(component.Beacon))
|
||||
if (!Deleted(component.Beacon) &&
|
||||
TryComp<TransformComponent>(component.Beacon, out var beaconXform) &&
|
||||
!_container.IsEntityOrParentInContainer(component.Beacon.Value, xform: beaconXform))
|
||||
{
|
||||
var xform = Transform(uid);
|
||||
var oldCoords = xform.Coordinates;
|
||||
var offset = _random.NextVector2(1.5f);
|
||||
TransformSystem.SetCoordinates(uid, new EntityCoordinates(component.Beacon.Value, offset));
|
||||
TransformSystem.SetCoordinates(uid, new EntityCoordinates(beaconXform.ParentUid, offset));
|
||||
|
||||
RaiseNetworkEvent(new FultonAnimationMessage()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user