export / load json

This commit is contained in:
wass08
2026-01-30 07:48:52 +09:00
parent edb2b181c2
commit 498da300db
6 changed files with 180 additions and 4 deletions
+13
View File
@@ -22,6 +22,7 @@ export type SceneState = {
// Actions
loadScene: () => void
clearScene: () => void
setScene: (nodes: Record<AnyNodeId, AnyNode>, rootNodeIds: AnyNodeId[]) => void
markDirty: (id: AnyNodeId) => void
clearDirty: (id: AnyNodeId) => void
@@ -60,6 +61,18 @@ const useScene = create<SceneState>()(
get().loadScene() // Default scene
},
setScene: (nodes, rootNodeIds) => {
set({
nodes,
rootNodeIds,
dirtyNodes: new Set<AnyNodeId>(),
})
// Mark all nodes as dirty to trigger re-validation
Object.values(nodes).forEach((node) => {
get().markDirty(node.id)
})
},
loadScene: () => {
if (get().rootNodeIds.length > 0) {
// Assign all nodes as dirty to force re-validation