Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
AssetUpgraderBase.cs
Go to the documentation of this file.
1 using SharpYaml.Serialization;
2 
3 using SiliconStudio.Core.Diagnostics;
4 using SiliconStudio.Core.Yaml;
5 
6 namespace SiliconStudio.Assets
7 {
8  public abstract class AssetUpgraderBase : IAssetUpgrader
9  {
10  public void Upgrade(ILogger log, YamlMappingNode yamlAssetNode)
11  {
12  dynamic asset = new DynamicYamlMapping(yamlAssetNode);
13 
14  // upgrade the asset
15  UpgradeAsset(log, asset);
16 
17  // upgrade its base
18  var baseBranch = asset["~Base"];
19  if (baseBranch != null)
20  {
21  var baseAsset = baseBranch["Asset"];
22  if (baseAsset != null)
23  UpgradeAsset(log, baseAsset);
24  }
25  }
26 
27  protected abstract void UpgradeAsset(ILogger log, dynamic asset);
28  }
29 }
Dynamic version of YamlMappingNode.
Interface for logging.
Definition: ILogger.cs:8
void Upgrade(ILogger log, YamlMappingNode yamlAssetNode)