fire alarms (and anything that uses Reset/ForceAlert) should now update their appearance and play noises

This commit is contained in:
vulppine
2022-08-22 10:05:39 -07:00
parent 786bddff0a
commit 912b23e414
2 changed files with 10 additions and 9 deletions

View File

@@ -132,17 +132,21 @@ namespace Content.Server.Atmos.Monitor.Systems
}
}
private void TryUpdateAlert(EntityUid uid, AtmosMonitorAlarmType type, AtmosAlarmableComponent alarmable)
private void TryUpdateAlert(EntityUid uid, AtmosMonitorAlarmType type, AtmosAlarmableComponent alarmable, bool sync = true)
{
if (alarmable.LastAlarmState == type)
{
return;
}
if (sync)
{
SyncAlertsToNetwork(uid, null, alarmable);
}
alarmable.LastAlarmState = type;
UpdateAppearance(uid, type);
PlayAlertSound(uid, type, alarmable);
SyncAlertsToNetwork(uid, null, alarmable);
RaiseLocalEvent(uid, new AtmosMonitorAlarmEvent(type, type), true);
}
@@ -178,9 +182,7 @@ namespace Content.Server.Atmos.Monitor.Systems
return;
}
alarmable.LastAlarmState = alarmType;
RaiseLocalEvent(uid, new AtmosMonitorAlarmEvent(alarmType, alarmType));
TryUpdateAlert(uid, alarmType, alarmable, false);
if (alarmable.ReceiveOnly)
{
@@ -214,10 +216,9 @@ namespace Content.Server.Atmos.Monitor.Systems
return;
}
alarmable.LastAlarmState = AtmosMonitorAlarmType.Normal;
alarmable.NetworkAlarmStates.Clear();
TryUpdateAlert(uid, AtmosMonitorAlarmType.Normal, alarmable, false);
RaiseLocalEvent(uid, new AtmosMonitorAlarmEvent(AtmosMonitorAlarmType.Normal, AtmosMonitorAlarmType.Normal));
alarmable.NetworkAlarmStates.Clear();
}
public void ResetAllOnNetwork(EntityUid uid, AtmosAlarmableComponent? alarmable = null, TagComponent? tags = null)

View File

@@ -15,7 +15,7 @@
transmitFrequencyId: AtmosMonitor
sendBroadcastAttemptEvent: true
- type: DeviceList
- type: ApcNetworkConnection
- type: WiredNetworkConnection
- type: AtmosMonitor
monitorFire: true
displayMaxAlarmInNet: true