Files
tbd-station-14/Content.Shared/Light/SharedRgbLightControllerSystem.cs
2022-05-13 17:59:03 +10:00

38 lines
1.0 KiB
C#

using Content.Shared.Light.Component;
using Robust.Shared.GameStates;
namespace Content.Shared.Light;
public abstract class SharedRgbLightControllerSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<RgbLightControllerComponent, ComponentGetState>(OnGetState);
}
private void OnGetState(EntityUid uid, RgbLightControllerComponent component, ref ComponentGetState args)
{
args.State = new RgbLightControllerState(component.CycleRate, component.Layers);
}
public void SetLayers(EntityUid uid, List<int>? layers, RgbLightControllerComponent? rgb = null)
{
if (!Resolve(uid, ref rgb))
return;
rgb.Layers = layers;
rgb.Dirty();
}
public void SetCycleRate(EntityUid uid, float rate, RgbLightControllerComponent? rgb = null)
{
if (!Resolve(uid, ref rgb))
return;
rgb.CycleRate = Math.Clamp(0.01f, rate, 1); // lets not give people seizures
rgb.Dirty();
}
}