22 lines
1.0 KiB
TypeScript
22 lines
1.0 KiB
TypeScript
import { CreateContainerCommand } from '../core/commands/containerCommands';
|
|
import { RemoveSceneObjectsCommand } from '../core/commands/sceneObjectCommands';
|
|
import { type EditorState, objectSelection } from './state';
|
|
|
|
/**
|
|
* Editor actions that several places trigger the same way (inspector, hierarchy context
|
|
* menu, keyboard): they run the command and put the selection where the user expects it.
|
|
*/
|
|
|
|
/** Groups the objects into a new container asset placed in their stead; selects the container. */
|
|
export function createContainer(state: EditorState, sceneId: string, objectIds: readonly string[]): boolean {
|
|
const command = new CreateContainerCommand(sceneId, objectIds);
|
|
if (!state.execute(command)) return false;
|
|
state.select(objectSelection(sceneId, [command.objectId]));
|
|
return true;
|
|
}
|
|
|
|
/** Removes the objects (with their subtrees) as one undo step. */
|
|
export function removeObjects(state: EditorState, sceneId: string, objectIds: readonly string[]): boolean {
|
|
return state.execute(new RemoveSceneObjectsCommand(sceneId, objectIds));
|
|
}
|