A lot of BUIs aren't going to handle the state coming in cleanly but we can fix em as we find em.
28 lines
930 B
C#
28 lines
930 B
C#
using Content.Client.Power.EntitySystems;
|
|
using Content.Shared.Popups;
|
|
using Content.Shared.Power.Components;
|
|
using Content.Shared.Power.EntitySystems;
|
|
using Content.Shared.UserInterface;
|
|
using Content.Shared.Wires;
|
|
|
|
namespace Content.Client.Power;
|
|
|
|
public sealed class ActivatableUIRequiresPowerSystem : SharedActivatableUIRequiresPowerSystem
|
|
{
|
|
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
|
|
|
protected override void OnActivate(Entity<ActivatableUIRequiresPowerComponent> ent, ref ActivatableUIOpenAttemptEvent args)
|
|
{
|
|
if (args.Cancelled || this.IsPowered(ent.Owner, EntityManager))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (TryComp<WiresPanelComponent>(ent.Owner, out var panel) && panel.Open)
|
|
return;
|
|
|
|
_popup.PopupClient(Loc.GetString("base-computer-ui-component-not-powered", ("machine", ent.Owner)), args.User, args.User);
|
|
args.Cancel();
|
|
}
|
|
}
|