Editor/HammerTexBrowserEditorMenu.cs

Editor menu helper that adds a menu item to open the Hammer Texture Browser. It finds or opens a dock widget named "OG Texture Browser", prefers opening near the Asset Browser if present, and raises the tab.

Reflection
using Editor;

public static class HammerTexBrowserEditorMenu
{
	[Menu( "Editor", "Hammer Texture Browser/Texture Browser" )]
	public static void OpenTextureBrowser()
	{
		var dockManager = GetTargetDockManager();
		var existing = dockManager.FindDockWidget( "OG Texture Browser" );

		if ( existing is not null && existing.IsValid )
		{
			dockManager.SetDockState( "OG Texture Browser", true );
			dockManager.RaiseDock( "OG Texture Browser" );
			return;
		}

		var assetBrowser = dockManager.FindDockWidget( "Asset Browser" );
		var area = assetBrowser is null ? DockArea.Bottom : DockArea.Center;

		dockManager.OpenDock( "OG Texture Browser", area, assetBrowser );
		dockManager.RaiseDock( "OG Texture Browser" );
	}

	private static DockManager GetTargetDockManager()
	{
		if ( Application.FocusWidget?.GetWindow() is DockWindow dockWindow )
		{
			var assetBrowser = dockWindow.DockManager.FindDockWidget( "Asset Browser" );
			if ( assetBrowser is not null && assetBrowser.IsValid )
				return dockWindow.DockManager;
		}

		return EditorWindow.DockManager;
	}
}