ApplyWorldDocumentEdit ( document,edit )
Parameters
|
document - world document handle edit - JSON object using the blitz3d.world-document-edit V1 protocol |
Description
|
Validates and applies a JSON edit transaction to a world document. All operations are validated and applied atomically at the requested expectedRevision. Supported operations cover identity, settings, assets, entities, reparenting, subtree removal, and metadata. For the full story, see the Debug World Editor guide. Requires Extended mode. See also: WorldDocumentRevision, WorldDocumentJson, WorldDocumentDiagnostics, CreateWorldDocument. |
Example
; ApplyWorldDocumentEdit Example ; ------------------------------ ; Requires Extended mode. document=CreateWorldDocument("edit-example","Before") If document=0 Then RuntimeError WorldDocumentError() Print "Revision before edit: "+WorldDocumentRevision(document) ; Build a minimal edit transaction (rename the document) as JSON text q$=Chr(34) edit_text$="{"+q+"protocol"+q+":"+q+"blitz3d.world-document-edit"+q+"," edit_text=edit_text+q+"version"+q+":1,"+q+"expectedRevision"+q+":0," edit_text=edit_text+q+"operations"+q+":[{"+q+"op"+q+":"+q+"document.identity"+q+","+q+"name"+q+":"+q+"After"+q+"}]}" edit=ParseJson(edit_text) If edit=0 Then RuntimeError JsonError() ; The whole transaction commits atomically at expectedRevision 0 If Not ApplyWorldDocumentEdit(document,edit) Then RuntimeError WorldDocumentError() Print "Revision after edit: "+WorldDocumentRevision(document) Print "Unsaved edits: "+WorldDocumentDirty(document) FreeJson edit FreeWorldDocument document Print "" Print "Press any key to close the example" WaitKey End
Index