Optimise emergency lights a bit (#4567)

* Optimise emergency lights a bit

* Fixes

* Delete the failing test, sinple

* Revert "Delete the failing test, sinple"

This reverts commit 7d9e3a3bb6975c15add2987e39e0d3ba85d88be3.

* Start server and fix test

It just werks
This commit is contained in:
metalgearsloth
2021-09-27 14:51:17 +10:00
committed by GitHub
parent c298a8dc8e
commit 91665cf0e6
8 changed files with 141 additions and 47 deletions

View File

@@ -1,13 +1,16 @@
using System;
using System.Collections.Generic;
using Content.Server.Light.Components;
using Content.Shared.Light;
using Content.Shared.Light.Component;
using JetBrains.Annotations;
using Robust.Shared.GameObjects;
using Robust.Shared.GameStates;
namespace Content.Server.Light.EntitySystems
{
[UsedImplicitly]
internal sealed class EmergencyLightSystem : EntitySystem
public sealed class EmergencyLightSystem : SharedEmergencyLightSystem
{
private readonly HashSet<EmergencyLightComponent> _activeLights = new();
@@ -15,6 +18,20 @@ namespace Content.Server.Light.EntitySystems
{
base.Initialize();
SubscribeLocalEvent<EmergencyLightMessage>(HandleEmergencyLightMessage);
SubscribeLocalEvent<EmergencyLightComponent, ComponentGetState>(GetCompState);
SubscribeLocalEvent<EmergencyLightComponent, PointLightToggleEvent>(HandleLightToggle);
}
private void HandleLightToggle(EntityUid uid, EmergencyLightComponent component, PointLightToggleEvent args)
{
if (component.Enabled == args.Enabled) return;
component.Enabled = args.Enabled;
component.Dirty();
}
private void GetCompState(EntityUid uid, EmergencyLightComponent component, ref ComponentGetState args)
{
args.State = new EmergencyLightComponentState(component.Enabled);
}
private void HandleEmergencyLightMessage(EmergencyLightMessage message)