public void Deserialize() { var json = File.ReadAllText(_fileName); _sceneDTO = JsonConvert.DeserializeObject <SceneDTO>(json, _jsonSettings); foreach (var asset in _sceneDTO.Assets) { asset.PostDeserialize(this); _assets.Add(asset.ID, asset); } var sceneObjects = _sceneDTO.Create(this); SetReferences(sceneObjects); }
internal SerializationContext(Scene.Scene sceneRoot, string filename) { AddMapping <Vector2>(v => new Vector2DTO(v)); AddMapping <Vector3>(v => new Vector3DTO(v)); AddMapping <Vector4>(v => new Vector4DTO(v)); AddMapping <Quaternion>(v => new QuaternionDTO(v)); AddMapping <Layer>(v => v.Mask); AddMapping <Mesh>(mesh => AddAsset(mesh, () => new MeshAsset(this, mesh))); AddMapping <Material>(mat => AddAsset(mat, () => new MaterialAsset(this, mat))); AddMapping <Texture2>(tex => AddAsset(tex, () => new Texture2Asset(this, tex))); _fileName = filename; WorkingDirectory = new FileInfo(filename).Directory; _sceneDTO = new SceneDTO(); _sceneRoot = sceneRoot; _jsonSettings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; }