# Graphics Painter ## What It Owns This is the dedicated art-editing environment for tile and sprite graphics. It covers shape tools, erasers, transforms, previewing, and animation timeline editing for the currently opened asset. ## Core Behaviors - Shape drawing modes: - rectangle - circle - triangle - line - Shape variants: - outline - fill - outline + fill - Shape erasers: - rectangle - circle - triangle - Transform workflows available through the painter menu. - Animation timeline controls, frame order, playback speed, and preview. ## Important UI Surfaces - Graphic Painter window - Tool menu and tooltip menus - Animation timeline row - Preview card and frame preview ## Important Files - `src/worldshaperStudio/tileArtEditorWindowController.ts` - `src/worldshaperStudio/graphicsDocumentHelpers.ts` - `src/worldshaperStudio/importController.ts` - `src/worldshaperStudio/dom.ts` ## Known Tool Details - Shape menus are nested by shape and variant, rather than being a single flat tool list. - The active draw tool and active eraser shape are tracked separately. - The painter already knows about animation preview, frame creation, and per-frame editing; many animation requests should be phrased as extensions to an existing timeline rather than brand-new systems. - The preview and animation controls are editor-side only; runtime rendering requests often cross into `Rendering And Viewport`. ## Relationships - Depends on `Content Catalog And Records` for source records and saved asset definitions. - Depends on `Floating Window Shell` because the painter lives inside a movable editor window. - Feeds `Rendering And Viewport` when edited assets are later shown in the live map renderer. - Intersects with `Animation`-tagged requests when frame behavior changes. ## Triage Hints Requests about sprite drawing, tile art tools, frame duplication, painter transforms, selection or move workflows, and editor-side animation controls should usually start here.