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);
}