12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import { NodeMaterial } from 'babylonjs/Materials/Node/nodeMaterial';
- import { GlobalState } from './globalState';
- import { Texture } from 'babylonjs/Materials/Textures/texture';
- import { DataStorage } from './dataStorage';
- export class SerializationTools {
- public static UpdateLocations(material: NodeMaterial, globalState: GlobalState) {
- material.editorData = [];
- // Store node locations
- for (var block of material.attachedBlocks) {
- let node = globalState.onGetNodeFromBlock(block);
- material.editorData.push({
- blockId: block.uniqueId,
- x: node ? node.x : 0,
- y: node ? node.y : 0
- });
- }
- }
- public static Serialize(material: NodeMaterial, globalState: GlobalState) {
- let bufferSerializationState = Texture.SerializeBuffers;
- Texture.SerializeBuffers = DataStorage.ReadBoolean("EmbedTextures", true);
- let serializationObject = material.serialize();
- // Store node locations
- for (var block of material.attachedBlocks) {
- let node = globalState.onGetNodeFromBlock(block);
- if (!serializationObject.locations) {
- serializationObject.locations = [];
- }
- serializationObject.locations.push({
- blockId: block.uniqueId,
- x: node ? node.x : 0,
- y: node ? node.y : 0
- });
- }
- Texture.SerializeBuffers = bufferSerializationState;
- return JSON.stringify(serializationObject, undefined, 2);
- }
- public static Deserialize(serializationObject:any, globalState: GlobalState) {
- globalState.onIsLoadingChanged.notifyObservers(true);
- globalState.nodeMaterial!.loadFromSerialization(serializationObject, "");
-
- globalState.onResetRequiredObservable.notifyObservers();
- }
- }
|