diff --git a/Content.Server/Access/Systems/AgentIDCardSystem.cs b/Content.Server/Access/Systems/AgentIDCardSystem.cs index b0772fcc32..4d242e8f81 100644 --- a/Content.Server/Access/Systems/AgentIDCardSystem.cs +++ b/Content.Server/Access/Systems/AgentIDCardSystem.cs @@ -1,6 +1,6 @@ using Content.Server.Access.Components; using Content.Server.Popups; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Access.Components; using Content.Shared.Access.Systems; using Content.Shared.Interaction; diff --git a/Content.Server/Arcade/BlockGame/BlockGameArcadeSystem.cs b/Content.Server/Arcade/BlockGame/BlockGameArcadeSystem.cs index a57401cbb1..34a5689fd1 100644 --- a/Content.Server/Arcade/BlockGame/BlockGameArcadeSystem.cs +++ b/Content.Server/Arcade/BlockGame/BlockGameArcadeSystem.cs @@ -1,5 +1,5 @@ using Content.Server.Power.Components; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Arcade; using Robust.Server.GameObjects; using Robust.Shared.Player; diff --git a/Content.Server/Arcade/SpaceVillainGame/SpaceVillainArcadeSystem.cs b/Content.Server/Arcade/SpaceVillainGame/SpaceVillainArcadeSystem.cs index eae9b94964..d97c94fd99 100644 --- a/Content.Server/Arcade/SpaceVillainGame/SpaceVillainArcadeSystem.cs +++ b/Content.Server/Arcade/SpaceVillainGame/SpaceVillainArcadeSystem.cs @@ -1,5 +1,5 @@ using Content.Server.Power.Components; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using static Content.Shared.Arcade.SharedSpaceVillainArcadeComponent; using Robust.Server.GameObjects; using Robust.Shared.Audio; diff --git a/Content.Server/Atmos/EntitySystems/GasTankSystem.cs b/Content.Server/Atmos/EntitySystems/GasTankSystem.cs index e00990f594..dfe8447340 100644 --- a/Content.Server/Atmos/EntitySystems/GasTankSystem.cs +++ b/Content.Server/Atmos/EntitySystems/GasTankSystem.cs @@ -4,7 +4,7 @@ using Content.Server.Body.Components; using Content.Server.Body.Systems; using Content.Server.Cargo.Systems; using Content.Server.Explosion.EntitySystems; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Actions; using Content.Shared.Atmos; using Content.Shared.Atmos.Components; diff --git a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasThermoMachineSystem.cs b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasThermoMachineSystem.cs index 8e065921fe..ee0dca0fb0 100644 --- a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasThermoMachineSystem.cs +++ b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasThermoMachineSystem.cs @@ -14,7 +14,7 @@ using Content.Shared.Atmos.Piping.Unary.Components; using JetBrains.Annotations; using Robust.Server.GameObjects; using Content.Server.Power.EntitySystems; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Administration.Logs; using Content.Shared.Database; using Content.Shared.Examine; diff --git a/Content.Server/Bed/Cryostorage/CryostorageSystem.cs b/Content.Server/Bed/Cryostorage/CryostorageSystem.cs index f82f835d87..11184bee0a 100644 --- a/Content.Server/Bed/Cryostorage/CryostorageSystem.cs +++ b/Content.Server/Bed/Cryostorage/CryostorageSystem.cs @@ -6,7 +6,7 @@ using Content.Server.Inventory; using Content.Server.Popups; using Content.Server.Station.Components; using Content.Server.Station.Systems; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Access.Systems; using Content.Shared.Bed.Cryostorage; using Content.Shared.Chat; diff --git a/Content.Server/Cloning/CloningConsoleSystem.cs b/Content.Server/Cloning/CloningConsoleSystem.cs index 0be9b64134..4176806639 100644 --- a/Content.Server/Cloning/CloningConsoleSystem.cs +++ b/Content.Server/Cloning/CloningConsoleSystem.cs @@ -5,7 +5,7 @@ using Content.Server.DeviceLinking.Systems; using Content.Server.Medical.Components; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Cloning; using Content.Shared.Cloning.CloningConsole; using Content.Shared.Database; diff --git a/Content.Server/DeviceLinking/Systems/SignalTimerSystem.cs b/Content.Server/DeviceLinking/Systems/SignalTimerSystem.cs index 8cdeac3e8e..0426ee7cc3 100644 --- a/Content.Server/DeviceLinking/Systems/SignalTimerSystem.cs +++ b/Content.Server/DeviceLinking/Systems/SignalTimerSystem.cs @@ -1,11 +1,10 @@ using Content.Server.DeviceLinking.Components; using Content.Server.DeviceLinking.Events; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Access.Systems; using Content.Shared.MachineLinking; using Content.Shared.TextScreen; using Robust.Server.GameObjects; -using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Timing; diff --git a/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs b/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs index c8faa930d1..9a038f1c78 100644 --- a/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs +++ b/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs @@ -2,7 +2,6 @@ using System.Linq; using Content.Server.Administration.Logs; using Content.Server.DeviceLinking.Systems; using Content.Server.DeviceNetwork.Components; -using Content.Server.UserInterface; using Content.Shared.Access.Components; using Content.Shared.Access.Systems; using Content.Shared.Database; @@ -13,6 +12,7 @@ using Content.Shared.DeviceNetwork.Systems; using Content.Shared.Examine; using Content.Shared.Interaction; using Content.Shared.Popups; +using Content.Shared.UserInterface; using Content.Shared.Verbs; using JetBrains.Annotations; using Robust.Server.Audio; diff --git a/Content.Server/Drone/DroneSystem.cs b/Content.Server/Drone/DroneSystem.cs index 7e1199bb4d..769d1b5d11 100644 --- a/Content.Server/Drone/DroneSystem.cs +++ b/Content.Server/Drone/DroneSystem.cs @@ -3,7 +3,7 @@ using Content.Server.Drone.Components; using Content.Server.Ghost.Roles.Components; using Content.Server.Popups; using Content.Server.Tools.Innate; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Body.Components; using Content.Shared.Drone; using Content.Shared.Emoting; diff --git a/Content.Server/Eye/Blinding/ActivatableUIRequiresVisionSystem.cs b/Content.Server/Eye/Blinding/ActivatableUIRequiresVisionSystem.cs index 7bed97db12..b51efc2f5e 100644 --- a/Content.Server/Eye/Blinding/ActivatableUIRequiresVisionSystem.cs +++ b/Content.Server/Eye/Blinding/ActivatableUIRequiresVisionSystem.cs @@ -1,5 +1,5 @@ using Content.Shared.Eye.Blinding; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Server.Popups; using Content.Shared.Eye.Blinding.Components; using Content.Shared.Eye.Blinding.Systems; diff --git a/Content.Server/Fax/FaxSystem.cs b/Content.Server/Fax/FaxSystem.cs index 5ea4393865..f25fb62542 100644 --- a/Content.Server/Fax/FaxSystem.cs +++ b/Content.Server/Fax/FaxSystem.cs @@ -8,7 +8,7 @@ using Content.Server.Paper; using Content.Server.Popups; using Content.Server.Power.Components; using Content.Server.Tools; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Administration.Logs; using Content.Shared.Containers.ItemSlots; using Content.Shared.Database; diff --git a/Content.Server/Forensics/Systems/ForensicScannerSystem.cs b/Content.Server/Forensics/Systems/ForensicScannerSystem.cs index 6710864c72..be44f9e203 100644 --- a/Content.Server/Forensics/Systems/ForensicScannerSystem.cs +++ b/Content.Server/Forensics/Systems/ForensicScannerSystem.cs @@ -2,7 +2,7 @@ using System.Linq; using System.Text; using Content.Server.Paper; using Content.Server.Popups; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.DoAfter; using Content.Shared.Forensics; using Content.Shared.Hands.EntitySystems; diff --git a/Content.Server/Gateway/Systems/GatewaySystem.cs b/Content.Server/Gateway/Systems/GatewaySystem.cs index 14be113248..52525ee0d4 100644 --- a/Content.Server/Gateway/Systems/GatewaySystem.cs +++ b/Content.Server/Gateway/Systems/GatewaySystem.cs @@ -1,6 +1,6 @@ using Content.Server.Gateway.Components; using Content.Server.Station.Systems; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Access.Systems; using Content.Shared.Gateway; using Content.Shared.Popups; diff --git a/Content.Server/Lathe/LatheSystem.cs b/Content.Server/Lathe/LatheSystem.cs index 8b1f3b471c..621c583a55 100644 --- a/Content.Server/Lathe/LatheSystem.cs +++ b/Content.Server/Lathe/LatheSystem.cs @@ -8,7 +8,7 @@ using Content.Server.Materials; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; using Content.Server.Stack; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Database; using Content.Shared.Emag.Components; using Content.Shared.Lathe; diff --git a/Content.Server/Lock/EntitySystems/ActivatableUIRequiresLockSystem.cs b/Content.Server/Lock/EntitySystems/ActivatableUIRequiresLockSystem.cs index bfb2fbc6e1..dfe398ebaf 100644 --- a/Content.Server/Lock/EntitySystems/ActivatableUIRequiresLockSystem.cs +++ b/Content.Server/Lock/EntitySystems/ActivatableUIRequiresLockSystem.cs @@ -1,7 +1,8 @@ using Content.Server.Lock.Components; using Content.Server.Popups; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Lock; +using Content.Server.UserInterface; namespace Content.Server.Lock.EntitySystems; public sealed class ActivatableUIRequiresLockSystem : EntitySystem diff --git a/Content.Server/MagicMirror/MagicMirrorSystem.cs b/Content.Server/MagicMirror/MagicMirrorSystem.cs index f6858e10a0..aef6e11d71 100644 --- a/Content.Server/MagicMirror/MagicMirrorSystem.cs +++ b/Content.Server/MagicMirror/MagicMirrorSystem.cs @@ -1,7 +1,7 @@ using System.Linq; using Content.Server.DoAfter; using Content.Server.Humanoid; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.DoAfter; using Content.Shared.Humanoid; using Content.Shared.Humanoid.Markings; diff --git a/Content.Server/Medical/CryoPodSystem.cs b/Content.Server/Medical/CryoPodSystem.cs index 3fcec3a824..e05dc2494f 100644 --- a/Content.Server/Medical/CryoPodSystem.cs +++ b/Content.Server/Medical/CryoPodSystem.cs @@ -13,7 +13,7 @@ using Content.Server.NodeContainer.NodeGroups; using Content.Server.NodeContainer.Nodes; using Content.Server.Power.Components; using Content.Server.Temperature.Components; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Chemistry; using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Components.SolutionManager; diff --git a/Content.Server/NukeOps/WarDeclaratorSystem.cs b/Content.Server/NukeOps/WarDeclaratorSystem.cs index 328990738e..7761651f4e 100644 --- a/Content.Server/NukeOps/WarDeclaratorSystem.cs +++ b/Content.Server/NukeOps/WarDeclaratorSystem.cs @@ -1,12 +1,12 @@ -using Content.Server.Administration.Logs; +using Content.Server.Administration.Logs; using Content.Server.GameTicking.Rules; using Content.Server.GameTicking.Rules.Components; using Content.Server.Popups; -using Content.Server.UserInterface; using Content.Shared.CCVar; using Content.Shared.Chat; using Content.Shared.Database; using Content.Shared.NukeOps; +using Content.Shared.UserInterface; using Robust.Server.GameObjects; using Robust.Shared.Configuration; diff --git a/Content.Server/Paper/PaperSystem.cs b/Content.Server/Paper/PaperSystem.cs index 7525ad7cf3..f599bbdb6a 100644 --- a/Content.Server/Paper/PaperSystem.cs +++ b/Content.Server/Paper/PaperSystem.cs @@ -1,7 +1,7 @@ using System.Linq; using Content.Server.Administration.Logs; using Content.Server.Popups; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Database; using Content.Shared.Examine; using Content.Shared.Interaction; diff --git a/Content.Server/Power/EntitySystems/ActivatableUIRequiresPowerSystem.cs b/Content.Server/Power/EntitySystems/ActivatableUIRequiresPowerSystem.cs index 5f32b4b06b..561b0e71f0 100644 --- a/Content.Server/Power/EntitySystems/ActivatableUIRequiresPowerSystem.cs +++ b/Content.Server/Power/EntitySystems/ActivatableUIRequiresPowerSystem.cs @@ -1,8 +1,9 @@ using Content.Shared.Popups; using Content.Server.Power.Components; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using JetBrains.Annotations; using Content.Shared.Wires; +using Content.Server.UserInterface; namespace Content.Server.Power.EntitySystems; diff --git a/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs b/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs index 2cd3777c52..ace7d8ae31 100644 --- a/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs +++ b/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs @@ -6,7 +6,7 @@ using Content.Server.Power.EntitySystems; using Content.Server.Radio.Components; using Content.Server.Speech; using Content.Server.Speech.Components; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Chat; using Content.Shared.Examine; using Content.Shared.Interaction; diff --git a/Content.Server/Research/Systems/ResearchSystem.Console.cs b/Content.Server/Research/Systems/ResearchSystem.Console.cs index e802e2c7f9..9f95fd2517 100644 --- a/Content.Server/Research/Systems/ResearchSystem.Console.cs +++ b/Content.Server/Research/Systems/ResearchSystem.Console.cs @@ -1,6 +1,6 @@ using Content.Server.Power.EntitySystems; using Content.Server.Research.Components; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Access.Components; using Content.Shared.Research.Components; using Content.Shared.Research.Prototypes; diff --git a/Content.Server/Research/TechnologyDisk/Systems/DiskConsoleSystem.cs b/Content.Server/Research/TechnologyDisk/Systems/DiskConsoleSystem.cs index 8a65e0a8bc..2064abd8eb 100644 --- a/Content.Server/Research/TechnologyDisk/Systems/DiskConsoleSystem.cs +++ b/Content.Server/Research/TechnologyDisk/Systems/DiskConsoleSystem.cs @@ -1,6 +1,6 @@ -using Content.Server.Research.Systems; +using Content.Server.Research.Systems; using Content.Server.Research.TechnologyDisk.Components; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Research; using Content.Shared.Research.Components; using Robust.Server.Audio; diff --git a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs index 3b9a12a331..37c70c4e48 100644 --- a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs +++ b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.Console.cs @@ -4,7 +4,7 @@ using Content.Server.DeviceNetwork.Components; using Content.Server.Screens.Components; using Content.Server.Shuttles.Components; using Content.Server.Shuttles.Events; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Access; using Content.Shared.CCVar; using Content.Shared.Database; diff --git a/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.Drone.cs b/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.Drone.cs index cef4faa13b..99ab54f9af 100644 --- a/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.Drone.cs +++ b/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.Drone.cs @@ -1,7 +1,7 @@ using Content.Server.Shuttles.Components; using Content.Server.Shuttles.Events; using Content.Server.Station.Components; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; namespace Content.Server.Shuttles.Systems; diff --git a/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.cs b/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.cs index afe9d78a25..18dd3b0baf 100644 --- a/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.cs +++ b/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.cs @@ -20,6 +20,7 @@ using Robust.Shared.Map.Components; using Robust.Shared.Physics.Components; using Robust.Shared.Timing; using Robust.Shared.Utility; +using Content.Shared.UserInterface; namespace Content.Server.Shuttles.Systems; diff --git a/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs b/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs index fa551ebc37..8af682114c 100644 --- a/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs +++ b/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs @@ -1,5 +1,5 @@ -using System.Linq; -using Content.Server.UserInterface; +using System.Linq; +using Content.Shared.UserInterface; using Content.Shared.Database; using Content.Shared.NameIdentifier; using Content.Shared.PowerCell.Components; diff --git a/Content.Server/Silicons/Borgs/BorgSystem.cs b/Content.Server/Silicons/Borgs/BorgSystem.cs index 4d7892c0b7..0efbe1a40a 100644 --- a/Content.Server/Silicons/Borgs/BorgSystem.cs +++ b/Content.Server/Silicons/Borgs/BorgSystem.cs @@ -1,9 +1,9 @@ -using Content.Server.Actions; +using Content.Server.Actions; using Content.Server.Administration.Logs; using Content.Server.Administration.Managers; using Content.Server.Hands.Systems; using Content.Server.PowerCell; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Access.Systems; using Content.Shared.Alert; using Content.Shared.Database; diff --git a/Content.Server/Sound/EmitSoundSystem.cs b/Content.Server/Sound/EmitSoundSystem.cs index 3c7713b305..059800c3f9 100644 --- a/Content.Server/Sound/EmitSoundSystem.cs +++ b/Content.Server/Sound/EmitSoundSystem.cs @@ -1,6 +1,6 @@ -using Content.Server.Explosion.EntitySystems; +using Content.Server.Explosion.EntitySystems; using Content.Server.Sound.Components; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Sound; using Robust.Shared.Random; diff --git a/Content.Server/Store/Systems/StoreSystem.Ui.cs b/Content.Server/Store/Systems/StoreSystem.Ui.cs index 32c9a05043..7599b08b3c 100644 --- a/Content.Server/Store/Systems/StoreSystem.Ui.cs +++ b/Content.Server/Store/Systems/StoreSystem.Ui.cs @@ -4,13 +4,12 @@ using Content.Server.Administration.Logs; using Content.Server.PDA.Ringer; using Content.Server.Stack; using Content.Server.Store.Components; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Database; using Content.Shared.FixedPoint; using Content.Shared.Hands.EntitySystems; using Content.Shared.Store; using Robust.Server.GameObjects; -using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Player; diff --git a/Content.Server/Store/Systems/StoreSystem.cs b/Content.Server/Store/Systems/StoreSystem.cs index d5b17f440e..67fbd4faf5 100644 --- a/Content.Server/Store/Systems/StoreSystem.cs +++ b/Content.Server/Store/Systems/StoreSystem.cs @@ -1,5 +1,5 @@ using Content.Server.Store.Components; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.FixedPoint; using Content.Shared.Implants.Components; using Content.Shared.Interaction; diff --git a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs index 39dcb1a9e0..cbc2f6d31e 100644 --- a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs +++ b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs @@ -2,7 +2,7 @@ using System.Linq; using Content.Server.DeviceNetwork; using Content.Server.DeviceNetwork.Systems; using Content.Server.Power.Components; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.SurveillanceCamera; using Robust.Server.GameObjects; using Robust.Shared.Player; diff --git a/Content.Server/UserInterface/ActivatableUISystem.Power.cs b/Content.Server/UserInterface/ActivatableUISystem.Power.cs index 7c687aa3cd..d4dcc91d46 100644 --- a/Content.Server/UserInterface/ActivatableUISystem.Power.cs +++ b/Content.Server/UserInterface/ActivatableUISystem.Power.cs @@ -1,5 +1,6 @@ using Content.Server.PowerCell; using Content.Shared.PowerCell; +using Content.Shared.UserInterface; using Robust.Shared.Containers; namespace Content.Server.UserInterface; diff --git a/Content.Server/UserInterface/ActivatableUISystem.cs b/Content.Server/UserInterface/ActivatableUISystem.cs index e3dad63358..387221e00c 100644 --- a/Content.Server/UserInterface/ActivatableUISystem.cs +++ b/Content.Server/UserInterface/ActivatableUISystem.cs @@ -218,53 +218,3 @@ public sealed partial class ActivatableUISystem : EntitySystem CloseAll(uid, aui); } } - -public sealed class ActivatableUIOpenAttemptEvent : CancellableEntityEventArgs -{ - public EntityUid User { get; } - public ActivatableUIOpenAttemptEvent(EntityUid who) - { - User = who; - } -} - -public sealed class UserOpenActivatableUIAttemptEvent : CancellableEntityEventArgs //have to one-up the already stroke-inducing name -{ - public EntityUid User { get; } - public EntityUid Target { get; } - public UserOpenActivatableUIAttemptEvent(EntityUid who, EntityUid target) - { - User = who; - Target = target; - } -} - -public sealed class AfterActivatableUIOpenEvent : EntityEventArgs -{ - public EntityUid User { get; } - public readonly ICommonSession Session; - - public AfterActivatableUIOpenEvent(EntityUid who, ICommonSession session) - { - User = who; - Session = session; - } -} - -/// -/// This is after it's decided the user can open the UI, -/// but before the UI actually opens. -/// Use this if you need to prepare the UI itself -/// -public sealed class BeforeActivatableUIOpenEvent : EntityEventArgs -{ - public EntityUid User { get; } - public BeforeActivatableUIOpenEvent(EntityUid who) - { - User = who; - } -} - -public sealed class ActivatableUIPlayerChangedEvent : EntityEventArgs -{ -} diff --git a/Content.Server/VendingMachines/VendingMachineSystem.cs b/Content.Server/VendingMachines/VendingMachineSystem.cs index f2c7e6dd19..9443b0b394 100644 --- a/Content.Server/VendingMachines/VendingMachineSystem.cs +++ b/Content.Server/VendingMachines/VendingMachineSystem.cs @@ -18,6 +18,7 @@ using Content.Shared.Emag.Systems; using Content.Shared.Emp; using Content.Shared.Popups; using Content.Shared.Throwing; +using Content.Shared.UserInterface; using Content.Shared.VendingMachines; using Robust.Server.GameObjects; using Robust.Shared.Audio; diff --git a/Content.Server/Wires/WiresSystem.cs b/Content.Server/Wires/WiresSystem.cs index cb019e3d64..5275a95c34 100644 --- a/Content.Server/Wires/WiresSystem.cs +++ b/Content.Server/Wires/WiresSystem.cs @@ -5,7 +5,7 @@ using Content.Server.Administration.Logs; using Content.Server.Construction; using Content.Server.Construction.Components; using Content.Server.Power.Components; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Shared.Database; using Content.Shared.DoAfter; using Content.Shared.GameTicking; @@ -23,6 +23,7 @@ using Robust.Shared.Player; using Robust.Shared.Prototypes; using Robust.Shared.Random; using SharedToolSystem = Content.Shared.Tools.Systems.SharedToolSystem; +using Content.Server.UserInterface; namespace Content.Server.Wires; diff --git a/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactAnalyzerSystem.cs b/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactAnalyzerSystem.cs index 2f0b5459d9..51906313a3 100644 --- a/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactAnalyzerSystem.cs +++ b/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactAnalyzerSystem.cs @@ -1,9 +1,8 @@ using System.Linq; -using Content.Server.Construction; using Content.Server.Paper; using Content.Server.Power.Components; using Content.Server.Research.Systems; -using Content.Server.UserInterface; +using Content.Shared.UserInterface; using Content.Server.Xenoarchaeology.Equipment.Components; using Content.Server.Xenoarchaeology.XenoArtifacts; using Content.Server.Xenoarchaeology.XenoArtifacts.Events; diff --git a/Content.Shared/Access/Components/ActivatableUIRequiresAccessComponent.cs b/Content.Shared/Access/Components/ActivatableUIRequiresAccessComponent.cs new file mode 100644 index 0000000000..342d182d2f --- /dev/null +++ b/Content.Shared/Access/Components/ActivatableUIRequiresAccessComponent.cs @@ -0,0 +1,11 @@ +using Content.Shared.Access.Systems; +using Robust.Shared.GameStates; + +namespace Content.Shared.Access.Components; + +[RegisterComponent, NetworkedComponent, Access(typeof(ActivatableUIRequiresAccessSystem))] +public sealed partial class ActivatableUIRequiresAccessComponent : Component +{ + [DataField] + public LocId? PopupMessage = "lock-comp-has-user-access-fail"; +} diff --git a/Content.Shared/Access/Systems/ActivatableUIRequiresAccessSystem.cs b/Content.Shared/Access/Systems/ActivatableUIRequiresAccessSystem.cs new file mode 100644 index 0000000000..9020518f21 --- /dev/null +++ b/Content.Shared/Access/Systems/ActivatableUIRequiresAccessSystem.cs @@ -0,0 +1,31 @@ +using Content.Shared.Popups; +using Content.Shared.UserInterface; +using Content.Shared.Access.Components; + +namespace Content.Shared.Access.Systems; +public sealed class ActivatableUIRequiresAccessSystem : EntitySystem +{ + [Dependency] private readonly AccessReaderSystem _access = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnUIOpenAttempt); + } + + private void OnUIOpenAttempt(Entity activatableUI, ref ActivatableUIOpenAttemptEvent args) + { + if (args.Cancelled) + return; + + if (!_access.IsAllowed(args.User, activatableUI)) + { + args.Cancel(); + if (activatableUI.Comp.PopupMessage != null) + _popup.PopupClient(Loc.GetString(activatableUI.Comp.PopupMessage), activatableUI, args.User); + } + } +} + diff --git a/Content.Shared/UserInterface/ActivatableUIEvents.cs b/Content.Shared/UserInterface/ActivatableUIEvents.cs new file mode 100644 index 0000000000..6e6b3f63c6 --- /dev/null +++ b/Content.Shared/UserInterface/ActivatableUIEvents.cs @@ -0,0 +1,52 @@ +using Robust.Shared.Player; + +namespace Content.Shared.UserInterface; +public sealed class ActivatableUIOpenAttemptEvent : CancellableEntityEventArgs +{ + public EntityUid User { get; } + public ActivatableUIOpenAttemptEvent(EntityUid who) + { + User = who; + } +} + +public sealed class UserOpenActivatableUIAttemptEvent : CancellableEntityEventArgs //have to one-up the already stroke-inducing name +{ + public EntityUid User { get; } + public EntityUid Target { get; } + public UserOpenActivatableUIAttemptEvent(EntityUid who, EntityUid target) + { + User = who; + Target = target; + } +} + +public sealed class AfterActivatableUIOpenEvent : EntityEventArgs +{ + public EntityUid User { get; } + public readonly ICommonSession Session; + + public AfterActivatableUIOpenEvent(EntityUid who, ICommonSession session) + { + User = who; + Session = session; + } +} + +/// +/// This is after it's decided the user can open the UI, +/// but before the UI actually opens. +/// Use this if you need to prepare the UI itself +/// +public sealed class BeforeActivatableUIOpenEvent : EntityEventArgs +{ + public EntityUid User { get; } + public BeforeActivatableUIOpenEvent(EntityUid who) + { + User = who; + } +} + +public sealed class ActivatableUIPlayerChangedEvent : EntityEventArgs +{ +} diff --git a/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml b/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml index 7fb8ec771d..2697e00a70 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml @@ -296,6 +296,7 @@ acts: ["Breakage"] - type: ActivatableUI key: enum.AnomalyGeneratorUiKey.Key + - type: ActivatableUIRequiresAccess - type: ActivatableUIRequiresPower - type: UserInterface interfaces: @@ -318,6 +319,8 @@ - type: WiresVisuals - type: StaticPrice price: 5000 + - type: AccessReader + access: [["Research"]] - type: GuideHelp guides: - AnomalousResearch