mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-04 17:38:10 +00:00
Now that every mutation site records explicitly through HistoryManager, SceneManager no longer needs to own an undo stack or reverse-engineer edits from per-mouseup scene-state diffs. Removed from SceneManager: - undoStack, undoIndex, lastSceneState, copiedObject is kept - undo, redo, dropRedoHistory methods - getSceneState, is_creation, is_deletion, is_userdata, is_transformation - add_creation_undostack, check_scene_for_updates - onMouseMove/onMouseClick/onKeyDown/onMouseDown/onMouseUp wrappers (no callers — pointer events now go canvas → useViewportPointer → mouse_controls directly) - attachEventListeners/detachEventListeners (already empty stubs) - Constructor params: devMode, updateOutliner, is_character (unused after the gut) - updateOutliner field — paste() refresh moved to keymap's paste handler Also: - engine/Commands.ts deleted — its CreationSceneItem / DeletionSceneItem / TransformSceneItem / UserDataSceneItem and supporting types are obsolete (HistoryManager owns its own entry factories). - useViewportPointer.onPointerUp reverts to mouse_controls.onMouseUp directly (the sceneManager indirection only existed to call check_scene_for_updates). - Editor.initialize drops attachEventListeners/detachEventListeners calls and the three trailing constructor args. scene_manager_api.ts: 477 → 265 LOC. SceneManagerAPI interface trims to what it actually does — object lifecycle (create/retrieve/delete/ update), selection, outliner rendering. Object Panel transform-input recording is the one remaining gap from the old diff path; tracked as a follow-up.