protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile) { var packing = asset.Packing; if (packing != null) { packing.AtlasMaximumSize = DynamicYamlEmpty.Default; } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { dynamic settings = new DynamicYamlMapping(new YamlMappingNode { Tag = "!Xenko.Streaming.StreamingSettings,Xenko.Engine" }); asset.Defaults.Add(settings); }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { if (asset.SRgb != null) { // By default transform to auto asset.ColorSpace = TextureColorSpace.Auto; asset.RemoveChild("SRgb"); } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { dynamic setting = new DynamicYamlMapping(new YamlMappingNode { Tag = "!SiliconStudio.Xenko.Audio.AudioEngineSettings,SiliconStudio.Xenko.Audio" }); asset.Defaults.Add(setting); }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { if (overrideHint != OverrideUpgraderHint.Base) { var sceneSettings = asset.SceneSettings; sceneSettings.Id = sceneSettings["~Id"]; sceneSettings["~Id"] = DynamicYamlEmpty.Default; } }
public void Upgrade(AssetMigrationContext context, int currentVersion, int targetVersion, YamlMappingNode yamlAssetNode, PackageLoadingAssetFile assetFile) { dynamic asset = new DynamicYamlMapping(yamlAssetNode); asset.SerializedVersion = targetVersion; // Move Test4 to Test5 asset.Test5 = asset.Test4; asset.Test4 = DynamicYamlEmpty.Default; }
public void Upgrade(AssetMigrationContext context, int currentVersion, int targetVersion, YamlMappingNode yamlAssetNode, PackageLoadingAssetFile assetFile) { dynamic asset = new DynamicYamlMapping(yamlAssetNode); asset.SerializedVersion = AssetRegistry.GetCurrentFormatVersion(typeof(MyUpgradedAsset)); // Move Test1 to Test2 asset.Test2 = asset.Test1; asset.Test1 = DynamicYamlEmpty.Default; }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile) { var images = asset.Images; if (images != null) { asset.Sprites = images; asset.Images = DynamicYamlEmpty.Default; } }
public void Upgrade(AssetMigrationContext context, string dependencyName, PackageVersion currentVersion, PackageVersion targetVersion, YamlMappingNode yamlAssetNode, PackageLoadingAssetFile assetFile) { dynamic asset = new DynamicYamlMapping(yamlAssetNode); AssetUpgraderBase.SetSerializableVersion(asset, dependencyName, targetVersion); // Move Test4 to Test5 asset.Test5 = asset.Test4; asset.Test4 = DynamicYamlEmpty.Default; }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile) { // Move SceneSettings to SceneAsset outside the HierarchyData var sceneSettings = asset.Hierarchy.SceneSettings; asset.SceneSettings = sceneSettings; var assetYaml = (DynamicYamlMapping)asset.Hierarchy; assetYaml.RemoveChild("SceneSettings"); }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { var proceduralType = asset.Type; if (proceduralType.Node.Tag == "!CapsuleProceduralModel" && proceduralType.Height != null) { proceduralType.Length = 2f * (float)proceduralType.Height; proceduralType.Height = DynamicYamlEmpty.Default; } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { var rootNode = (YamlNode)asset.Node; foreach (var fxaaEffectNode in rootNode.AllNodes.OfType <YamlMappingNode>().Where(x => x.Tag == "!FXAAEffect").Select(x => new DynamicYamlMapping(x))) { // We could remap quality but probably not worth the code complexity (esp. since previous quality slider from 10 to 39 was not "continuous", user probably didn't set it up properly anyway) // Simply remove it so that it goes back to default value fxaaEffectNode.RemoveChild("Quality"); } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile) { if (asset.Source != null) { asset.Source = DynamicYamlEmpty.Default; } if (asset.SourceHash != null) { asset.SourceHash = DynamicYamlEmpty.Default; } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { if (asset.Usage != null) { if (asset.Usage == "SpecularLighting") { asset.IsSpecularOnly = true; } } asset.Usage = DynamicYamlEmpty.Default; }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { YamlNode assetNode = asset.Node; foreach (var node in assetNode.AllNodes) { if (node.Tag == "!Xenko.Streaming.StreamingSettings,Xenko.Engine") { node.Tag = node.Tag.Replace(",Xenko.Engine", ",Xenko.Rendering"); } } }
public void Upgrade(AssetMigrationContext context, string dependencyName, PackageVersion currentVersion, PackageVersion targetVersion, YamlMappingNode yamlAssetNode, PackageLoadingAssetFile assetFile) { dynamic asset = new DynamicYamlMapping(yamlAssetNode); var baseBranch = asset["~Base"]; if (baseBranch != null) { asset["~Base"] = DynamicYamlEmpty.Default; } AssetUpgraderBase.SetSerializableVersion(asset, dependencyName, targetVersion); }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { foreach (dynamic item in asset.ColliderShapes) { dynamic shape = item.Value; if (shape.Node.Tag == "!ConvexHullColliderShapeDesc") { dynamic decomposition = shape.Decomposition = new DynamicYamlMapping(new YamlMappingNode()); if (shape.ContainsChild("SimpleWrap")) { decomposition.Enabled = shape.SimpleWrap.ToString().ToLowerInvariant().Equals("false"); } if (shape.ContainsChild("Depth")) { decomposition.Depth = shape.Depth; } if (shape.ContainsChild("PosSampling")) { decomposition.PosSampling = shape.PosSampling; } if (shape.ContainsChild("AngleSampling")) { decomposition.AngleSampling = shape.AngleSampling; } if (shape.ContainsChild("PosRefine")) { decomposition.PosRefine = shape.PosRefine; } if (shape.ContainsChild("AngleRefine")) { decomposition.AngleRefine = shape.AngleRefine; } if (shape.ContainsChild("Alpha")) { decomposition.Alpha = shape.Alpha; } if (shape.ContainsChild("Threshold")) { decomposition.Threshold = shape.Threshold; } shape.RemoveChild("SimpleWrap"); shape.RemoveChild("Depth"); shape.RemoveChild("PosSampling"); shape.RemoveChild("AngleSampling"); shape.RemoveChild("PosRefine"); shape.RemoveChild("AngleRefine"); shape.RemoveChild("Alpha"); shape.RemoveChild("Threshold"); } } }
public void Upgrade(AssetMigrationContext context, string dependencyName, PackageVersion currentVersion, PackageVersion targetVersion, YamlMappingNode yamlAssetNode, PackageLoadingAssetFile assetFile) { dynamic asset = new DynamicYamlMapping(yamlAssetNode); // Note: seems little bit strange, but original test was not using targetVersion... var serializedVersion = AssetRegistry.GetCurrentFormatVersions(typeof(MyUpgradedAsset))[dependencyName]; AssetUpgraderBase.SetSerializableVersion(asset, dependencyName, serializedVersion); // Move Test1 to Test2 asset.Test2 = asset.Test1; asset.Test1 = DynamicYamlEmpty.Default; }
protected override void UpgradeAsset(AssetMigrationContext context, int currentVersion, int targetVersion, dynamic asset, PackageLoadingAssetFile assetFile) { var proceduralType = asset.Type; if (proceduralType.Node.Tag == "!CapsuleProceduralModel") { if (proceduralType.Radius == null) { proceduralType.Radius = 0.25f; } } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { if (asset.IsDynamic != null) { var isDynamic = (bool)asset.IsDynamic; // There is also SDF type, but old assets don't have it yet asset.AddChild("FontType", isDynamic ? "Dynamic" : "Static"); asset.RemoveChild("IsDynamic"); } }
private void RunAssetUpgradersUntilVersion(ILogger log, Package dependentPackage, string dependencyName, IList <PackageLoadingAssetFile> assetFiles, PackageVersion maxVersion) { foreach (var assetFile in assetFiles) { if (assetFile.Deleted) { continue; } var context = new AssetMigrationContext(dependentPackage, assetFile.ToReference(), assetFile.FilePath.ToWindowsPath(), log); AssetMigration.MigrateAssetIfNeeded(context, assetFile, dependencyName, maxVersion); } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { foreach (var modelMaterial in asset.Materials) { var material = modelMaterial.Material; if (material != null) { modelMaterial.MaterialInstance = new YamlMappingNode(); modelMaterial.MaterialInstance.Material = material; modelMaterial.Material = DynamicYamlEmpty.Default; } } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { if (asset.NoPremultiply != null) { asset.IsPremultiplied = !(bool)asset.NoPremultiply; asset.NoPremultiply = DynamicYamlEmpty.Default; } if (asset.IsNotPremultiply != null) { asset.IsPremultiplied = !(bool)asset.IsNotPremultiply; asset.IsNotPremultiply = DynamicYamlEmpty.Default; } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { // SerializedVersion format changed during renaming upgrade. However, before this was merged back in master, some asset upgrader still with older version numbers were developed. // However since this upgrader can be reapplied, it is not a problem var proceduralType = asset.Type; if (proceduralType.Node.Tag == "!CapsuleProceduralModel" && currentVersion != PackageVersion.Parse("0.0.6")) { if (proceduralType.Radius == null) { proceduralType.Radius = 0.25f; } } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { var proceduralType = asset.Type; if (proceduralType.Diameter != null) { proceduralType.Radius = 0.5f * (float)proceduralType.Diameter; proceduralType.Diameter = DynamicYamlEmpty.Default; } if (proceduralType.Node.Tag == "!TorusProceduralModel" && proceduralType.Thickness != null) { proceduralType.Thickness = 0.5f * (float)proceduralType.Thickness; } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { asset.Hierarchy.RootPartIds = asset.Hierarchy.RootEntities; asset.Hierarchy.Parts = asset.Hierarchy.Entities; asset.Hierarchy.RootEntities = DynamicYamlEmpty.Default; asset.Hierarchy.Entities = DynamicYamlEmpty.Default; foreach (var entityDesign in asset.Hierarchy.Parts) { entityDesign.Folder = entityDesign.Design.Folder; entityDesign.BaseId = entityDesign.Design.BaseId; entityDesign.BasePartInstanceId = entityDesign.Design.BasePartInstanceId; entityDesign.Design = DynamicYamlEmpty.Default; } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile) { var hierarchy = asset.Hierarchy; var entities = (DynamicYamlArray)hierarchy.Entities; foreach (dynamic entity in entities) { var components = entity.Components; var physComponent = components["PhysicsComponent.Key"]; if (physComponent != null) { foreach (dynamic element in physComponent.Elements) { var type = element.Type.Node.Value; if (type == "PhantomCollider") { element.Node.Tag = "!TriggerElement"; element.RemoveChild("StepHeight"); } else if (type == "StaticCollider") { element.Node.Tag = "!StaticColliderElement"; element.RemoveChild("StepHeight"); } else if (type == "StaticRigidBody") { element.Node.Tag = "!StaticRigidbodyElement"; element.RemoveChild("StepHeight"); } else if (type == "DynamicRigidBody") { element.Node.Tag = "!DynamicRigidbodyElement"; element.RemoveChild("StepHeight"); } else if (type == "KinematicRigidBody") { element.Node.Tag = "!KinematicRigidbodyElement"; element.RemoveChild("StepHeight"); } else if (type == "CharacterController") { element.Node.Tag = "!CharacterElement"; } element.RemoveChild("Type"); } } } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile) { var entities = asset.Hierarchy.Entities; var designEntities = new YamlSequenceNode(); asset.Hierarchy.Entities = designEntities; foreach (var entity in entities) { var designEntity = new YamlMappingNode(); dynamic dynamicDesignEntity = new DynamicYamlMapping(designEntity); dynamicDesignEntity.Entity = entity; designEntities.Add(designEntity); } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile, OverrideUpgraderHint overrideHint) { YamlNode assetNode = asset.Node; foreach (var node in assetNode.AllNodes) { if (node.Tag != null && node.Tag.EndsWith(",Stride.Engine") // Several types are still in Stride.Engine && node.Tag != "!Stride.Rendering.Compositing.ForwardRenderer,Stride.Engine" && node.Tag != "!Stride.Rendering.Compositing.SceneCameraRenderer,Stride.Engine") { node.Tag = node.Tag.Replace(",Stride.Engine", ",Stride.Rendering"); } } }
protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile) { var hierarchy = asset.Hierarchy; var entities = (DynamicYamlArray)hierarchy.Entities; foreach (dynamic entity in entities) { var components = entity.Components; var spriteComponent = components["ModelComponent.Key"]; if (spriteComponent != null) { spriteComponent.RemoveChild("Parameters"); } } }
public void Upgrade(AssetMigrationContext context, string dependencyName, PackageVersion currentVersion, PackageVersion targetVersion, YamlMappingNode yamlAssetNode, PackageLoadingAssetFile assetFile) { dynamic asset = new DynamicYamlMapping(yamlAssetNode); AssetUpgraderBase.SetSerializableVersion(asset, dependencyName, targetVersion); // Move Test2 to Test4 if (currentVersion == PackageVersion.Parse("0.0.2")) { asset.Test4 = asset.Test2; asset.Test2 = DynamicYamlEmpty.Default; } // Move Test3 to Test4 else if (currentVersion == PackageVersion.Parse("0.0.3")) { asset.Test4 = asset.Test3; asset.Test3 = DynamicYamlEmpty.Default; } }
/// <inheritdoc/> protected override void UpgradeAsset(AssetMigrationContext context, PackageVersion currentVersion, PackageVersion targetVersion, dynamic asset, PackageLoadingAssetFile assetFile) { }
public void TestUpgrade(MyUpgradedAsset asset, bool needMigration) { var loadingFilePath = new PackageLoadingAssetFile(Path.Combine(DirectoryTestBase, "TestUpgrade\\Asset1.xkobj"), ""); var outputFilePath = loadingFilePath.FilePath.FullPath; AssetSerializer.Save(outputFilePath, asset); var logger = new LoggerResult(); var context = new AssetMigrationContext(null, logger); Assert.AreEqual(AssetMigration.MigrateAssetIfNeeded(context, loadingFilePath, "TestPackage"), needMigration); if (needMigration) { using (var fileStream = new FileStream(outputFilePath, FileMode.Truncate)) fileStream.Write(loadingFilePath.AssetContent, 0, loadingFilePath.AssetContent.Length); } Console.WriteLine(File.ReadAllText(outputFilePath).Trim()); var upgradedAsset = AssetSerializer.Load<MyUpgradedAsset>(outputFilePath); AssertUpgrade(upgradedAsset); }