PipeColorVisualizerSystem.cs 848 B

123456789101112131415161718192021222324
  1. using Content.Client.Atmos.Components;
  2. using Robust.Client.GameObjects;
  3. using Content.Shared.Atmos.Piping;
  4. namespace Content.Client.Atmos.EntitySystems;
  5. public sealed class PipeColorVisualizerSystem : VisualizerSystem<PipeColorVisualsComponent>
  6. {
  7. protected override void OnAppearanceChange(EntityUid uid, PipeColorVisualsComponent component, ref AppearanceChangeEvent args)
  8. {
  9. if (TryComp<SpriteComponent>(uid, out var sprite)
  10. && AppearanceSystem.TryGetData<Color>(uid, PipeColorVisuals.Color, out var color, args.Component))
  11. {
  12. // T-ray scanner / sub floor runs after this visualizer. Lets not bulldoze transparency.
  13. var layer = sprite[PipeVisualLayers.Pipe];
  14. layer.Color = color.WithAlpha(layer.Color.A);
  15. }
  16. }
  17. }
  18. public enum PipeVisualLayers : byte
  19. {
  20. Pipe,
  21. }