Все заметки

Мультивыбор элементов в проводнике

В новом году я решил пересмотреть приоритеты и делать не то что нравится, а то что наиболее важно для комфортной работы с движком и редактором. К физике вернусь позже, когда решу критичные задачи.

Начал с задачи попроще – в редакторе. Сейчас при создании уровня нельзя выбрать более одного актора. Если нужно передвинуть группу объектов на сцене или удалить лишние, то делать это придется долго, редактируя один элемент за другим. Нужно добавить возможность выбирать несколько сразу.

Компонент дерева из библиотеки Ant Design поддерживает мультивыделение, но пришлось отрефакторить код вокруг него, поскольку раньше редактор был заточен под работу только с одним выбранным элементом. А вот для окна просмотра уровня из коробки ничего нет, пришлось писать самостоятельно. Добавил выделение рамкой и по клику мыши с зажатой клавишей Shift. Как оказалось в нативных событиях мыши есть такие поля как shiftKey, altKey и тд. Удобно.

Когда я показал доработки своей жене, она сначала не поняла что изменилось. Функции выделения настолько привычны в WYSIWYG-редакторах, что их даже не замечаешь. Это ожидается по умолчанию.

На текущий момент, я добавил только возможность выделения и перемещения выборки по уровню. Дальше буду работать над удалением, копированием и перемещением элементов списка с уровня на уровень и внутрь друг друга через Drag-and-Drop.