UI/AreaPanel.razor
@using Sandbox;
@using Sandbox.UI;
@inherits BaseCanvas
@namespace HC3
<root class="slim">
<div class="canvas window-container">
<button class="@(AreaBuilder.AreaType == AreaType.Enclosure ? "selected" : "")" onclick=@(() => SelectMode(AreaType.Enclosure))>
<img class="image" src="textures/path/path.png" />
Enclosure
</button>
</div>
</root>
@code
{
protected override void OnTreeFirstBuilt()
{
base.OnTreeFirstBuilt();
// onclick=@(() => StartPlacing(building))
RegisterAs("AreaCanvas");
}
AreaBuilder AreaBuilder => AreaBuilder.Instance;
void SelectMode( AreaType type )
{
if ( AreaBuilder.AreaType == type )
{
Panel.PlaySound("sounds/ui/click5.sound");
return;
}
Panel.PlaySound("sounds/ui/click3.sound");
AreaBuilder.AreaType = type;
}
protected override int BuildHash() => System.HashCode.Combine(base.BuildHash(), AreaBuilder.AreaType);
protected override void OnUpdate()
{
SetClass( "visible", IsVisible );
if ( AreaBuilder.IsValid() )
{
AreaBuilder.Enabled = IsVisible;
}
}
}