Fix blocked UI interaction on unpowered devices (#36319)

init
This commit is contained in:
ArtisticRoomba
2025-04-05 14:05:42 -07:00
committed by GitHub
parent 7f96f82603
commit 9b86624d30

View File

@@ -121,18 +121,19 @@ public abstract partial class SharedStationAiSystem
if (ev.Actor == ev.Target)
return;
// no need to show menu if device is not powered.
if (!PowerReceiver.IsPowered(ev.Target))
{
ShowDeviceNotRespondingPopup(ev.Actor);
ev.Cancel();
return;
}
if (TryComp(ev.Actor, out StationAiHeldComponent? aiComp) &&
(!TryComp(ev.Target, out StationAiWhitelistComponent? whitelistComponent) ||
!ValidateAi((ev.Actor, aiComp))))
{
// Don't allow the AI to interact with anything that isn't powered.
if (!PowerReceiver.IsPowered(ev.Target))
{
ShowDeviceNotRespondingPopup(ev.Actor);
ev.Cancel();
return;
}
// Don't allow the AI to interact with anything that it isn't allowed to (ex. AI wire is cut)
if (whitelistComponent is { Enabled: false })
{
ShowDeviceNotRespondingPopup(ev.Actor);
@@ -172,7 +173,7 @@ public abstract partial class SharedStationAiSystem
var verb = new AlternativeVerb
{
Text = isOpen ? Loc.GetString("ai-close") : Loc.GetString("ai-open"),
Act = () =>
Act = () =>
{
if (isOpen)
{