Fix being able to play structure instruments while in crit/dead.

Fixes #4038
This commit is contained in:
Vera Aguilera Puerto
2021-06-28 13:45:23 +02:00
parent 599814d5a0
commit 6a4e0beacc
2 changed files with 20 additions and 12 deletions

View File

@@ -292,26 +292,30 @@ namespace Content.Server.Instruments
void IActivate.Activate(ActivateEventArgs eventArgs)
{
if (Handheld || !eventArgs.User.TryGetComponent(out ActorComponent? actor)) return;
if (Handheld)
return;
if (InstrumentPlayer != null) return;
InstrumentPlayer = actor.PlayerSession;
OpenUserInterface(actor.PlayerSession);
InteractInstrument(eventArgs.User);
}
bool IUse.UseEntity(UseEntityEventArgs eventArgs)
{
if (!eventArgs.User.TryGetComponent(out ActorComponent? actor)) return false;
if (InstrumentPlayer == actor.PlayerSession)
{
OpenUserInterface(actor.PlayerSession);
}
InteractInstrument(eventArgs.User);
return false;
}
private void InteractInstrument(IEntity user)
{
if (!user.TryGetComponent(out ActorComponent? actor)) return;
if (InstrumentPlayer != null || !EntitySystem.Get<ActionBlockerSystem>().CanInteract(user)) return;
InstrumentPlayer = actor.PlayerSession;
OpenUserInterface(InstrumentPlayer);
return;
}
private void UserInterfaceOnClosed(IPlayerSession player)
{
if (Handheld || player != InstrumentPlayer) return;