using Content.Shared.StationTeleporter; using Content.Shared.StationTeleporter.Components; using Robust.Client.GameObjects; namespace Content.Client.StationTeleporter; /// public sealed partial class StationTeleporterSystem : SharedStationTeleporterSystem { [Dependency] private SharedAppearanceSystem _appearance = default!; [Dependency] private SpriteSystem _sprite = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnAppearanceChanged); } private void OnAppearanceChanged(Entity ent, ref AppearanceChangeEvent args) { if (ent.Comp.PortalLayerMap is null) return; if (!_appearance.TryGetData(ent, TeleporterPortalVisuals.Color, out var newColor)) return; if (!_sprite.LayerMapTryGet(ent.Owner, ent.Comp.PortalLayerMap, out var index, false)) return; _sprite.LayerSetColor(ent.Owner, index, newColor); } }