From 6a4e0beacc5231cb099b9a80c4535186e0c39046 Mon Sep 17 00:00:00 2001 From: Vera Aguilera Puerto Date: Mon, 28 Jun 2021 13:45:23 +0200 Subject: [PATCH] Fix being able to play structure instruments while in crit/dead. Fixes #4038 --- .../Instruments/InstrumentComponent.cs | 28 +++++++++++-------- Resources/Changelog/Parts/instrument_dead.yml | 4 +++ 2 files changed, 20 insertions(+), 12 deletions(-) create mode 100644 Resources/Changelog/Parts/instrument_dead.yml diff --git a/Content.Server/Instruments/InstrumentComponent.cs b/Content.Server/Instruments/InstrumentComponent.cs index 62749507e2..98fed4906d 100644 --- a/Content.Server/Instruments/InstrumentComponent.cs +++ b/Content.Server/Instruments/InstrumentComponent.cs @@ -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().CanInteract(user)) return; + + InstrumentPlayer = actor.PlayerSession; + OpenUserInterface(InstrumentPlayer); + + return; + } + private void UserInterfaceOnClosed(IPlayerSession player) { if (Handheld || player != InstrumentPlayer) return; diff --git a/Resources/Changelog/Parts/instrument_dead.yml b/Resources/Changelog/Parts/instrument_dead.yml new file mode 100644 index 0000000000..727a4a6ce6 --- /dev/null +++ b/Resources/Changelog/Parts/instrument_dead.yml @@ -0,0 +1,4 @@ +author: Zumorica +changes: + - type: Fix + message: Fix being able to play