using Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Components;
using Content.Server.Xenoarchaeology.XenoArtifacts.Events;
using Content.Shared.Physics;
using Robust.Shared.Physics;
using Robust.Shared.Physics.Components;
using Robust.Shared.Physics.Dynamics;
using Robust.Shared.Physics.Systems;
namespace Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Systems;
///
/// Handles allowing activated artifacts to phase through walls.
///
public sealed class PhasingArtifactSystem : EntitySystem
{
[Dependency] private readonly SharedPhysicsSystem _physics = default!;
///
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent(OnActivate);
}
private void OnActivate(EntityUid uid, PhasingArtifactComponent component, ArtifactActivatedEvent args)
{
if (!TryComp(uid, out var fixtures))
return;
foreach (var fixture in fixtures.Fixtures.Values)
{
_physics.SetHard(uid, fixture, false, fixtures);
}
}
}