export / load json
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user