Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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
            };
        }