using Content.Shared._Sunrise.Boss.Components;
using Content.Shared._Sunrise.Boss.Systems;
using Robust.Client.GameObjects;
namespace Content.Client._Sunrise.Boss.Systems;
///
public sealed class HellSpawnArenaSystem : SharedHellSpawnArenaSystem
{
[Dependency] private readonly SpriteSystem _sprite = default!;
///
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent(OnApplyUnshadedShader);
SubscribeLocalEvent(OnRemoveUnshadedShader);
}
private void OnApplyUnshadedShader(EntityUid uid, HellSpawnArenaTransferTargetComponent comp, ComponentInit args)
{
ApplyUnshadedShader(uid);
}
private void OnRemoveUnshadedShader(EntityUid uid,
HellSpawnArenaTransferTargetComponent comp,
ComponentShutdown args)
{
RemoveUnshadedShader(uid);
}
public void ApplyUnshadedShader(EntityUid entity)
{
if (!TryComp(entity, out var appearanceComponent))
return;
if (!TryComp(entity, out var spriteComponent))
return;
var i = 0;
foreach (var _ in spriteComponent.AllLayers)
{
spriteComponent.LayerSetShader(i, "unshaded");
i++;
}
}
public void RemoveUnshadedShader(EntityUid entity)
{
if (!TryComp(entity, out var appearanceComponent))
return;
if (!TryComp(entity, out var spriteComponent))
return;
var i = 0;
foreach (var _ in spriteComponent.AllLayers)
{
spriteComponent.LayerSetShader(i, null, null);
i++;
}
}
}