ColorCoding.cs
namespace Sandbox;
public sealed class ColorCoding : Component
{
[Property]
public Color Color { get; private set; }
List<Color> AvailableColors = [
Color.Cyan,
Color.Yellow,
Color.Magenta,
Color.Orange
];
protected override void OnEnabled()
{
base.OnEnabled();
var takenColors = Scene.GetAll<ColorCoding>().ToArray();
foreach (var color in AvailableColors)
{
if ( takenColors.Any( c => c.Color == color ) ) continue;
Color = color;
break;
}
GetComponentInChildren<TextRenderer>().Color = Color;
GetComponent<HUD>().Color = Color;
}
}