Remove lights compref (#19531)

This commit is contained in:
metalgearsloth
2023-09-11 19:18:06 +10:00
committed by GitHub
parent d315ce3c8c
commit 99b77bc2d3
64 changed files with 222 additions and 132 deletions

View File

@@ -13,18 +13,20 @@ using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
using Robust.Shared.Utility;
namespace Content.Server.Light.EntitySystems
{
[UsedImplicitly]
public sealed class HandheldLightSystem : SharedHandheldLightSystem
{
[Dependency] private readonly IPrototypeManager _proto = default!;
[Dependency] private readonly ActionsSystem _actions = default!;
[Dependency] private readonly PopupSystem _popup = default!;
[Dependency] private readonly PowerCellSystem _powerCell = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly SharedPointLightSystem _lights = default!;
// TODO: Ideally you'd be able to subscribe to power stuff to get events at certain percentages.. or something?
// But for now this will be better anyway.
@@ -196,12 +198,12 @@ namespace Content.Server.Light.EntitySystems
public bool TurnOff(EntityUid uid, HandheldLightComponent component, bool makeNoise = true)
{
if (!component.Activated || !TryComp<PointLightComponent>(uid, out var pointLightComponent))
if (!component.Activated || !_lights.TryGetLight(uid, out var pointLightComponent))
{
return false;
}
pointLightComponent.Enabled = false;
_lights.SetEnabled(uid, false, pointLightComponent);
SetActivated(uid, false, component, makeNoise);
component.Level = null;
_activeLights.Remove(component);
@@ -210,7 +212,7 @@ namespace Content.Server.Light.EntitySystems
public bool TurnOn(EntityUid user, EntityUid uid, HandheldLightComponent component)
{
if (component.Activated || !TryComp<PointLightComponent>(uid, out var pointLightComponent))
if (component.Activated || !_lights.TryGetLight(uid, out var pointLightComponent))
{
return false;
}
@@ -233,7 +235,7 @@ namespace Content.Server.Light.EntitySystems
return false;
}
pointLightComponent.Enabled = true;
_lights.SetEnabled(uid, true, pointLightComponent);
SetActivated(uid, true, component, true);
_activeLights.Add(component);