| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using System.Numerics;
- using Content.Client.Administration.Components;
- using Robust.Client.GameObjects;
- using Robust.Shared.Utility;
- namespace Content.Client.Administration.Systems;
- public sealed class KillSignSystem : EntitySystem
- {
- public override void Initialize()
- {
- SubscribeLocalEvent<KillSignComponent, ComponentStartup>(KillSignAdded);
- SubscribeLocalEvent<KillSignComponent, ComponentShutdown>(KillSignRemoved);
- }
- private void KillSignRemoved(EntityUid uid, KillSignComponent component, ComponentShutdown args)
- {
- if (!TryComp<SpriteComponent>(uid, out var sprite))
- return;
- if (!sprite.LayerMapTryGet(KillSignKey.Key, out var layer))
- return;
- sprite.RemoveLayer(layer);
- }
- private void KillSignAdded(EntityUid uid, KillSignComponent component, ComponentStartup args)
- {
- if (!TryComp<SpriteComponent>(uid, out var sprite))
- return;
- if (sprite.LayerMapTryGet(KillSignKey.Key, out var _))
- return;
- var adj = sprite.Bounds.Height / 2 + ((1.0f/32) * 6.0f);
- var layer = sprite.AddLayer(new SpriteSpecifier.Rsi(new ResPath("Objects/Misc/killsign.rsi"), "sign"));
- sprite.LayerMapSet(KillSignKey.Key, layer);
- sprite.LayerSetOffset(layer, new Vector2(0.0f, adj));
- sprite.LayerSetShader(layer, "unshaded");
- }
- private enum KillSignKey
- {
- Key,
- }
- }
|