public virtual void EditorActionGetState(EditorAction.GetStateContext context) { switch (context.Action.Name) { case "Save": if (!string.IsNullOrEmpty(RealFileName)) { context.Enabled = true; } break; case "Save As": if (!string.IsNullOrEmpty(RealFileName)) { context.Enabled = CanSaveAs(); } break; case "Undo": context.Enabled = undoSystem != null && undoSystem.GetTopUndoAction() != null; break; case "Redo": context.Enabled = undoSystem != null && undoSystem.GetTopRedoAction() != null; break; case "Play": { var component = LoadedResource?.ResultComponent; if (component != null && RunSimulation.CheckTypeSupportedByPlayer(component.BaseType)) { context.Enabled = true; } } break; case "Find Resource": context.Enabled = !string.IsNullOrEmpty(RealFileName); break; } }