From 996b5841af6b436275ed719dee3d829abf32270f Mon Sep 17 00:00:00 2001 From: meleki Date: Sat, 3 Oct 2026 17:38:49 +0200 Subject: [PATCH] Bring Home and Architecture up to date (#85) --- Architecture.md | 12 +++++++++--- Home.md | 11 ++++++----- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Architecture.md b/Architecture.md index edf6107..a755243 100644 --- a/Architecture.md +++ b/Architecture.md @@ -123,8 +123,8 @@ src/core/model/ Project (object holders), Asset + AssetTypes, SceneObject src/core/properties/ PropertySchema, kinds (one row per value kind), listItems (an item's kind, read off its value), resolve (the only override merge), deviation (what is gold), collider/camera/bounds geometry, clip (the region clip areas cut each object to, a convex polygon, #260) (with the side a one-way collider blocks from, and the rectangle around a shape a broad phase looks at first, #184), convex (capsules and polygons: rounded convex pieces against each other), ray (where a ray meets a shape, in double precision), rigidbody (what the engine reads off a rigidbody, a collider's material and the scene), joint (what it reads off a joint: its settings, where its far end is, its length and a hinge's limits, #154), aspect, enabled, editorRun, assetRef/textureRef (how a reference reads), declaredRows (the row a Property node declares in a shader or particle graph, and the params that node has in both) src/core/util/ list (take out, put back and move an item — what a command's undo is made of), vec (dot, the closest point on a segment — shared by the collider maths, the outline hit area and the polygon grips; a cubic Bezier at `t` and cut in two at `t` — shared by vector art, its Boolean operations and the curve grips), color (`mixColor`, channel by channel — keys of an animation, stops of a gradient, the particles' Mix colour), recorder (#253: assignments taken back last first — the undo of an edit whose reach is not known in advance) src/core/commands/ undoable commands (pixelArtCommands: one command runs any pixel art edit and keeps the state before it, #130), CommandStack, SetBagValueCommand base, RenameCommand base (undone by renaming back: variable, struct field, port), MoveCommand base (undone by moving back: tile picture, tilemap layer, vector shape), vectorArtCommands (#129: the shapes of a drawing, one gesture one command), one import command shape for texture/font/sound, require.ts (validated lookups, and what an instance may not change), naming.ts -src/core/graph/ graph model, NodeRegistry/NodeContext/values (a travelling list may hold live objects, `storedList` - narrows one down to what a PropertyBag may hold, #157), interpreter, dropTarget, nested (behaviors as nodes), +src/core/graph/ graph model, NodeRegistry/NodeContext/values (a travelling list may hold live objects, #157; + liveObjects' `withoutObjects` empties them on every way out of the run, #238), interpreter, dropTarget, nested (behaviors as nodes), emitGraph (the walk both graph compilers share: each node once, in dependency order; cycles and property names reported), sharedState (what a run shares: a bag per Variables asset, the state of a global machine; what a scene change carries forward and what it starts afresh, #164), eventOrder (#264: the Order setting of event nodes and how the pulses of one event kind are sorted), @@ -199,6 +199,11 @@ src/viewport/ WorldViewport (the drawing of a world or a holder, the ba CPU and laid side by side onto one canvas, so a frame is cut out like a texture frame), SoundLibrary, ShaderLibrary, ParticleLibrary, particles (one ParticleContainer per source), tilemap (one container per layer), + shaderPicture (the picture a shader is laid over when it shades a camera's frame, #299, or + a particle field, #170: drawn anew each time into a render texture kept while its size + holds, the replaced one freed once the shader holds the new; cameraShade and the field + shader both draw through it), shaderPasses (the pictures of a shader's Pass nodes, #301), + quadPadding (the quad a shader's Padding grows, and the plain unit quad without one), drawOrder (objects and tilemap layers by z, #174, rows of a layer sorted by Y, #228), activeCamera — no editor concepts, so tests reach it freely src/editor/ App → Editor (layout + ticker), PlaySession (the run), @@ -263,7 +268,8 @@ src/editor/viewport/ FreeViewport (a camera of its own: fit, pan, wheel zoom) tilemapPainting (brush, eraser, rectangle, fill and pick on the selected map), polygonCorners (a polygon collider's corner handles, #151), tilemapSolids (where a placed map blocks, outlined like a collider, #132/#173) -src/editor/inspector/ Inspector panel, host (what a section builds into), field factory, previewHandlers (scrub → preview → command), valueSpecs +src/editor/inspector/ Inspector panel, host (what a section builds into, and `emptyHost`, the empty one the + Inspector, the Variables tab and the Tilemap panel each start from), field factory, previewHandlers (scrub → preview → command), valueSpecs (where a value lives — shared with the inline lists), one section per selection kind (asset/object/node/frame/shape), variableRows (one row shape for every variable), shapeSection (the shapes of a vector drawing: the list, the four order diff --git a/Home.md b/Home.md index 7a5cd3d..e2a71b1 100644 --- a/Home.md +++ b/Home.md @@ -10,22 +10,24 @@ Live: · Widget playground: