UI/GameMenu/Canvas/Toolbar.razor
@using Sandbox;
@using Sandbox.UI;
@using System.Collections.Generic;
@attribute [StyleSheet]

@namespace GuessIt

<root class="panel @(CanUse ? "" : "disabled")">
    <div class="brushes">
        @for (int i = 0; i < 3; i++)
        {
            var brushSize = i + 1;
            <div class="brush @(i == (GameMenu.Instance.BrushSize - 1) ? "selected" : "")" onclick=@(() => SetBrushSize(brushSize))>
                <div class="brush-inner @("brush-" + i)" />
            </div>
        }
    </div>
    <div class="colors">
        @for (int i = 0; i < Colors.Length; i++)
        {
            var color = Colors[i];
            <div class="color @(GameMenu.Instance.BrushColor == color ? "selected" : "")" style="background-color: @color.Hex" onclick=@(() => SetColor(color))></div>
        }
    </div>
</root>

@code
{
    public bool CanUse => GameMenu.Instance.CurrentlyDrawing == Player.Local;
    public Color[] Colors { get; set; } = new Color[]
    {
Color.Parse("#000000") ?? Color.Black,
Color.Parse("#7f7f7f") ?? Color.Gray,
Color.Parse("#c3c3c3") ?? Color.Gray,
Color.Parse("#ffffff") ?? Color.White,
Color.Parse("#b97a57") ?? Color.Magenta,
Color.Parse("#880015") ?? Color.Red,
Color.Parse("#ed1c24") ?? Color.Red,
Color.Parse("#ff7f27") ?? Color.Orange,
Color.Parse("#fff200") ?? Color.Yellow,
Color.Parse("#22b14c") ?? Color.Green,
Color.Parse("#b5e61d") ?? Color.Green,
Color.Parse("#99d9ea") ?? Color.Cyan,
Color.Parse("#00a2e8") ?? Color.Cyan,
Color.Parse("#3f48cc") ?? Color.Blue,
Color.Parse("#a349a4") ?? Color.Magenta,
Color.Parse("#ffaec9") ?? Color.Magenta,
    };

    public void SetColor(Color color)
    {
        GameMenu.Instance.BrushColor = color;
    }

    public void SetBrushSize(int size)
    {
        GameMenu.Instance.BrushSize = size;
    }

    protected override int BuildHash() => System.HashCode.Combine(CanUse);
}