Convert almost all IActivate instances that open UIs to ActivatableUI (#7028)

* Chem master

* Drone support for handhelds

* Vending machines, scanners

* Cloners, R&D computers

* make research a little less sussy

* Unfuck wires

* PA control computer

* Unfuck merge

* Clean up git gore for good

* Disposals

* Microwaves

* paper

* Magic mirror

* More vendors for drones

* Solar computer whitelist

* EFR review updates
This commit is contained in:
Rane
2022-03-12 13:26:06 -05:00
committed by GitHub
parent 865c9630bd
commit 926e36d81d
48 changed files with 305 additions and 584 deletions

View File

@@ -3,15 +3,12 @@ using Content.Shared.Interaction;
using Content.Shared.Research.Components;
using Robust.Server.GameObjects;
using Robust.Server.Player;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.ViewVariables;
namespace Content.Server.Research.Components
{
[RegisterComponent]
[Virtual]
public class ResearchClientComponent : SharedResearchClientComponent, IActivate
public class ResearchClientComponent : SharedResearchClientComponent
{
[Dependency] private readonly IEntitySystemManager _entitySystemManager = default!;
@@ -55,15 +52,6 @@ namespace Content.Server.Research.Components
UpdateUserInterface();
UserInterface?.Open(session);
}
void IActivate.Activate(ActivateEventArgs eventArgs)
{
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(eventArgs.User, out ActorComponent? actor))
return;
OpenUserInterface(actor.PlayerSession);
}
public void UpdateUserInterface()
{
UserInterface?.SetState(GetNewUiState());

View File

@@ -1,26 +1,18 @@
using Content.Server.Power.Components;
using Content.Server.UserInterface;
using Content.Shared.Audio;
using Content.Shared.Interaction;
using Content.Shared.Research.Components;
using Content.Shared.Research.Prototypes;
using Content.Shared.Sound;
using Robust.Server.GameObjects;
using Robust.Server.Player;
using Robust.Shared.Audio;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Player;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
using Robust.Shared.Serialization.Manager.Attributes;
using Robust.Shared.ViewVariables;
namespace Content.Server.Research.Components
{
[RegisterComponent]
[ComponentReference(typeof(IActivate))]
public sealed class ResearchConsoleComponent : SharedResearchConsoleComponent, IActivate
public sealed class ResearchConsoleComponent : SharedResearchConsoleComponent
{
[Dependency] private readonly IEntityManager _entMan = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
@@ -110,20 +102,7 @@ namespace Content.Server.Research.Components
UserInterface?.Open(session);
}
void IActivate.Activate(ActivateEventArgs eventArgs)
{
if (!_entMan.TryGetComponent(eventArgs.User, out ActorComponent? actor))
return;
if (!Powered)
{
return;
}
OpenUserInterface(actor.PlayerSession);
PlayKeyboardSound();
}
private void PlayKeyboardSound()
public void PlayKeyboardSound()
{
SoundSystem.Play(Filter.Pvs(Owner), _soundCollectionName.GetSound(), Owner, AudioParams.Default);
}

View File

@@ -1,14 +1,9 @@
using Content.Server.Power.Components;
using Content.Shared.Interaction;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Serialization.Manager.Attributes;
using Robust.Shared.ViewVariables;
namespace Content.Server.Research.Components
{
[RegisterComponent]
[ComponentReference(typeof(IActivate))]
public sealed class ResearchPointSourceComponent : ResearchClientComponent
{
[DataField("pointspersecond")]

View File

@@ -1,7 +1,7 @@
using System.Collections.Generic;
using Content.Server.UserInterface;
using Content.Server.Research.Components;
using JetBrains.Annotations;
using Robust.Shared.GameObjects;
namespace Content.Server.Research
{
@@ -14,6 +14,17 @@ namespace Content.Server.Research
private readonly List<ResearchServerComponent> _servers = new();
public IReadOnlyList<ResearchServerComponent> Servers => _servers;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<ResearchConsoleComponent, AfterActivatableUIOpenEvent>(OnAfterUIOpen);
}
private void OnAfterUIOpen(EntityUid uid, ResearchConsoleComponent component, AfterActivatableUIOpenEvent args)
{
component.PlayKeyboardSound();
}
public bool RegisterServer(ResearchServerComponent server)
{
if (_servers.Contains(server)) return false;