Editor/InteriorLayoutBuilder/RoomLayoutDock.cs
using Editor;
using Sandbox;
namespace ReusableRoomLayout;
[Dock( "Editor", "Interior Layout Builder", "dashboard_customize" )]
public sealed class RoomLayoutDock : Widget
{
private readonly Button activateButton;
public RoomLayoutDock( Widget parent ) : base( parent )
{
MinimumSize = 240;
Layout = Layout.Column();
Layout.Margin = 8;
Layout.Spacing = 8;
activateButton = Layout.Add( new Button( "Activate Interior Layout Builder", this ) );
activateButton.Icon = "dashboard_customize";
activateButton.Clicked += ActivateTool;
Layout.Add( new RoomLayoutControls( this ), 1 );
}
[EditorEvent.Frame]
public void Frame()
{
if ( !Visible )
{
return;
}
var active = RoomLayoutTool.LiveTool is not null;
activateButton.Visible = !active;
}
private static void ActivateTool()
{
EditorToolManager.SetTool( nameof( RoomLayoutTool ) );
}
}