Repository navigation
feat(editor): one Resources tab, and reference rows under each mesh - #42
Closed
pythonlearner1025 wants to merge 1 commit into
Closed
pythonlearner1025 wants to merge 1 commit into
pythonlearner1025 wants to merge 1 commit into
Conversation
The left panel keeps Objects first. Materials, Textures, and Geometries become one Resources tab with three collapsible sections and count badges, composed from the three existing trees. Files and Library stay in the bottom panel. Under a mesh, line, or points row the Objects tree now shows what the object references, built on expand: its geometry, its material or one row per material in an array, one row per assigned texture slot under each material, and one row per entity component. A reference row is icon only, italic, marked with a link glyph, not draggable, and has no context actions. Click selects the resource so the Inspector shows it. Double-click switches to Resources with that row highlighted and in view. Double-click on an asset root opens that asset's document through store.open, the same call as the Inspector's Edit Asset button. Preview-rig lights in asset documents render dimmed. Verification: npm run typecheck, npm run lint, and npm run build:editor exit 0. Headless walkthrough against a clone of the terminator project: tabs Objects and Resources; badges Materials 160, Textures 447, Geometries 402, 1009 rows; an Endo mesh lists its geometry, material, and the map, aoMap, normalMap, roughnessMap, and metalnessMap slots; a click puts the material in the Inspector; a double-click opens Resources with the row selected and in view. Screenshots under ~/games/terminator-evidence/docs/evidence/kite3d-resources-tab/. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
pythonlearner1025
added a commit
that referenced
this pull request
Sep 17, 2026
…erence rows The reference rows a mesh gained in #42 read as children of the mesh, and the next sibling mesh read as a child too. Two causes: a row with no caret lost the 26 px caret slot, so a reference row started 26 px left of an object row at the same depth and the columns drifted; and the tree drew no indent guides, so nothing marked where a subtree ended. Every row now keeps the caret slot whether or not it has a caret, and a row with no icon renders an empty icon slot, so rows at one depth share their caret and icon x. Each indent slot draws a vertical guide from the same custom property the padding uses, and the depth loop runs to 20 so Blueprint's own wider step can no longer win past depth 10. A mesh's reference rows draw a tinted band with a 2 px rule at the left and a dotted guide over their own last levels, so the block has a visible start and end. Verification: headless Chrome on the terminator project, before and after on the same walk. After, rows at one depth share the caret x and the icon x; before, two rows at depth 6 had icons 26 px apart and the texture rows sat left of their own grandparent's icon. The seven reference rows carry the band and the mesh above, the sibling mesh below and the next asset row do not. Depths 1, 5, 10, 11, 12 and 20 each answer a guide width of ten pixels per level. Behaviour is unchanged field for field against the previous build: click, double click, the context menus, drag state, and the reference rows still refusing drag and menus. Dark and light themes, hover, a closed mesh, a scrolled tree and the Resources tab all checked; zero page errors. Typecheck, lint, the kite3d suite and the scripts tests green; CI on the branch green. Squash of PR #47. Closes #47 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What part this touches
The editor's left panel, in
packages/editor. Today it has four tabs: Objects, Materials, Textures, Geometries. Objects shows the three.js object tree of the active document. The other three list the resources that document holds. A resource is shared: one material can serve many meshes, so the lists show each resource once, and the Objects tree never shows which resource a mesh uses. The Inspector on the right shows the selected object or resource. The Files and Library bottom panel is not touched.The tab strip is declared in
ThreeEditorComponent.tsx. The Objects tree isBPHierarchyComponent.tsx. The three resource trees areBPMaterialsTreeComponent.tsx,BPTexturesTreeComponent.tsx, andBPGeometriesTreeComponent.tsx.The problem
The owner's words: "why can't i visually see what resources are applied to a particular node? can't this be shown as children of this node?"
The fix
store.open, the same call the Inspector's Edit Asset button makes.sceneResources.ts, feeds the three sections. One click path,selectResource.ts, serves the trees and the reference rows.The risk trade
Tests
npm run typecheck,npm run lint,npm run build:editor: all exit 0.~/games/terminator-evidence/docs/evidence/kite3d-resources-tab/with 14 screenshots andwalkthrough.log:draggable=falseand zero context items. Object rows keepdraggable=trueand five items.Deploy
The editor ships inside the
@kite3d/editorandkite3dpackages. Nothing ships from this PR until it lands onmainand a release runs.git checkout main && git pull npm run build npm run release:dry npm run releaseThe game links the engine by file path, so a rebuilt
packages/editor/distreaches the local editor on the next restart ofnpx kite3d dev.Rollback: revert the squash commit on
main, rebuild, and release the next alpha.🤖 Generated with Claude Code