Editor/SeamlessEditorMenu.cs
using Editor;
public static class SeamlessEditorMenu
{
[Menu( "Editor", "Seam-Less™ Material Suite/Open Suite" )]
public static void OpenSuite()
{
var seamless = GetOrCreateSeamlessTextureTool();
if ( seamless == null || !seamless.IsValid )
return;
var pbr = GetOrCreatePbrMapGenerator();
pbr?.Show();
seamless.Show();
seamless.Focus();
EditorWindow.DockManager.RaiseDock( seamless );
}
[Menu( "Editor", "Seam-Less™ Material Suite/About" )]
public static void OpenAbout()
{
new SeamlessSuiteAboutDialog().Show();
}
[Menu( "Editor", "Seam-Less™ Material Suite/Help" )]
public static void OpenHelp()
{
new SeamlessSuiteHelpDialog().Show();
}
private static SeamlessImageToolWindow GetOrCreateSeamlessTextureTool()
{
if ( SeamlessImageToolWindow.Current != null && SeamlessImageToolWindow.Current.IsValid )
return SeamlessImageToolWindow.Current;
return CreateSeamlessTextureTool();
}
private static PbrMapGeneratorWindow GetOrCreatePbrMapGenerator()
{
if ( PbrMapGeneratorWindow.Current != null && PbrMapGeneratorWindow.Current.IsValid )
return PbrMapGeneratorWindow.Current;
return CreatePbrMapGenerator();
}
private static SeamlessImageToolWindow CreateSeamlessTextureTool()
{
var sibling = PbrMapGeneratorWindow.Current;
if ( sibling != null && sibling.IsValid )
{
var widget = new SeamlessImageToolWindow( EditorWindow.DockManager );
EditorWindow.DockManager.AddDock( sibling, widget, DockArea.Inside );
return widget;
}
return EditorWindow.DockManager.Create<SeamlessImageToolWindow>();
}
private static PbrMapGeneratorWindow CreatePbrMapGenerator()
{
var sibling = SeamlessImageToolWindow.Current;
if ( sibling != null && sibling.IsValid )
{
var widget = new PbrMapGeneratorWindow( EditorWindow.DockManager );
EditorWindow.DockManager.AddDock( sibling, widget, DockArea.Inside );
return widget;
}
return EditorWindow.DockManager.Create<PbrMapGeneratorWindow>();
}
}