Editor/GridMapSettingsMenu.cs
using Editor;
public static class GridMapSettingsMenu
{
[Menu( "Editor", "GridMapTool/Settings" )]
public static void OpenMyMenu()
{
new GridMapSettings();
}
}
public class GridMapSettings : BaseWindow
{
public GridMapSettings()
{
WindowTitle = "GridMap Settings";
SetWindowIcon( "settings" );
Name = "GridMap Settings";
Size = new Vector2( 400, 700 );
GridHeight = ProjectCookie.Get( "GridHeight", 128 );
GridMultiplier = ProjectCookie.Get( "GridMultiplier", 1.0f );
CreateUI();
Show();
}
Widget container;
float GridHeight { get; set; } = 128;
float GridMultiplier { get; set; } = 1.0f;
public void CreateUI()
{
Layout = Layout.Column();
Layout.Margin = 4;
Layout.Spacing = 4;
container = new Widget( this );
var properties = new ControlSheet();
var nameLabel = new Label.Subtitle( "Grid Map Settings" );
nameLabel.Margin = 16;
var so = this.GetSerialized();
properties.AddRow( so.GetProperty( nameof( GridHeight ) ) );
properties.AddRow( so.GetProperty( nameof( GridMultiplier ) ) );
var saveButton = new Button.Primary( "Save Settings", "add_circle" );
saveButton.Clicked = SaveSettings;
Layout.Add( nameLabel );
Layout.Add( properties );
Layout.Add( saveButton );
Layout.Add( container );
Layout.AddStretchCell();
}
public void SaveSettings()
{
// Save settingsPackage
ProjectCookie.Set( "GridHeight", GridHeight );
ProjectCookie.Set( "GridMultiplier", GridMultiplier );
}
}