/// <inheritdoc/> public override void AddItemsToMenu(EditorMenu menu) { base.AddItemsToMenu(menu); menu.AddCommand(TileLang.ParticularText("Action", "Reveal Material")) .Action(() => { EditorInternalUtility.FocusInspectorWindow(); EditorGUIUtility.PingObject(Tileset.AtlasMaterial); Selection.activeObject = Tileset.AtlasMaterial; }); menu.AddCommand(TileLang.ParticularText("Action", "Reveal Texture")) .Action(() => { if (Tileset.AtlasMaterial.mainTexture != null) { EditorInternalUtility.FocusInspectorWindow(); EditorGUIUtility.PingObject(Tileset.AtlasMaterial.mainTexture); Selection.activeObject = Tileset.AtlasMaterial.mainTexture; } }); // Only display "Cleanup Meshes" command when meshes are actually present! if (Tileset.tileMeshes != null && Tileset.tileMeshes.Length != 0) { menu.AddSeparator(); menu.AddCommand(TileLang.OpensWindow(TileLang.ParticularText("Action", "Cleanup Meshes"))) .Action(() => { CleanupTilesetMeshesWindow.ShowWindow(Tileset); }); } menu.AddSeparator(); menu.AddCommand(TileLang.OpensWindow(TileLang.ParticularText("Action", "Delete Tileset"))) .Action(() => { DeleteTilesetWindow.ShowWindow(Tileset); }); }
//!TODO: The following should be refactored so that the tile system is passed in // as the context object rather than using a closure. private EditorMenu BuildContextMenu(TileSystem system) { var contextMenu = new EditorMenu(); contextMenu.AddCommand(TileLang.ParticularText("Action", "Inspect")) .Action(() => { EditorInternalUtility.FocusInspectorWindow(); }); contextMenu.AddSeparator(); contextMenu.AddCommand(TileLang.ParticularText("Action", "Rename")) .Action(() => { this.BeginEditingName(system); }); contextMenu.AddCommand(TileLang.ParticularText("Action", "Lock")) .Checked(system.Locked) .Action(() => { Undo.RecordObject(system, system.Locked ? TileLang.ParticularText("Action", "Unlock Tile System") : TileLang.ParticularText("Action", "Lock Tile System")); system.Locked = !system.Locked; EditorUtility.SetDirty(system); ToolUtility.RepaintScenePalette(); }); contextMenu.AddSeparator(); contextMenu.AddCommand(TileLang.OpensWindow(TileLang.ParticularText("Action", "Refresh Tiles"))) .Enabled(!system.Locked) .Action(() => { TileSystemCommands.Command_Refresh(system); }); contextMenu.AddCommand(TileLang.OpensWindow(TileLang.ParticularText("Action", "Repair Tiles"))) .Enabled(!system.Locked) .Action(() => { TileSystemCommands.Command_Repair(system); }); contextMenu.AddCommand(TileLang.OpensWindow(TileLang.ParticularText("Action", "Clear Tiles"))) .Enabled(!system.Locked) .Action(() => { TileSystemCommands.Command_Clear(system); }); //contextMenu.AddSeparator(); //contextMenu.AddCommand(TileLang.OpensWindow(TileLang.ParticularText("Action", "Refresh Plops"))) // .Enabled(!system.Locked) // .Action(() => { // TileSystemCommands.Command_RefreshPlops(system); // }); //contextMenu.AddCommand(TileLang.OpensWindow(TileLang.ParticularText("Action", "Clear Plops"))) // .Enabled(!system.Locked) // .Action(() => { // TileSystemCommands.Command_ClearPlops(system); // }); contextMenu.AddSeparator(); contextMenu.AddCommand(TileLang.ParticularText("Action", "Delete")) .Enabled(!system.Locked) .Action(() => { Undo.DestroyObjectImmediate(system.gameObject); }); contextMenu.AddSeparator(); contextMenu.AddCommand(TileLang.OpensWindow(TileLang.ParticularText("Action", "Build Prefab"))) .Action(() => { TileSystemCommands.Command_BuildPrefab(system); }); return(contextMenu); }